base_dir: ./ # Base directory where code is being run
output_dir: ./output # Where to save output to
log_level: info # Verbosity used in logging
cores: 2 # Number of cores to use when processing
width: 18 # Width of structure
height: 4 # Height of structure
steps: 1 # Steps to generate nodes
stress_tensile: 1.0 # Tensile stress
stress_compressive: 1.0 # Compressive stress
youngs_modulus: 1.0 # Material stiffness (used for elastic design only)
avg_deflection_limit: -1.0 # Limit on weighted average of loaded points in elastic design.
joint_cost: 0.0 # Joint costs
loaded_points: # Loaded points
  - [0, 4]
  - [2, 4]
  - [4, 4]
  - [6, 4]
  - [8, 4]
  - [10, 4]
  - [12, 4]
  - [14, 4]
  - [16, 4]
  - [18, 4]
load_direction: # Load direction
  - 0.0
  - -1.0
load_large: 3.75 # Large load
load_small: 0.204 # Small load
max_length: 36 # Max length
max_length_initial_ground_structure: 1.5 # Threshold for marking a potential member as active
support_points: # Support points in form [x_coord, y_coord, restrain_x, restrain_y] (true=fixed, false=free for restrain_x/restrain_y)
  - [0, 0, True, True] # Pinned support
  - [18, 0, False, True] # Roller support
member_area_filtering: 0.001 # Fraction of maximum member area for output threshold
cvxpy:
  solver: clarabel # See <https://www.cvxpy.org/tutorial/solvers/index.html?h=solve#choosing-a-solver> for further details
filter_levels: [1.0] # List of values to filter by if empty no filtering is performed
primal_method: load_factor # Primal method
problem_name: spanning_18x4 # Problem name
csv_filename: results.csv # Filename to save results to, if left as `results.csv` will have YYYY-MM-DD-hhmmss added
notes: spanning 18x4 example four load points # Notes to include
plotting:
  run: true # Whether to plot the trusses
  bar_thickness: 0.3 # Bar thickness when plotting
  dpi: 1200 # Dots per inch when plotting
