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

Namespaces

namespace  anonymous_namespace{gas_reference.cpp}
namespace  anonymous_namespace{gpu_implicit.cpp}
namespace  anonymous_namespace{gpu_implicit_build.cpp}
namespace  anonymous_namespace{gpu_implicit_levels.cpp}
namespace  anonymous_namespace{gpu_multires.cpp}
namespace  anonymous_namespace{gpu_multires_implicit.cpp}
namespace  anonymous_namespace{gpu_physics.cpp}
namespace  anonymous_namespace{implicit_conduction.cpp}
namespace  anonymous_namespace{lab_box.cpp}
namespace  anonymous_namespace{multires_activity.cpp}
namespace  anonymous_namespace{multires_conduction.cpp}
namespace  nest_detail
namespace  anonymous_namespace{multires_implicit_conduction.cpp}
namespace  anonymous_namespace{multires_nest.cpp}
namespace  anonymous_namespace{multires_tree.cpp}
namespace  anonymous_namespace{physics_scene.cpp}
namespace  anonymous_namespace{physics_world.cpp}
namespace  anonymous_namespace{probe_peek.cpp}
namespace  anonymous_namespace{probe_save_point.cpp}
namespace  anonymous_namespace{probe_sim.cpp}
namespace  anonymous_namespace{probe_trace.cpp}
namespace  anonymous_namespace{reaction_table.cpp}
namespace  anonymous_namespace{reaction_test_table.cpp}

Classes

struct  Command
struct  GasSpecies
struct  GasConfig
struct  GasCoefficients
struct  GasCell
struct  GasDerived
struct  GasLedger
struct  GasTotals
struct  GasBox
struct  GpuImplicitCost
struct  GpuImplicitLimits
struct  GpuImplicitTuning
struct  GpuImplicitRecordShape
class  GpuImplicit
struct  GpuImplicitBuildLimits
struct  GpuImplicitSystem
class  GpuImplicitBuild
struct  GpuImplicitLevelLimits
struct  GpuImplicitLevelImages
struct  GpuImplicitLevelSystem
class  GpuImplicitLevels
class  GpuLabBox
struct  GpuMultiresOptions
class  GpuMultires
class  GpuMultiresImplicit
struct  GpuPhysicsOptions
struct  GpuPhysicsStats
struct  GpuPhysicsPassTime
struct  GpuPhysicsCursor
class  GpuPhysics
struct  ImplicitCell
struct  ImplicitFace
struct  ImplicitGridLevel
struct  ImplicitOptions
struct  ImplicitCost
struct  ImplicitGrid
struct  ImplicitGridLimits
struct  LabCellPosition
struct  LabMaterial
struct  LabMismatch
struct  LabRecording
class  LabSession
struct  MultiresPoint
struct  MultiresCapacity
struct  MultiresNest
struct  MultiresImplicitLimits
struct  MultiresImplicitBudget
struct  MultiresStepOptions
struct  ConservedTotals
struct  PhysicsSceneBody
struct  PhysicsScene
struct  PhysicsStepStats
class  PhysicsWorld
struct  PeekCell
class  PeekState
class  ProbePeek
class  ProbePeekReference
struct  ProbeEvent
struct  ProbeTickHash
struct  ProbeFrameReadback
struct  ProbeExtractContext
struct  ProbeTableSwap
struct  ProbeFrameInput
struct  ProbeSimOptions
class  ProbeSim
class  ProbeReference
struct  ProbeDivergence
struct  ElementDefinition
struct  ElementCount
struct  SpeciesDefinition
struct  RuleTerm
struct  ArrheniusRate
struct  RuleDefinition
struct  ReactionTableDefinition
struct  ReactionTableView
struct  BakedReactionTable
struct  SpeciesAmount

Typedefs

using GpuMultiresImplicitLimits = MultiresImplicitLimits
using Wide256 = std::array<uint64_t, 4>
using PhysicsBody = physics::PxBody
using PhysicsContactPoint = physics::PxContactPoint
using PhysicsManifold = physics::PxManifold
using ProbeCommand = Command

Enumerations

enum class  GasBoundary : uint8_t { Wall , Periodic , Open }
enum class  GasReconstruction : uint8_t { Upwind , Minmod , MonotonizedCentral }
enum class  GpuPhysicsSolver : uint8_t { Compute , Graph }
enum class  ImplicitMethod : uint8_t { RedBlack , Multigrid , Rkl2 }
enum class  ImplicitOverflow : uint8_t { Explicit , Freeze , StopRefine }

Functions

