Bicameral Engine
GPU-resident engine for a magic-research open-world game
Loading...
Searching...
No Matches
bicameral::sim::anonymous_namespace{multires_conduction.cpp} Namespace Reference

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)

Function Documentation

◆ AddCellFlows()

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().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ AllocateConductionFractions()

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().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ApplyEndingDeltas()

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().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ CollectCellFaces()

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 )

◆ IsFrozen()

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().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ IsSteppedSlot()

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().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ MarkBlockWants()

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().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ MarkCrossSends()

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().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ MarkSubstepBlocks()

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().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ OnBlockSurface()

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().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ SubcycleShift()

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().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ WakeChangedBlocks()

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().

Here is the call graph for this function:
Here is the caller graph for this function: