Orrery
A GPU-accelerated N-body gravitational simulator
Loading...
Searching...
No Matches
orrery::sim::OutputSettings Struct Reference

What the run writes down, and how often. More...

#include <orrery/sim/configuration.hpp>

Public Attributes

std::string trajectory_path
 Where the binary trajectory goes.
core::Index trajectory_stride = 0
bool trajectory_velocities = false
 Whether trajectory frames carry velocities as well as positions.
std::string diagnostics_path
 Where the CSV diagnostics stream goes.
core::Index diagnostics_stride = 0
 How often the conserved quantities are measured, in steps.
std::string checkpoint_path
 Where checkpoints go, if any.
core::Index checkpoint_stride = 0

Friends

bool operator== (const OutputSettings &, const OutputSettings &)=default

Detailed Description

What the run writes down, and how often.

Each of the three outputs is switched on by being given a path and off by being left empty, and each has its own stride in steps. A stride of zero means the output is written once at the start and once at the end and not in between, which is what a run wants when it cares about the final state and not the path taken to it.

Member Data Documentation

◆ trajectory_path

std::string orrery::sim::OutputSettings::trajectory_path

Where the binary trajectory goes.

docs/formats/trajectory.md specifies the file this produces.

◆ trajectory_velocities

bool orrery::sim::OutputSettings::trajectory_velocities = false

Whether trajectory frames carry velocities as well as positions.

Off by default because a renderer needs positions alone and the file is twice the size with them. A trajectory is not a checkpoint and cannot be resumed from either way, which is what docs/formats/checkpoint.md exists to provide.

◆ diagnostics_stride

core::Index orrery::sim::OutputSettings::diagnostics_stride = 0

How often the conserved quantities are measured, in steps.

Measuring them costs an N^2 pass, since the potential energy is a sum over pairs and shares no code with the solver on purpose, so this should be a few hundred rather than one. Zero, the default, measures at the two ends of the run only.

◆ checkpoint_path

std::string orrery::sim::OutputSettings::checkpoint_path

Where checkpoints go, if any.

One path rather than a pattern, overwritten each time. A run that keeps every checkpoint it takes fills a disc with states nobody asked for, and the state a person wants after an interruption is the last one.


The documentation for this struct was generated from the following file: