|
Bicameral Engine
GPU-resident engine for a magic-research open-world game
|
Classes | |
| struct | CellFaces |
| class | CellThermals |
| struct | CpuTree |
Functions | |
| uint32_t | SubcycleShift (const MultiresStepOptions &options, int32_t level) |
| bool | IsFrozen (std::span< const uint8_t > frozen, uint32_t slot) |
| CellFaces | CollectCellFaces (const MultiresNest &nest, CellThermals &thermals, uint32_t slot, uint32_t index, std::span< const uint8_t > frozen, std::span< const uint8_t > implicitBlocks, const MultiresStepOptions &options) |
| bool | IsSteppedSlot (std::span< const uint8_t > stepped, uint32_t slot) |
| bool | OnBlockSurface (uint32_t index) |
| bool | MarkCrossSends (MultiresNest &nest, const CellFaces &faces, std::span< uint8_t > wantsFraction) |
| void | MarkBlockWants (MultiresNest &nest, CellThermals &thermals, uint32_t slot, std::span< uint8_t > wantsFraction, const MultiresStepOptions &options) |
| void | AllocateConductionFractions (MultiresNest &nest, std::span< const uint8_t > frozen, std::span< const uint8_t > wantsFraction) |
| void | AddCellFlows (const MultiresNest &nest, CellThermals &thermals, uint32_t slot, uint32_t index, std::span< const uint8_t > frozen, std::span< const uint8_t > implicitBlocks, const MultiresStepOptions &options, std::span< MrEnergyDelta > deltas) |
| void | MarkSubstepBlocks (const MultiresNest &nest, std::span< const uint8_t > stepped, uint32_t substep, const MultiresStepOptions &options, std::span< uint8_t > active) |
| std::vector< uint32_t > | ApplyEndingDeltas (MultiresNest &nest, CellThermals &thermals, uint32_t substep, const MultiresStepOptions &options, std::span< MrEnergyDelta > deltas) |
| void | WakeChangedBlocks (MultiresNest &nest, std::span< const uint32_t > changed, uint32_t wakeMark, std::span< uint8_t > stepped) |
| void bicameral::sim::anonymous_namespace{multires_conduction.cpp}::AddCellFlows | ( | const MultiresNest & | nest, |
| CellThermals & | thermals, | ||
| uint32_t | slot, | ||
| uint32_t | index, | ||
| std::span< const uint8_t > | frozen, | ||
| std::span< const uint8_t > | implicitBlocks, | ||
| const MultiresStepOptions & | options, | ||
| std::span< MrEnergyDelta > | deltas ) |
Definition at line 174 of file multires_conduction.cpp.
References AddCellFlows(), bicameral::sim::MultiresNest::blocks, CollectCellFaces(), bicameral::sim::anonymous_namespace{multires_conduction.cpp}::CellFaces::crossCount, bicameral::sim::anonymous_namespace{multires_conduction.cpp}::CellFaces::crossFlows, bicameral::sim::anonymous_namespace{multires_conduction.cpp}::CellFaces::crossNeighbors, bicameral::sim::MultiresNest::index, bicameral::sim::nest_detail::PageCellAddress(), and bicameral::sim::anonymous_namespace{multires_conduction.cpp}::CellFaces::sameLevelOutflow.
Referenced by AddCellFlows().
| void bicameral::sim::anonymous_namespace{multires_conduction.cpp}::AllocateConductionFractions | ( | MultiresNest & | nest, |
| std::span< const uint8_t > | frozen, | ||
| std::span< const uint8_t > | wantsFraction ) |
Definition at line 154 of file multires_conduction.cpp.
References AllocateConductionFractions(), bicameral::sim::MultiresNest::blocks, bicameral::sim::MultiresNest::capacity, bicameral::sim::MultiresNest::counters, bicameral::sim::MultiresNest::freeFractions, bicameral::sim::nest_detail::SetFraction(), and bicameral::sim::MultiresCapacity::worldBlocks.
Referenced by AllocateConductionFractions().
| std::vector< uint32_t > bicameral::sim::anonymous_namespace{multires_conduction.cpp}::ApplyEndingDeltas | ( | MultiresNest & | nest, |
| CellThermals & | thermals, | ||
| uint32_t | substep, | ||
| const MultiresStepOptions & | options, | ||
| std::span< MrEnergyDelta > | deltas ) |
Definition at line 209 of file multires_conduction.cpp.
References ApplyEndingDeltas(), bicameral::sim::nest_detail::ApplyEnergyDelta(), bicameral::sim::MultiresNest::blocks, bicameral::sim::nest_detail::CellAt(), bicameral::sim::nest_detail::CellThermals::Invalidate(), bicameral::sim::MultiresStepOptions::maxSubcycleGap, bicameral::sim::nest_detail::PageCellAddress(), and SubcycleShift().
Referenced by ApplyEndingDeltas().
| CellFaces bicameral::sim::anonymous_namespace{multires_conduction.cpp}::CollectCellFaces | ( | const MultiresNest & | nest, |
| CellThermals & | thermals, | ||
| uint32_t | slot, | ||
| uint32_t | index, | ||
| std::span< const uint8_t > | frozen, | ||
| std::span< const uint8_t > | implicitBlocks, | ||
| const MultiresStepOptions & | options ) |
Definition at line 56 of file multires_conduction.cpp.
References bicameral::sim::nest_detail::CellThermals::At(), bicameral::sim::MultiresNest::blocks, bicameral::sim::MultiresNest::capacity, CollectCellFaces(), bicameral::sim::anonymous_namespace{multires_conduction.cpp}::CellFaces::crossCount, bicameral::sim::anonymous_namespace{multires_conduction.cpp}::CellFaces::crossFlows, bicameral::sim::anonymous_namespace{multires_conduction.cpp}::CellFaces::crossNeighbors, IsFrozen(), bicameral::sim::nest_detail::IsImplicitBlock(), bicameral::sim::MultiresCapacity::rootLevel, bicameral::sim::anonymous_namespace{multires_conduction.cpp}::CellFaces::sameLevelOutflow, SubcycleShift(), and bicameral::sim::MultiresCapacity::worldBlocks.
Referenced by AddCellFlows(), CollectCellFaces(), and MarkBlockWants().
| bool bicameral::sim::anonymous_namespace{multires_conduction.cpp}::IsFrozen | ( | std::span< const uint8_t > | frozen, |
| uint32_t | slot ) |
Definition at line 51 of file multires_conduction.cpp.
References IsFrozen().
Referenced by CollectCellFaces(), and IsFrozen().
| bool bicameral::sim::anonymous_namespace{multires_conduction.cpp}::IsSteppedSlot | ( | std::span< const uint8_t > | stepped, |
| uint32_t | slot ) |
Definition at line 100 of file multires_conduction.cpp.
References IsSteppedSlot().
Referenced by IsSteppedSlot().
| void bicameral::sim::anonymous_namespace{multires_conduction.cpp}::MarkBlockWants | ( | MultiresNest & | nest, |
| CellThermals & | thermals, | ||
| uint32_t | slot, | ||
| std::span< uint8_t > | wantsFraction, | ||
| const MultiresStepOptions & | options ) |
Definition at line 136 of file multires_conduction.cpp.
References bicameral::sim::MultiresNest::blocks, CollectCellFaces(), MarkBlockWants(), MarkCrossSends(), OnBlockSurface(), and bicameral::sim::anonymous_namespace{multires_conduction.cpp}::CellFaces::sameLevelOutflow.
Referenced by MarkBlockWants().
| bool bicameral::sim::anonymous_namespace{multires_conduction.cpp}::MarkCrossSends | ( | MultiresNest & | nest, |
| const CellFaces & | faces, | ||
| std::span< uint8_t > | wantsFraction ) |
Definition at line 115 of file multires_conduction.cpp.
References bicameral::sim::MultiresNest::blocks, bicameral::sim::anonymous_namespace{multires_conduction.cpp}::CellFaces::crossCount, bicameral::sim::anonymous_namespace{multires_conduction.cpp}::CellFaces::crossFlows, bicameral::sim::anonymous_namespace{multires_conduction.cpp}::CellFaces::crossNeighbors, and MarkCrossSends().
Referenced by MarkBlockWants(), and MarkCrossSends().
| void bicameral::sim::anonymous_namespace{multires_conduction.cpp}::MarkSubstepBlocks | ( | const MultiresNest & | nest, |
| std::span< const uint8_t > | stepped, | ||
| uint32_t | substep, | ||
| const MultiresStepOptions & | options, | ||
| std::span< uint8_t > | active ) |
Definition at line 199 of file multires_conduction.cpp.
References bicameral::sim::MultiresNest::blocks, MarkSubstepBlocks(), bicameral::sim::MultiresStepOptions::maxSubcycleGap, and SubcycleShift().
Referenced by MarkSubstepBlocks().
| bool bicameral::sim::anonymous_namespace{multires_conduction.cpp}::OnBlockSurface | ( | uint32_t | index | ) |
Definition at line 105 of file multires_conduction.cpp.
References OnBlockSurface().
Referenced by MarkBlockWants(), and OnBlockSurface().
| uint32_t bicameral::sim::anonymous_namespace{multires_conduction.cpp}::SubcycleShift | ( | const MultiresStepOptions & | options, |
| int32_t | level ) |
Definition at line 37 of file multires_conduction.cpp.
References bicameral::sim::MultiresStepOptions::maxSubcycleGap, bicameral::sim::MultiresStepOptions::subcycleBaseLevel, and SubcycleShift().
Referenced by ApplyEndingDeltas(), CollectCellFaces(), MarkSubstepBlocks(), and SubcycleShift().
| void bicameral::sim::anonymous_namespace{multires_conduction.cpp}::WakeChangedBlocks | ( | MultiresNest & | nest, |
| std::span< const uint32_t > | changed, | ||
| uint32_t | wakeMark, | ||
| std::span< uint8_t > | stepped ) |
Definition at line 240 of file multires_conduction.cpp.
References bicameral::sim::MultiresNest::blocks, bicameral::sim::MultiresNest::capacity, bicameral::sim::nest_detail::WakeAround(), WakeChangedBlocks(), and bicameral::sim::MultiresCapacity::worldBlocks.
Referenced by WakeChangedBlocks().