constexpr bool CommandPrecedes (const Command &a, const Command &b)
GasCoefficients MakeGasCoefficients (const GasConfig &config)
GasCell MakeGasCell (const GasConfig &config, std::span< const uint64_t > amounts, uint32_t temperatureMilliKelvin)
std::vector< GasCell > MakeHydrostaticReference (const GasConfig &config, std::span< const uint32_t > fractionsQ32, uint32_t temperatureMilliKelvin, uint64_t surfacePressureMicroPascal)
GasBox MakeGasBox (const GasConfig &config, std::vector< GasCell > reference)
GasDerived DeriveGasCell (const GasBox &box, const GasCell &cell, uint32_t z)
int64_t GasVelocity (const GasBox &box, const GasCell &cell, uint32_t axis)
void StepGas (GasBox &box)
GasTotals SumGas (const GasBox &box)
uint64_t HashGas (const GasBox &box)
GpuImplicitLevelImages MakeGpuImplicitLevelImages (const ImplicitGrid &grid)
ImplicitGrid BuildImplicitGrid (std::vector< ImplicitCell > cells, bool galerkin)
ImplicitGrid BuildImplicitGrid (std::vector< ImplicitCell > cells, std::vector< ImplicitFace > faces, bool galerkin, const ImplicitGridLimits &limits)
ImplicitCost StepImplicit (ImplicitGrid &grid, const ImplicitOptions &options)
int64_t ImplicitTemperature (const ImplicitCell &cell)
int64_t ImplicitEnergyFor (uint64_t heatCapacity, int64_t millikelvin)
FxU128 ImplicitConservedTotal (const ImplicitGrid &grid)
Command MakeLabFillCommand (uint64_t targetTick, uint32_t sequence, LabCellPosition cell, std::span< const SpeciesAmount > contents, uint32_t temperatureMilliKelvin)
Command MakeLabTemperatureCommand (uint64_t targetTick, uint32_t sequence, LabCellPosition cell, uint32_t temperatureMilliKelvin)
lab::LabCommand ToLabCommand (const Command &command)
std::vector< LabMaterial > MakeLabMaterials (const BakedReactionTable &table)
MultiresCapacity LabBoxCapacity (const BakedReactionTable &table)
MultiresNest MakeLabBoxNest (const BakedReactionTable &table)
RxCell LabBoxCell (const MultiresNest &nest, uint32_t index)
uint32_t ApplyLabCommands (MultiresNest &nest, const BakedReactionTable &table, std::span< const Command > commands)
void StepLabBox (MultiresNest &nest, const BakedReactionTable &table, uint64_t tick, std::span< const Command > commands)
std::optional< LabMismatch > FindLabMismatch (const MultiresNest &cpu, const MultiresNest &gpu, uint64_t tick)
std::vector< std::byte > SerializeLabRecording (const LabRecording &recording)
std::expected< LabRecording, std::string > ParseLabRecording (std::span< const std::byte > bytes)
void StepActive (MultiresNest &nest, const BakedReactionTable &table, uint64_t worldSeed, uint64_t tick, const MultiresStepOptions &options)
void FoldQuietPages (MultiresNest &nest, uint64_t tick)
void FoldQuietPages (MultiresNest &nest, const BakedReactionTable &table, uint64_t tick, const MrFoldTolerance &tolerance)
MrFoldStats CollectFoldStats (const MultiresNest &nest, const ReactionTableView &table, uint32_t slot)
void SubmitQuietCoarsenRequests (MultiresNest &nest, uint64_t tick)
void SubmitQuietCoarsenRequests (MultiresNest &nest, const BakedReactionTable &table, uint64_t tick, const MrFoldTolerance &tolerance)
std::vector< uint32_t > WaitSeedSlots (const MultiresNest &nest, uint64_t tick)
std::vector< uint32_t > SeedSlots (const MultiresNest &nest)
RxCell LoadNestCell (const MultiresNest &nest, uint32_t slot, uint32_t index)
uint32_t UsedWorldPages (const MultiresNest &nest)
MultiresNest MakeMultiresNest (const MultiresCapacity &capacity)
void PlaceMirrorBlock (MultiresNest &nest, uint32_t slot, int32_t level, int64_t originX, int64_t originY, int64_t originZ, std::span< const RxCell > cells)
void RefineShadowChain (MultiresNest &nest, uint32_t parentSlot, uint32_t firstChildSlot, uint32_t levelCount, const MultiresPoint &point)
void RemoveShadowChain (MultiresNest &nest, uint32_t firstSlot, uint32_t levelCount)
void StepNest (MultiresNest &nest, const BakedReactionTable &table, uint64_t worldSeed, uint64_t tick, const MultiresStepOptions &options)
void PullBackShadowChain (MultiresNest &nest, const BakedReactionTable &table, uint32_t firstShadowSlot, uint32_t levelCount)
uint64_t HashRealLeaves (const MultiresNest &nest)
uint64_t HashWholeNest (const MultiresNest &nest)
ConservedTotals ComputeConservedTotals (const MultiresNest &nest, const BakedReactionTable &table, int32_t finestLevel)
constexpr MultiresImplicitBudget MakeMultiresImplicitBudget (const MultiresImplicitLimits &limits)
uint32_t PlaceRootBlock (MultiresNest &nest, int64_t originX, int64_t originY, int64_t originZ, std::span< const reaction::RxCell > cells)
void SubmitRequests (MultiresNest &nest, std::span< const multires::MrRequest > requests)
void ProcessRequests (MultiresNest &nest)
uint32_t LookupBlock (const MultiresNest &nest, int32_t level, int64_t originX, int64_t originY, int64_t originZ)
void RebuildIndex (MultiresNest &nest)
void PlaceMirrorBlock (MultiresNest &nest, uint32_t slot, int32_t level, int64_t originX, int64_t originY, int64_t originZ, std::span< const reaction::RxCell > cells)
void FoldQuietPages (MultiresNest &nest, const BakedReactionTable &table, uint64_t tick, const multires::MrFoldTolerance &tolerance)
void SubmitQuietCoarsenRequests (MultiresNest &nest, const BakedReactionTable &table, uint64_t tick, const multires::MrFoldTolerance &tolerance)
uint32_t PlaceRootBlock (MultiresNest &nest, int64_t originX, int64_t originY, int64_t originZ, std::span< const RxCell > cells)
void SubmitRequests (MultiresNest &nest, std::span< const MrRequest > requests)
PhysicsScene MakeStackScene ()
PhysicsScene MakeProbeStackScene ()
PhysicsScene MakeMassRatioScene ()
PhysicsScene MakePileScene (uint64_t seed)
PhysicsScene MakeWallScene ()
PhysicsBody MakePhysicsBody (const PhysicsSceneBody &source, int64_t rate)
MultiresPoint PeekPointOfCell (PeekCell cell)
ProbeCommand MakePokeCommand (uint64_t targetTick, uint32_t sequence, uint32_t x, uint32_t y, uint32_t z)
ProbeCommand MakePushCommand (uint64_t targetTick, uint32_t sequence, const std::array< int64_t, 3 > &origin, const std::array< int32_t, 3 > &direction, uint32_t impulseMillinewtonSeconds)
ProbeCommand MakeTableCommand (uint64_t targetTick, uint32_t sequence, uint64_t version)
std::vector< reaction::RxCell > MakeProbeInitialWorld (const BakedReactionTable &table)
std::array< uint32_t, PROBE_VIEW_SPECIES_COUNT > ProbeViewSpecies (const BakedReactionTable &table)
std::vector< uint64_t > ProbeInitialBlockWakes (const BakedReactionTable &table, std::span< const reaction::RxCell > cells)
std::vector< uint32_t > ProbeInitialScheduleWords (const BakedReactionTable &table, std::span< const reaction::RxCell > cells)
uint64_t ProbeStateHash (std::span< const reaction::RxCell > cells)
std::vector< uint32_t > MakeProbeExtractionCells (std::span< const reaction::RxCell > cells, std::span< const reaction::HcThermalCache > caches, const std::array< uint32_t, PROBE_VIEW_SPECIES_COUNT > &viewSpecies)
uint64_t ProbeExtractionHash (std::span< const uint32_t > words)
uint64_t ProbeEnergySum (std::span< const reaction::RxCell > cells)
uint64_t TableCommandVersion (const ProbeCommand &command)
gpu::GraphTraceFilter ProbeTraceFilterForCells (uint64_t tickBegin, uint64_t tickEnd, std::array< uint32_t, 3 > cellMin, std::array< uint32_t, 3 > cellMax, uint32_t capacity)
std::string FormatProbeTrace (std::span< const gpu::GraphTraceRecord > sorted)
std::expected< void, std::string > WriteProbeTraceFile (const fs::path &path, std::vector< gpu::GraphTraceRecord > records, const gpu::GraphTraceFilter &filter, uint64_t droppedCount)
std::vector< gpu::GraphTraceRecord > UniqueProbeTrace (std::vector< gpu::GraphTraceRecord > records)
void AppendExpectedProbeTrace (const gpu::GraphTraceFilter &filter, uint64_t tick, std::span< const ProbeCommand > commands, std::span< const uint8_t > flagsBefore, std::span< const uint8_t > flagsAfter, std::vector< gpu::GraphTraceRecord > &expected)
std::optional< std::string > FirstProbeTraceMismatch (std::span< const gpu::GraphTraceRecord > gpu, std::span< const gpu::GraphTraceRecord > cpu)
std::optional< uint64_t > FirstDivergentTick (std::span< const ProbeTickHash > gpu, std::span< const ProbeTickHash > cpu)
std::optional< ProbeDivergence > FindCellDivergence (uint64_t tick, std::span< const uint32_t > gpuCells, std::span< const uint32_t > cpuCells)
std::string FormatProbeDivergence (const ProbeDivergence &divergence)
std::expected< BakedReactionTable, std::string > BakeReactionTable (const ReactionTableDefinition &definition)
RxCell MakeReactionCell (const BakedReactionTable &table, std::span< const SpeciesAmount > amounts, int32_t temperatureMilliKelvin)
RxWideCell MakeWideReactionCell (const BakedReactionTable &table, std::span< const SpeciesAmount > amounts, int32_t temperatureMilliKelvin)
std::vector< uint64_t > CountElements (const BakedReactionTable &table, const RxCell &cell)
std::vector< uint64_t > CountElements (const BakedReactionTable &table, const RxWideCell &cell)
uint64_t HashReactionCell (const RxCell &cell)
uint64_t HashReactionCell (const RxWideCell &cell)
RxLoneCell AdvanceLoneReactionCell (const BakedReactionTable &table, const RxLoneCell &lone, uint64_t worldSeed, uint64_t tickBegin, uint32_t tickCount, uint64_t cellId)
RxWaitStep StepReactionCellWait (const BakedReactionTable &table, const RxCell &cell, uint64_t worldSeed, uint64_t tick, uint64_t changedTick, uint64_t cellId)
RxWideWaitStep StepReactionCellWait (const BakedReactionTable &table, const RxWideCell &cell, uint64_t worldSeed, uint64_t tick, uint64_t changedTick, uint64_t cellId)
std::vector< uint64_t > CountElements (const BakedReactionTable &table, const reaction::RxCell &cell)
uint64_t HashReactionCell (const reaction::RxCell &cell)
reaction::RxWaitStep StepReactionCellWait (const BakedReactionTable &table, const reaction::RxCell &cell, uint64_t worldSeed, uint64_t tick, uint64_t changedTick, uint64_t cellId)
reaction::RxLoneCell AdvanceLoneReactionCell (const BakedReactionTable &table, const reaction::RxLoneCell &lone, uint64_t worldSeed, uint64_t tickBegin, uint32_t tickCount, uint64_t cellId)
ReactionTableDefinition MakeCombustionTestTable ()

