Update Scenario Structure
Closed this issue · 0 comments
kalebphipps commented
Is your feature request related to a problem? Please describe.
In the future, ARTIST should always require NURBS. Additionally, a clear scenario file structure should be implemented and documented.
Describe the solution you'd like
The Scenario
object should have a clearly defined structure and only consider NURBS surfaces. This structure is defined via the ScenarioGenerator
.
Technical details
The following structure will be implemented via the ScenarioGenerator
:
.
├── receivers [1,*]
│ ├── receiver1
│ │ ├── type [1,1] # e.g. planar
│ │ ├── position_center [1,1]
│ │ ├── curvature_e [0,1]
│ │ ├── curvature_u [0,1]
│ │ ├── normal_vector [1,1]
│ │ ├── plane_e [1,1]
│ │ ├── plane_u [1,1]
│ │ ├── resolution_e [1,1]
│ │ └── resolution_u [1,1]
│ ├── receiver2
│ │ └── ...
│ └── ...
├── lightsources [1,*]
│ ├── lightsource1
│ │ ├── type [1,1]
│ │ ├── number_of_rays [1,1]
│ │ └── distribution_parameters [1,1]
│ │ ├── distribution_type [1,1]
│ │ ├── mean [0,1]
│ │ ├── variance [0,1]
│ │ └── ...
│ ├── lightsource2
│ │ └── ...
│ └── ...
├── heliostats [1,*]
│ ├── heliostat1
│ │ ├── id [1,1]
│ │ ├── position [1,1]
│ │ ├── aim_point [1,1]
│ │ ├── surface [0,1]
│ │ │ └── facets [1,*]
│ │ │ ├── facet1
│ │ │ │ ├── control_points [1,1]
│ │ │ │ ├── degree_e [1,1]
│ │ │ │ ├── degree_n [1,1]
│ │ │ │ ├── number_of_eval_points_e [1,1]
│ │ │ │ ├── number_of_eval_points_n [1,1]
│ │ │ │ ├── width [1,1]
│ │ │ │ ├── height [1,1]
│ │ │ │ ├── position [1,1]
│ │ │ │ ├── canting_e [1,1]
│ │ │ │ └── canting_n [1,1]
│ │ │ ├── facet2
│ │ │ │ └── ...
│ │ │ └── ...
│ │ ├── kinematic [0,1]
│ │ │ ├── type [1,1]
│ │ │ ├── offsets [0,3]
│ │ │ │ ├── offset_e
│ │ │ │ ├── offset_n
│ │ │ │ └── offset_u
│ │ │ └── deviations [0,*]
│ │ │ ├── first_joint_translation [0,1]
│ │ │ ├── first_joint_tilt_e [0,1]
│ │ │ └── ...
│ │ └── actuators [0,*]
│ │ ├── actuator1
│ │ │ ├── type [1,1]
│ │ │ └── parameters [0,*]
│ │ │ ├── first_joint_increment [0,1]
│ │ │ ├── first_joint_radius [0,1]
│ │ │ └── ...
│ │ └── actuator2
│ │ └── ...
│ ├── heliostat2
│ │ └── ...
│ └── ...
└── prototypes [1,1]
├── surface [1,1]
│ └── facets [1,*]
│ ├── facet1
│ │ ├── control_points [1,1]
│ │ ├── degree_e [1,1]
│ │ ├── degree_n [1,1]
│ │ ├── number_of_eval_points_e [1,1]
│ │ ├── number_of_eval_points_n [1,1]
│ │ ├── width [1,1]
│ │ ├── height [1,1]
│ │ ├── position [1,1]
│ │ ├── canting_e [1,1]
│ │ └── canting_n [1,1]
│ ├── facet2
│ │ └── ...
│ └── ...
├── kinematic [1,1]
│ ├── type [1,1]
│ ├── offsets [0,3]
│ │ ├── offset_e
│ │ ├── offset_n
│ │ └── offset_u
│ └── deviations [0,*]
│ ├── first_joint_translation [0,1]
│ ├── first_joint_tilt_e [0,1]
│ └── ...
└── actuators [1,*]
├── actuator1
│ ├── type [1,1]
│ └── parameters [0,*]
│ ├── first_joint_increment [0,1]
│ ├── first_joint_radius [0,1]
│ └── ...
└── actuator2
└── ...
Additional context
The entire functionality of ARTIST must be refactored to fit the new scenario structure. NURBS is also always required.