Element groups - #139
Conversation
jmaack24
left a comment
There was a problem hiding this comment.
I like this feature. I think forcing a group to be an interval of element ids is too rigid though. It would make grouping difficult to use in a python script and nearly impossible to use with the GUI.
There is also no implementation done for the NativeRunner or EmbreeRunner. At a minimum, there should be some sort of error printed or thrown for those two runners that say this feature has not been implemented. From the user survey results, I expect these are going to be the most commonly used runners by users.
|
Should we change the JSON schema with this pull request? That process is not defined, but it seems like adding json variables would be a good time to increment it. @jmaack24 |
We probably should come up with a process for changing the JSON schema or some sort of versioning for it. What were you thinking of adding? |
I don't have a plan in mind. I'll add a note so we remember to discuss it at the next meeting. |
f262bee to
dbc776f
Compare
nickmedwards
left a comment
There was a problem hiding this comment.
@taylorbrown75 Here is what I got going for friend access for a test. I didn't want to use the FRIEND_TEST marco because it involved changing the CMakeLists.txt to build non-test builds with gtest, and I didn't want to get into all that.
f7840fc to
9fa16a2
Compare
6995024 to
a875bcf
Compare
7d2e9ee to
4296259
Compare
jmaack24
left a comment
There was a problem hiding this comment.
Looks good. Fix the failing CI tests and then it should be ready to merge.
There was a problem hiding this comment.
These changes don't seem to be needed.
* Source cleanups * Clean up load * Fixes NLR-SolTrace#155 Added massive flux mapping improvements. Yay! * Source cleanup and documentation * Binding licenses (#213) * Initial * Renames * Bindings refactor * Build in licenses to the UI * Reduce ambiguity on the ray stats * Fit all in view * Some instance editor improvements Fix rotation gimbal lock * Fix the busted cmake for linux * Comment pass --------- Co-authored-by: RiannaSantivong <107436905+RiannaSantivong@users.noreply.github.com>
* Update High Flux Solar Furnace.stinput * added power tower with tower files --------- Co-authored-by: Hartlaub <chartlau@nrel.gov>
…ar Furnace (NLR-SolTrace#169) * Initial plan * Add spherical surface support to GPU (OptiX) runner for HFSF file - Add SPHERICAL surface type to OptixCSP SurfaceType enum - Add SurfaceSpherical class to OptixCSP Surface.h - Add spherical geometry data structs to GeometryDataST.h for all 6 aperture types - Add HEXAGON_SPHERICAL and other spherical variants to OpticalEntityType enum - Add spherical ray-intersection helpers and kernels to intersection.cu - Update geometry_manager.cpp to handle SPHERICAL surface type - Update CspElement.cpp to convert spherical elements to GPU geometry data - Update pipeline_manager.cpp to register new spherical intersection programs - Map SurfaceType::SPHERE to OptixCSP::SPHERICAL in optix_runner.cpp - Add GPU regression test for High Flux Solar Furnace file * Remove unused variables in rectangle_spherical intersection shader * Add validation of surface and aperture data fields * Changes to OptixRunner sphere implementation * Add basic spherical intersection tests for optix runner; refactor tests to use common code * Test fixes * Fix test and tighten tolerance; address copilot comments * Relax test tolerance * Move test to relative error test * Return to 10 percent tolerance * Rename parabola_ray_to_local function --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: Jonathan Maack <jonathan.maack@nrel.gov>
… test for group statistics
--leveland--verbosetosimdriver\main.cpp. formain,--levelchanges the file printing behavior. i haven't actually implemented--verboseyetgroupto elements to programmatically track groups of elements. i tried to make this backwards compatible, so simulations without groups wouldn't need to be changed. currently groups must be added through the JSON file. elements are given a group by the"group"key. groups must be non-negative integers.single_element.cpp, composite/stage/etc elements are given -2 because they don't interact with the tracestruct SolTrace::Result::GroupResultto hold the counts for a given group. right now it just has basic counts (ie absorbs/reflects), but i will write a function for comparing GroupResult structs to get stuff like efficiencies.GroupResultstoSimulationResultand createdSimulationResult::write_group_json_fileto write those structs to a json fileOptixRunner. haven't added groups to the other runners, yet.enum SolTrace::Runner::RunnerStatisticsto toggle between different reporting behavior, ie doesrunner.report_simulation(&result, level)return the ray record data, the group results, or both?\unit-tests, added some json files for testing file io behavior