Variables

constexpr uint32_t COMMAND_BYTES = 64
constexpr uint32_t COMMAND_PAYLOAD_WORDS = 12
constexpr uint32_t GAS_MAX_SPECIES = 4
constexpr uint32_t GAS_AXES = 3
constexpr uint32_t LAB_BOX_SLOT = 0
constexpr uint32_t LAB_BOX_EDGE = multires::MR_BLOCK_EDGE
constexpr uint32_t LAB_MAX_COMMANDS_PER_TICK = 64
constexpr uint64_t LAB_WORLD_SEED = 20261009
constexpr int32_t LAB_INITIAL_TEMPERATURE_MILLIKELVIN = 300000
constexpr MultiresStepOptions LAB_STEP_OPTIONS = {.conduction = true}
constexpr uint32_t MULTIRES_MAX_SUBCYCLE_GAP = 3
constexpr uint32_t PEEK_MIRROR_SLOT = 0
constexpr uint32_t PEEK_FIRST_SHADOW_SLOT = 1
constexpr uint32_t PEEK_LEVEL_COUNT = PROBE_PEEK_MAX_LEVELS
constexpr uint32_t PEEK_BLOCK_CAPACITY = PEEK_FIRST_SHADOW_SLOT + PEEK_LEVEL_COUNT
constexpr uint32_t NO_SAVE_POINT = UINT32_MAX

Typedef Documentation

◆ GpuMultiresImplicitLimits

◆ PhysicsBody

using bicameral::sim::PhysicsBody = physics::PxBody

Definition at line 20 of file physics_world.h.

◆ PhysicsContactPoint

using bicameral::sim::PhysicsContactPoint = physics::PxContactPoint

Definition at line 21 of file physics_world.h.

◆ PhysicsManifold

using bicameral::sim::PhysicsManifold = physics::PxManifold

Definition at line 22 of file physics_world.h.

◆ ProbeCommand

Definition at line 53 of file probe_sim.h.

◆ Wide256

using bicameral::sim::Wide256 = std::array<uint64_t, 4>

Definition at line 152 of file multires_nest.h.

Enumeration Type Documentation

◆ GasBoundary

enum class bicameral::sim::GasBoundary : uint8_t
strong
Enumerator
Wall 
Periodic 
Open 

Definition at line 41 of file gas_reference.h.

◆ GasReconstruction

enum class bicameral::sim::GasReconstruction : uint8_t
strong
Enumerator
Upwind 
Minmod 
MonotonizedCentral 

Definition at line 48 of file gas_reference.h.

◆ GpuPhysicsSolver

enum class bicameral::sim::GpuPhysicsSolver : uint8_t
strong
Enumerator
Compute 
Graph 

Definition at line 31 of file gpu_physics.h.

◆ ImplicitMethod

enum class bicameral::sim::ImplicitMethod : uint8_t
strong
Enumerator
RedBlack 
Multigrid 
Rkl2 

Definition at line 78 of file implicit_conduction.h.

◆ ImplicitOverflow

enum class bicameral::sim::ImplicitOverflow : uint8_t
strong
Enumerator
Explicit 
Freeze 
StopRefine 

Definition at line 95 of file multires_nest.h.

Function Documentation

◆ AdvanceLoneReactionCell() [1/2]

reaction::RxLoneCell bicameral::sim::AdvanceLoneReactionCell ( const BakedReactionTable & table,
const reaction::RxLoneCell & lone,
uint64_t worldSeed,
uint64_t tickBegin,
uint32_t tickCount,
uint64_t cellId )
nodiscard

◆ AdvanceLoneReactionCell() [2/2]

RxLoneCell bicameral::sim::AdvanceLoneReactionCell ( const BakedReactionTable & table,
const RxLoneCell & lone,
uint64_t worldSeed,
uint64_t tickBegin,
uint32_t tickCount,
uint64_t cellId )

Definition at line 487 of file reaction_table.cpp.

References bicameral::sim::BakedReactionTable::View().

Here is the call graph for this function:

◆ AppendExpectedProbeTrace()

void bicameral::sim::AppendExpectedProbeTrace ( const gpu::GraphTraceFilter & filter,
uint64_t tick,
std::span< const ProbeCommand > commands,
std::span< const uint8_t > flagsBefore,
std::span< const uint8_t > flagsAfter,
std::vector< gpu::GraphTraceRecord > & expected )

Definition at line 282 of file probe_trace.cpp.

◆ ApplyLabCommands()

uint32_t bicameral::sim::ApplyLabCommands ( MultiresNest & nest,
const BakedReactionTable & table,
std::span< const Command > commands )

Definition at line 183 of file lab_box.cpp.

References bicameral::sim::MultiresNest::blocks, bicameral::sim::nest_detail::CellAt(), LAB_BOX_SLOT, bicameral::sim::nest_detail::PokeBlock(), bicameral::sim::BakedReactionTable::species, ToLabCommand(), and bicameral::sim::BakedReactionTable::View().

Referenced by StepLabBox().

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

◆ BakeReactionTable()

std::expected< BakedReactionTable, std::string > bicameral::sim::BakeReactionTable ( const ReactionTableDefinition & definition)
nodiscard

Definition at line 373 of file reaction_table.cpp.

References bicameral::sim::RuleDefinition::name, bicameral::sim::BakedReactionTable::ruleNames, bicameral::sim::BakedReactionTable::rules, bicameral::sim::ReactionTableDefinition::rules, and bicameral::sim::BakedReactionTable::warnings.

Referenced by bicameral::editor::LabPanel::CreateSession(), and bicameral::script::LoadReactionTable().

Here is the caller graph for this function:

◆ BuildImplicitGrid() [1/2]

ImplicitGrid bicameral::sim::BuildImplicitGrid ( std::vector< ImplicitCell > cells,
bool galerkin )

Definition at line 675 of file implicit_conduction.cpp.

References BuildImplicitGrid(), bicameral::sim::ImplicitGrid::cells, and bicameral::sim::ImplicitGrid::faces.

Referenced by bicameral::sim::nest_detail::AddImplicitConduction(), and BuildImplicitGrid().

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

◆ BuildImplicitGrid() [2/2]

◆ CollectFoldStats()

multires::MrFoldStats bicameral::sim::CollectFoldStats ( const MultiresNest & nest,
const ReactionTableView & table,
uint32_t slot )
nodiscard

Definition at line 286 of file multires_activity.cpp.

References bicameral::sim::MultiresNest::blocks, and LoadNestCell().

Referenced by FoldQuietPages().

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

◆ CommandPrecedes()

bool bicameral::sim::CommandPrecedes ( const Command & a,
const Command & b )
nodiscardconstexpr

Definition at line 32 of file command.h.

References bicameral::sim::Command::sequence, and bicameral::sim::Command::targetTick.

Referenced by bicameral::save::anonymous_namespace{replay_file.cpp}::CheckOrder(), ParseLabRecording(), bicameral::sim::LabSession::TakeCommands(), bicameral::frame::TableHotReload::TakeSwaps(), and bicameral::sim::ProbeSim::ValidateCommands().

Here is the caller graph for this function:

◆ ComputeConservedTotals()

ConservedTotals bicameral::sim::ComputeConservedTotals ( const MultiresNest & nest,
const BakedReactionTable & table,
int32_t finestLevel )
nodiscard

Definition at line 530 of file multires_nest.cpp.

References bicameral::sim::MultiresNest::blocks, bicameral::sim::BakedReactionTable::elementNames, bicameral::sim::ConservedTotals::elements, and LoadNestCell().

Here is the call graph for this function:

◆ CountElements() [1/3]

std::vector< uint64_t > bicameral::sim::CountElements ( const BakedReactionTable & table,
const reaction::RxCell & cell )
nodiscard

◆ CountElements() [2/3]

std::vector< uint64_t > bicameral::sim::CountElements ( const BakedReactionTable & table,
const RxCell & cell )

Definition at line 471 of file reaction_table.cpp.

◆ CountElements() [3/3]

std::vector< uint64_t > bicameral::sim::CountElements ( const BakedReactionTable & table,
const RxWideCell & cell )
nodiscard

Definition at line 475 of file reaction_table.cpp.

◆ DeriveGasCell()

GasDerived bicameral::sim::DeriveGasCell ( const GasBox & box,
const GasCell & cell,
uint32_t z )
nodiscard

◆ FindCellDivergence()

std::optional< ProbeDivergence > bicameral::sim::FindCellDivergence ( uint64_t tick,
std::span< const uint32_t > gpuCells,
std::span< const uint32_t > cpuCells )
nodiscard

Definition at line 353 of file probe_trace.cpp.

◆ FindLabMismatch()

std::optional< LabMismatch > bicameral::sim::FindLabMismatch ( const MultiresNest & cpu,
const MultiresNest & gpu,
uint64_t tick )
nodiscard

Definition at line 216 of file lab_box.cpp.

References bicameral::sim::MultiresNest::blocks, bicameral::sim::LabMismatch::cell, bicameral::sim::MultiresNest::counters, bicameral::sim::LabMismatch::cpu, bicameral::sim::MultiresNest::fractions, bicameral::sim::MultiresNest::freeBlocks, bicameral::sim::MultiresNest::freeFractions, bicameral::sim::LabMismatch::gpu, HashWholeNest(), LabBoxCell(), bicameral::sim::MultiresNest::ledger, bicameral::reaction::RxSameCell(), and bicameral::sim::LabMismatch::what.

Referenced by bicameral::sim::LabSession::StepOne().

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

◆ FirstDivergentTick()

std::optional< uint64_t > bicameral::sim::FirstDivergentTick ( std::span< const ProbeTickHash > gpu,
std::span< const ProbeTickHash > cpu )
nodiscard

Definition at line 340 of file probe_trace.cpp.

References bicameral::sim::ProbeTickHash::tick.

◆ FirstProbeTraceMismatch()

std::optional< std::string > bicameral::sim::FirstProbeTraceMismatch ( std::span< const gpu::GraphTraceRecord > gpu,
std::span< const gpu::GraphTraceRecord > cpu )
nodiscard

Definition at line 328 of file probe_trace.cpp.

◆ FoldQuietPages() [1/3]

void bicameral::sim::FoldQuietPages ( MultiresNest & nest,
const BakedReactionTable & table,
uint64_t tick,
const MrFoldTolerance & tolerance )

Definition at line 240 of file multires_activity.cpp.

References bicameral::sim::MultiresNest::blocks, bicameral::sim::MultiresNest::capacity, CollectFoldStats(), FoldQuietPages(), bicameral::sim::nest_detail::PokeBlock(), bicameral::sim::BakedReactionTable::View(), and bicameral::sim::MultiresCapacity::worldBlocks.

Here is the call graph for this function:

◆ FoldQuietPages() [2/3]

void bicameral::sim::FoldQuietPages ( MultiresNest & nest,
const BakedReactionTable & table,
uint64_t tick,
const multires::MrFoldTolerance & tolerance )

◆ FoldQuietPages() [3/3]

void bicameral::sim::FoldQuietPages ( MultiresNest & nest,
uint64_t tick )

Definition at line 228 of file multires_activity.cpp.

References bicameral::sim::MultiresNest::blocks, bicameral::sim::MultiresNest::capacity, and bicameral::sim::MultiresCapacity::worldBlocks.

Referenced by FoldQuietPages().

Here is the caller graph for this function:

◆ FormatProbeDivergence()

◆ FormatProbeTrace()

std::string bicameral::sim::FormatProbeTrace ( std::span< const gpu::GraphTraceRecord > sorted)
nodiscard

Definition at line 219 of file probe_trace.cpp.

Referenced by WriteProbeTraceFile().

Here is the caller graph for this function:

◆ GasVelocity()

int64_t bicameral::sim::GasVelocity ( const GasBox & box,
const GasCell & cell,
uint32_t axis )
nodiscard

◆ HashGas()

◆ HashReactionCell() [1/3]

uint64_t bicameral::sim::HashReactionCell ( const reaction::RxCell & cell)
nodiscard

◆ HashReactionCell() [2/3]

uint64_t bicameral::sim::HashReactionCell ( const RxCell & cell)

Definition at line 479 of file reaction_table.cpp.

Referenced by HashRealLeaves(), and HashWholeNest().

Here is the caller graph for this function:

◆ HashReactionCell() [3/3]

uint64_t bicameral::sim::HashReactionCell ( const RxWideCell & cell)
nodiscard

Definition at line 483 of file reaction_table.cpp.

◆ HashRealLeaves()

uint64_t bicameral::sim::HashRealLeaves ( const MultiresNest & nest)
nodiscard

Definition at line 478 of file multires_nest.cpp.

References bicameral::sim::MultiresNest::blocks, HashReactionCell(), and LoadNestCell().

Here is the call graph for this function:

◆ HashWholeNest()

uint64_t bicameral::sim::HashWholeNest ( const MultiresNest & nest)
nodiscard

Definition at line 498 of file multires_nest.cpp.

References bicameral::sim::MultiresNest::blocks, bicameral::sim::MultiresNest::cells, bicameral::sim::MultiresNest::counters, bicameral::sim::MultiresNest::fractions, bicameral::sim::MultiresNest::freeBlocks, bicameral::sim::MultiresNest::freeFractions, HashReactionCell(), and bicameral::sim::MultiresNest::ledger.

Referenced by FindLabMismatch(), and bicameral::sim::LabSession::StepOne().

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

◆ ImplicitConservedTotal()

◆ ImplicitEnergyFor()

int64_t bicameral::sim::ImplicitEnergyFor ( uint64_t heatCapacity,
int64_t millikelvin )

Definition at line 753 of file implicit_conduction.cpp.

Referenced by bicameral::sim::anonymous_namespace{multires_implicit_conduction.cpp}::AddCell(), and bicameral::sim::anonymous_namespace{implicit_conduction.cpp}::MakeBounds().

Here is the caller graph for this function:

◆ ImplicitTemperature()

int64_t bicameral::sim::ImplicitTemperature ( const ImplicitCell & cell)

Definition at line 749 of file implicit_conduction.cpp.

References bicameral::sim::ImplicitCell::energy, and bicameral::sim::ImplicitCell::heatCapacity.

Referenced by bicameral::sim::anonymous_namespace{implicit_conduction.cpp}::Temperatures().

Here is the caller graph for this function:

◆ LabBoxCapacity()

MultiresCapacity bicameral::sim::LabBoxCapacity ( const BakedReactionTable & table)
nodiscard

Definition at line 152 of file lab_box.cpp.

References bicameral::sim::BakedReactionTable::species.

Referenced by bicameral::sim::GpuLabBox::Create(), and MakeLabBoxNest().

Here is the caller graph for this function:

◆ LabBoxCell()

reaction::RxCell bicameral::sim::LabBoxCell ( const MultiresNest & nest,
uint32_t index )
nodiscard

Definition at line 179 of file lab_box.cpp.

References LAB_BOX_SLOT, and LoadNestCell().

Referenced by bicameral::editor::LabPanel::BuildCell(), bicameral::editor::LabPanel::BuildSlice(), and FindLabMismatch().

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

◆ LoadNestCell()

◆ LookupBlock()

uint32_t bicameral::sim::LookupBlock ( const MultiresNest & nest,
int32_t level,
int64_t originX,
int64_t originY,
int64_t originZ )
nodiscard

◆ MakeCombustionTestTable()

ReactionTableDefinition bicameral::sim::MakeCombustionTestTable ( )
nodiscard

Definition at line 122 of file reaction_test_table.cpp.

Referenced by bicameral::editor::LabPanel::CreateSession().

Here is the caller graph for this function:

◆ MakeGasBox()

◆ MakeGasCell()

GasCell bicameral::sim::MakeGasCell ( const GasConfig & config,
std::span< const uint64_t > amounts,
uint32_t temperatureMilliKelvin )
nodiscard

Definition at line 645 of file gas_reference.cpp.

References bicameral::sim::GasCell::amounts, bicameral::sim::GasCell::energy, and bicameral::sim::GasConfig::speciesCount.

Referenced by MakeHydrostaticReference().

Here is the caller graph for this function:

◆ MakeGasCoefficients()

◆ MakeGpuImplicitLevelImages()

◆ MakeHydrostaticReference()

std::vector< GasCell > bicameral::sim::MakeHydrostaticReference ( const GasConfig & config,
std::span< const uint32_t > fractionsQ32,
uint32_t temperatureMilliKelvin,
uint64_t surfacePressureMicroPascal )
nodiscard

Definition at line 659 of file gas_reference.cpp.

References MakeGasCell(), MakeGasCoefficients(), bicameral::sim::GasConfig::sizeZ, and bicameral::sim::GasConfig::speciesCount.

Here is the call graph for this function:

◆ MakeLabBoxNest()

MultiresNest bicameral::sim::MakeLabBoxNest ( const BakedReactionTable & table)
nodiscard

Definition at line 162 of file lab_box.cpp.

References bicameral::sim::MultiresNest::blocks, bicameral::sim::nest_detail::CellAt(), LAB_BOX_SLOT, LAB_INITIAL_TEMPERATURE_MILLIKELVIN, LabBoxCapacity(), MakeMultiresNest(), MakeReactionCell(), PlaceRootBlock(), and bicameral::sim::BakedReactionTable::SpeciesId().

Referenced by bicameral::sim::LabSession::LabSession(), bicameral::sim::LabSession::Reset(), and bicameral::sim::LabSession::StepOne().

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

◆ MakeLabFillCommand()

Command bicameral::sim::MakeLabFillCommand ( uint64_t targetTick,
uint32_t sequence,
LabCellPosition cell,
std::span< const SpeciesAmount > contents,
uint32_t temperatureMilliKelvin )
nodiscard

Definition at line 85 of file lab_box.cpp.

References bicameral::sim::Command::size.

Referenced by bicameral::sim::LabSession::Place().

Here is the caller graph for this function:

◆ MakeLabMaterials()

std::vector< LabMaterial > bicameral::sim::MakeLabMaterials ( const BakedReactionTable & table)
nodiscard

Definition at line 122 of file lab_box.cpp.

References bicameral::sim::SpeciesAmount::species, and bicameral::sim::BakedReactionTable::SpeciesId().

Referenced by bicameral::editor::LabPanel::CreateSession().

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

◆ MakeLabTemperatureCommand()

Command bicameral::sim::MakeLabTemperatureCommand ( uint64_t targetTick,
uint32_t sequence,
LabCellPosition cell,
uint32_t temperatureMilliKelvin )
nodiscard

Definition at line 107 of file lab_box.cpp.

Referenced by bicameral::sim::LabSession::SetTemperature().

Here is the caller graph for this function:

◆ MakeMassRatioScene()

PhysicsScene bicameral::sim::MakeMassRatioScene ( )
nodiscard

Definition at line 161 of file physics_scene.cpp.

References bicameral::sim::PhysicsScene::bodies.

◆ MakeMultiresImplicitBudget()

MultiresImplicitBudget bicameral::sim::MakeMultiresImplicitBudget ( const MultiresImplicitLimits & limits)
nodiscardconstexpr

Definition at line 109 of file multires_nest.h.

References bicameral::sim::MultiresImplicitLimits::cells, bicameral::sim::MultiresImplicitLimits::links, bicameral::sim::MultiresImplicitLimits::nodes, and bicameral::sim::MultiresImplicitLimits::unknowns.

Referenced by bicameral::sim::GpuMultiresImplicit::Create(), and bicameral::sim::nest_detail::MarkImplicitBlocks().

Here is the caller graph for this function:

◆ MakeMultiresNest()

◆ MakePhysicsBody()

PhysicsBody bicameral::sim::MakePhysicsBody ( const PhysicsSceneBody & source,
int64_t rate )
nodiscard

◆ MakePileScene()

PhysicsScene bicameral::sim::MakePileScene ( uint64_t seed)
nodiscard

◆ MakePokeCommand()

ProbeCommand bicameral::sim::MakePokeCommand ( uint64_t targetTick,
uint32_t sequence,
uint32_t x,
uint32_t y,
uint32_t z )
nodiscard

Definition at line 133 of file probe_sim.cpp.

References bicameral::sim::Command::payload.

Referenced by bicameral::frame::anonymous_namespace{frame_loop.cpp}::FrameLoop::QueueClicks().

Here is the caller graph for this function:

◆ MakeProbeExtractionCells()

std::vector< uint32_t > bicameral::sim::MakeProbeExtractionCells ( std::span< const reaction::RxCell > cells,
std::span< const reaction::HcThermalCache > caches,
const std::array< uint32_t, PROBE_VIEW_SPECIES_COUNT > & viewSpecies )
nodiscard

Definition at line 1251 of file probe_sim.cpp.

◆ MakeProbeInitialWorld()

std::vector< reaction::RxCell > bicameral::sim::MakeProbeInitialWorld ( const BakedReactionTable & table)
nodiscard

Definition at line 982 of file probe_sim.cpp.

References MakeReactionCell(), and bicameral::sim::BakedReactionTable::SpeciesId().

Referenced by bicameral::sim::ProbeSim::CreateWorld(), and bicameral::sim::ProbeReference::ProbeReference().

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

◆ MakeProbeStackScene()

PhysicsScene bicameral::sim::MakeProbeStackScene ( )
nodiscard

Definition at line 141 of file physics_scene.cpp.

References bicameral::sim::PhysicsScene::bodies, and bicameral::sim::PhysicsSceneBody::position.

Referenced by bicameral::frame::anonymous_namespace{frame_loop.cpp}::CreateSimulation().

Here is the caller graph for this function:

◆ MakePushCommand()

ProbeCommand bicameral::sim::MakePushCommand ( uint64_t targetTick,
uint32_t sequence,
const std::array< int64_t, 3 > & origin,
const std::array< int32_t, 3 > & direction,
uint32_t impulseMillinewtonSeconds )
nodiscard

Definition at line 146 of file probe_sim.cpp.

References bicameral::sim::Command::payload.

Referenced by bicameral::frame::anonymous_namespace{frame_loop.cpp}::FrameLoop::QueuePushes().

Here is the caller graph for this function:

◆ MakeReactionCell()

reaction::RxCell bicameral::sim::MakeReactionCell ( const BakedReactionTable & table,
std::span< const SpeciesAmount > amounts,
int32_t temperatureMilliKelvin )
nodiscard

Definition at line 461 of file reaction_table.cpp.

Referenced by MakeLabBoxNest(), and MakeProbeInitialWorld().

Here is the caller graph for this function:

◆ MakeStackScene()

PhysicsScene bicameral::sim::MakeStackScene ( )
nodiscard

Definition at line 131 of file physics_scene.cpp.

References bicameral::sim::PhysicsScene::bodies.

◆ MakeTableCommand()

ProbeCommand bicameral::sim::MakeTableCommand ( uint64_t targetTick,
uint32_t sequence,
uint64_t version )
nodiscard

Definition at line 165 of file probe_sim.cpp.

References bicameral::sim::Command::payload.

Referenced by bicameral::frame::TableHotReload::TakeSwaps().

Here is the caller graph for this function:

◆ MakeWallScene()

PhysicsScene bicameral::sim::MakeWallScene ( )
nodiscard

Definition at line 189 of file physics_scene.cpp.

References bicameral::sim::PhysicsScene::bodies.

◆ MakeWideReactionCell()

reaction::RxWideCell bicameral::sim::MakeWideReactionCell ( const BakedReactionTable & table,
std::span< const SpeciesAmount > amounts,
int32_t temperatureMilliKelvin )
nodiscard

Definition at line 466 of file reaction_table.cpp.

References bicameral::reaction::RxMakeEmptyWideCell().

Here is the call graph for this function:

◆ ParseLabRecording()

std::expected< LabRecording, std::string > bicameral::sim::ParseLabRecording ( std::span< const std::byte > bytes)
nodiscard

Definition at line 271 of file lab_box.cpp.

References COMMAND_BYTES, CommandPrecedes(), bicameral::sim::LabRecording::commands, bicameral::sim::LabRecording::hashes, LAB_WORLD_SEED, and bicameral::sim::LabRecording::tickCount.

Referenced by bicameral::editor::LabPanel::BuildRecording(), and bicameral::editor::LabPanel::RunAuto().

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

◆ PeekPointOfCell()

MultiresPoint bicameral::sim::PeekPointOfCell ( PeekCell cell)
nodiscard

Definition at line 36 of file probe_peek.cpp.

References bicameral::sim::PeekCell::x, bicameral::sim::PeekCell::y, and bicameral::sim::PeekCell::z.

Referenced by bicameral::sim::ProbePeekReference::Advance(), and bicameral::sim::ProbePeek::RecordAfterExtract().

Here is the caller graph for this function:

◆ PlaceMirrorBlock() [1/2]

void bicameral::sim::PlaceMirrorBlock ( MultiresNest & nest,
uint32_t slot,
int32_t level,
int64_t originX,
int64_t originY,
int64_t originZ,
std::span< const reaction::RxCell > cells )

◆ PlaceMirrorBlock() [2/2]

void bicameral::sim::PlaceMirrorBlock ( MultiresNest & nest,
uint32_t slot,
int32_t level,
int64_t originX,
int64_t originY,
int64_t originZ,
std::span< const RxCell > cells )

Definition at line 432 of file multires_nest.cpp.

References bicameral::sim::MultiresNest::blocks, bicameral::sim::MultiresNest::capacity, and bicameral::sim::MultiresCapacity::worldBlocks.

Referenced by bicameral::sim::ProbePeekReference::Advance().

Here is the caller graph for this function:

◆ PlaceRootBlock() [1/2]

uint32_t bicameral::sim::PlaceRootBlock ( MultiresNest & nest,
int64_t originX,
int64_t originY,
int64_t originZ,
std::span< const reaction::RxCell > cells )

Referenced by MakeLabBoxNest().

Here is the caller graph for this function:

◆ PlaceRootBlock() [2/2]

uint32_t bicameral::sim::PlaceRootBlock ( MultiresNest & nest,
int64_t originX,
int64_t originY,
int64_t originZ,
std::span< const RxCell > cells )

Definition at line 464 of file multires_tree.cpp.

References bicameral::sim::MultiresNest::blocks, bicameral::sim::MultiresNest::capacity, bicameral::sim::MultiresNest::counters, bicameral::sim::MultiresNest::freeBlocks, bicameral::sim::nest_detail::PokeBlock(), bicameral::sim::nest_detail::PopPage(), and bicameral::sim::MultiresCapacity::rootLevel.

Here is the call graph for this function:

◆ ProbeEnergySum()

uint64_t bicameral::sim::ProbeEnergySum ( std::span< const reaction::RxCell > cells)
nodiscard

Definition at line 1273 of file probe_sim.cpp.

◆ ProbeExtractionHash()

uint64_t bicameral::sim::ProbeExtractionHash ( std::span< const uint32_t > words)
nodiscard

Definition at line 1265 of file probe_sim.cpp.

◆ ProbeInitialBlockWakes()

std::vector< uint64_t > bicameral::sim::ProbeInitialBlockWakes ( const BakedReactionTable & table,
std::span< const reaction::RxCell > cells )
nodiscard

Definition at line 1119 of file probe_sim.cpp.

References bicameral::sim::BakedReactionTable::View().

Referenced by ProbeInitialScheduleWords(), and bicameral::sim::ProbeReference::ProbeReference().

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

◆ ProbeInitialScheduleWords()

std::vector< uint32_t > bicameral::sim::ProbeInitialScheduleWords ( const BakedReactionTable & table,
std::span< const reaction::RxCell > cells )
nodiscard

Definition at line 1143 of file probe_sim.cpp.

References ProbeInitialBlockWakes().

Referenced by bicameral::sim::ProbeSim::CreateWorld().

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

◆ ProbeStateHash()

uint64_t bicameral::sim::ProbeStateHash ( std::span< const reaction::RxCell > cells)
nodiscard

Definition at line 1239 of file probe_sim.cpp.

◆ ProbeTraceFilterForCells()

gpu::GraphTraceFilter bicameral::sim::ProbeTraceFilterForCells ( uint64_t tickBegin,
uint64_t tickEnd,
std::array< uint32_t, 3 > cellMin,
std::array< uint32_t, 3 > cellMax,
uint32_t capacity )
nodiscard

Definition at line 206 of file probe_trace.cpp.

References bicameral::sim::anonymous_namespace{probe_trace.cpp}::GraphTraceFilter::boxMax, and bicameral::sim::anonymous_namespace{probe_trace.cpp}::GraphTraceFilter::boxMin.

Referenced by anonymous_namespace{main.cpp}::ApplyTraceRange(), and bicameral::frame::anonymous_namespace{frame_loop.cpp}::FrameLoop::StartRequestedTrace().

Here is the caller graph for this function:

◆ ProbeViewSpecies()

std::array< uint32_t, PROBE_VIEW_SPECIES_COUNT > bicameral::sim::ProbeViewSpecies ( const BakedReactionTable & table)
nodiscard

Definition at line 1009 of file probe_sim.cpp.

References bicameral::sim::BakedReactionTable::SpeciesId().

Referenced by bicameral::sim::ProbePeek::Create(), bicameral::sim::ProbeSim::CreateWorld(), and bicameral::sim::ProbePeekReference::ProbePeekReference().

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

◆ ProcessRequests()

void bicameral::sim::ProcessRequests ( MultiresNest & nest)

Definition at line 501 of file multires_tree.cpp.

References bicameral::sim::MultiresNest::counters, RebuildIndex(), bicameral::sim::MultiresNest::requests, and bicameral::sim::MultiresNest::states.

Here is the call graph for this function:

◆ PullBackShadowChain()

void bicameral::sim::PullBackShadowChain ( MultiresNest & nest,
const BakedReactionTable & table,
uint32_t firstShadowSlot,
uint32_t levelCount )

Definition at line 471 of file multires_nest.cpp.

References bicameral::sim::BakedReactionTable::View().

Referenced by bicameral::sim::ProbePeekReference::Advance().

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

◆ RebuildIndex()

void bicameral::sim::RebuildIndex ( MultiresNest & nest)

Definition at line 539 of file multires_tree.cpp.

References bicameral::sim::MultiresNest::blocks, bicameral::sim::MultiresNest::capacity, bicameral::sim::MultiresNest::index, and bicameral::sim::MultiresCapacity::worldBlocks.

Referenced by ProcessRequests().

Here is the caller graph for this function:

◆ RefineShadowChain()

void bicameral::sim::RefineShadowChain ( MultiresNest & nest,
uint32_t parentSlot,
uint32_t firstChildSlot,
uint32_t levelCount,
const MultiresPoint & point )

Definition at line 442 of file multires_nest.cpp.

Referenced by bicameral::sim::ProbePeekReference::Advance().

Here is the caller graph for this function:

◆ RemoveShadowChain()

void bicameral::sim::RemoveShadowChain ( MultiresNest & nest,
uint32_t firstSlot,
uint32_t levelCount )

Definition at line 451 of file multires_nest.cpp.

References bicameral::sim::MultiresNest::blocks.

Referenced by bicameral::sim::ProbePeekReference::Advance().

Here is the caller graph for this function:

◆ SeedSlots()

std::vector< uint32_t > bicameral::sim::SeedSlots ( const MultiresNest & nest)
nodiscard

Definition at line 321 of file multires_activity.cpp.

References bicameral::sim::MultiresNest::seeds.

Referenced by bicameral::sim::GpuMultires::RecordUpload().

Here is the caller graph for this function:

◆ SerializeLabRecording()

std::vector< std::byte > bicameral::sim::SerializeLabRecording ( const LabRecording & recording)
nodiscard

Definition at line 254 of file lab_box.cpp.

References bicameral::sim::LabRecording::commands, bicameral::sim::LabRecording::hashes, LAB_WORLD_SEED, and bicameral::sim::LabRecording::tickCount.

Referenced by bicameral::editor::LabPanel::BuildRecording(), and bicameral::editor::LabPanel::RunAuto().

Here is the caller graph for this function:

◆ StepActive()

void bicameral::sim::StepActive ( MultiresNest & nest,
const BakedReactionTable & table,
uint64_t worldSeed,
uint64_t tick,
const MultiresStepOptions & options )

◆ StepGas()

void bicameral::sim::StepGas ( GasBox & box)

◆ StepImplicit()

◆ StepLabBox()

void bicameral::sim::StepLabBox ( MultiresNest & nest,
const BakedReactionTable & table,
uint64_t tick,
std::span< const Command > commands )

Definition at line 208 of file lab_box.cpp.

References ApplyLabCommands(), LAB_STEP_OPTIONS, LAB_WORLD_SEED, and StepNest().

Referenced by bicameral::sim::LabSession::StepOne().

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

◆ StepNest()

void bicameral::sim::StepNest ( MultiresNest & nest,
const BakedReactionTable & table,
uint64_t worldSeed,
uint64_t tick,
const MultiresStepOptions & options )

Definition at line 458 of file multires_nest.cpp.

References bicameral::sim::MultiresNest::blocks, bicameral::sim::nest_detail::RecordWaitResults(), bicameral::sim::nest_detail::StepBlocks(), and bicameral::sim::BakedReactionTable::View().

Referenced by bicameral::sim::ProbePeekReference::Advance(), and StepLabBox().

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

◆ StepReactionCellWait() [1/3]

reaction::RxWaitStep bicameral::sim::StepReactionCellWait ( const BakedReactionTable & table,
const reaction::RxCell & cell,
uint64_t worldSeed,
uint64_t tick,
uint64_t changedTick,
uint64_t cellId )
nodiscard

◆ StepReactionCellWait() [2/3]

RxWaitStep bicameral::sim::StepReactionCellWait ( const BakedReactionTable & table,
const RxCell & cell,
uint64_t worldSeed,
uint64_t tick,
uint64_t changedTick,
uint64_t cellId )

Definition at line 492 of file reaction_table.cpp.

References bicameral::sim::BakedReactionTable::View().

Here is the call graph for this function:

◆ StepReactionCellWait() [3/3]

reaction::RxWideWaitStep bicameral::sim::StepReactionCellWait ( const BakedReactionTable & table,
const RxWideCell & cell,
uint64_t worldSeed,
uint64_t tick,
uint64_t changedTick,
uint64_t cellId )
nodiscard

Definition at line 497 of file reaction_table.cpp.

References bicameral::sim::BakedReactionTable::View().

Here is the call graph for this function:

◆ SubmitQuietCoarsenRequests() [1/3]

void bicameral::sim::SubmitQuietCoarsenRequests ( MultiresNest & nest,
const BakedReactionTable & table,
uint64_t tick,
const MrFoldTolerance & tolerance )

Definition at line 304 of file multires_activity.cpp.

References bicameral::sim::BakedReactionTable::View().

Here is the call graph for this function:

◆ SubmitQuietCoarsenRequests() [2/3]

void bicameral::sim::SubmitQuietCoarsenRequests ( MultiresNest & nest,
const BakedReactionTable & table,
uint64_t tick,
const multires::MrFoldTolerance & tolerance )

◆ SubmitQuietCoarsenRequests() [3/3]

void bicameral::sim::SubmitQuietCoarsenRequests ( MultiresNest & nest,
uint64_t tick )

Definition at line 300 of file multires_activity.cpp.

◆ SubmitRequests() [1/2]

void bicameral::sim::SubmitRequests ( MultiresNest & nest,
std::span< const MrRequest > requests )

◆ SubmitRequests() [2/2]

void bicameral::sim::SubmitRequests ( MultiresNest & nest,
std::span< const multires::MrRequest > requests )

◆ SumGas()

◆ TableCommandVersion()

uint64_t bicameral::sim::TableCommandVersion ( const ProbeCommand & command)
inlinenodiscard

Definition at line 59 of file probe_sim.h.

References bicameral::sim::Command::payload.

Referenced by bicameral::frame::TableHotReload::ScheduleReplayed().

Here is the caller graph for this function:

◆ ToLabCommand()

lab::LabCommand bicameral::sim::ToLabCommand ( const Command & command)
nodiscard

Definition at line 112 of file lab_box.cpp.

References COMMAND_BYTES.

Referenced by ApplyLabCommands().

Here is the caller graph for this function:

◆ UniqueProbeTrace()

std::vector< gpu::GraphTraceRecord > bicameral::sim::UniqueProbeTrace ( std::vector< gpu::GraphTraceRecord > records)
nodiscard

Definition at line 274 of file probe_trace.cpp.

References bicameral::gpu::SortGraphTrace().

Here is the call graph for this function:

◆ UsedWorldPages()

uint32_t bicameral::sim::UsedWorldPages ( const MultiresNest & nest)
nodiscard

◆ WaitSeedSlots()

std::vector< uint32_t > bicameral::sim::WaitSeedSlots ( const MultiresNest & nest,
uint64_t tick )
nodiscard

◆ WriteProbeTraceFile()

std::expected< void, std::string > bicameral::sim::WriteProbeTraceFile ( const fs::path & path,
std::vector< gpu::GraphTraceRecord > records,
const gpu::GraphTraceFilter & filter,
uint64_t droppedCount )
nodiscard

Definition at line 252 of file probe_trace.cpp.

References bicameral::gpu::GraphTraceFilter::boxMax, bicameral::gpu::GraphTraceFilter::boxMin, FormatProbeTrace(), bicameral::gpu::SortGraphTrace(), bicameral::gpu::GraphTraceFilter::tickBegin, and bicameral::gpu::GraphTraceFilter::tickEnd.

Referenced by bicameral::frame::TraceCapture::Write().

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

Variable Documentation

◆ COMMAND_BYTES

◆ COMMAND_PAYLOAD_WORDS

uint32_t bicameral::sim::COMMAND_PAYLOAD_WORDS = 12
inlineconstexpr

Definition at line 17 of file command.h.

◆ GAS_AXES

◆ GAS_MAX_SPECIES

uint32_t bicameral::sim::GAS_MAX_SPECIES = 4
inlineconstexpr

Definition at line 30 of file gas_reference.h.

◆ LAB_BOX_EDGE

uint32_t bicameral::sim::LAB_BOX_EDGE = multires::MR_BLOCK_EDGE
inlineconstexpr

◆ LAB_BOX_SLOT

uint32_t bicameral::sim::LAB_BOX_SLOT = 0
inlineconstexpr

Definition at line 29 of file lab_box.h.

Referenced by ApplyLabCommands(), LabBoxCell(), and MakeLabBoxNest().

◆ LAB_INITIAL_TEMPERATURE_MILLIKELVIN

int32_t bicameral::sim::LAB_INITIAL_TEMPERATURE_MILLIKELVIN = 300000
inlineconstexpr

Definition at line 33 of file lab_box.h.

Referenced by MakeLabBoxNest().

◆ LAB_MAX_COMMANDS_PER_TICK

uint32_t bicameral::sim::LAB_MAX_COMMANDS_PER_TICK = 64
inlineconstexpr

◆ LAB_STEP_OPTIONS

MultiresStepOptions bicameral::sim::LAB_STEP_OPTIONS = {.conduction = true}
inlineconstexpr

Definition at line 36 of file lab_box.h.

Referenced by bicameral::sim::GpuLabBox::RecordTick(), and StepLabBox().

◆ LAB_WORLD_SEED

uint64_t bicameral::sim::LAB_WORLD_SEED = 20261009
inlineconstexpr

◆ MULTIRES_MAX_SUBCYCLE_GAP

uint32_t bicameral::sim::MULTIRES_MAX_SUBCYCLE_GAP = 3
constexpr

◆ NO_SAVE_POINT

◆ PEEK_BLOCK_CAPACITY

uint32_t bicameral::sim::PEEK_BLOCK_CAPACITY = PEEK_FIRST_SHADOW_SLOT + PEEK_LEVEL_COUNT
inlineconstexpr

Definition at line 35 of file probe_peek.h.

◆ PEEK_FIRST_SHADOW_SLOT

uint32_t bicameral::sim::PEEK_FIRST_SHADOW_SLOT = 1
inlineconstexpr

◆ PEEK_LEVEL_COUNT

◆ PEEK_MIRROR_SLOT

uint32_t bicameral::sim::PEEK_MIRROR_SLOT = 0
inlineconstexpr