TransFlow  0.1.0
A transient pipeline flow simulation library
Simulator Class Reference

The Simulator class combines Physics and Solver to advance the state of the pipeline in time. It contains a Pipeline instance which has thes state of the pipeline at all times. More...

#include <simulator.hpp>

Public Member Functions

 Simulator (const Pipeline &pipeline=Pipeline(), const Config &config=Config())
 Construct using Pipeline and Config. Will construct Physics and Solver using the settings in Config, and will make local copy of pipeline. More...
 
 Simulator (const Pipeline &pipeline, std::unique_ptr< Physics > &physics, std::unique_ptr< Solver > &solver)
 Construct from finished instances of Pipeline, Physics and Solver. More...
 
arma::vec simulate (const TimeSeries &timeSeries)
 Advance the pipeline in time by any number of time steps. If initialize is true the pipeline pressure, temperature and flow will be set to reasonable values according to the boundary conditions before the simulation is started. More...
 
void enableBatchTracking ()
 Enables batch tracking. Wrapper around Pipeline::enableBatchTracking().
 
arma::uword size () const
 Get size (number of grid points)
 
const Pipelinepipeline () const
 Get (const ref) Pipeline.
 
const Pipeline::Statestate () const
 Get (const ref) Pipeline::State.
 
const Solversolver () const
 Get (const ref) Solver.
 
const Physicsphysics () const
 Get (const ref) Physics.
 
Samplersampler ()
 Get (ref) sampler.
 

Private Member Functions

std::optional< SamplermakeSampler (const Config &config)
 Make optional Sampler instance. Returns empty optional if config.outputPath is empty. More...
 

Private Attributes

std::unique_ptr< Pipelinem_state
 Pipeline state.
 
std::unique_ptr< Physicsm_physics
 Physics instance, contains HeatTransfer and EquationOfState.
 
std::unique_ptr< Solverm_solver
 Solver instance, contains GoverningEquationSolver and BatchTracking.
 
std::optional< Samplerm_sampler
 (Optional) sampler instance, for writing results to file during simulation
 

Detailed Description

The Simulator class combines Physics and Solver to advance the state of the pipeline in time. It contains a Pipeline instance which has thes state of the pipeline at all times.

Constructor & Destructor Documentation

◆ Simulator() [1/2]

Simulator::Simulator ( const Pipeline pipeline = Pipeline(),
const Config config = Config() 
)

Construct using Pipeline and Config. Will construct Physics and Solver using the settings in Config, and will make local copy of pipeline.

Parameters
pipelinePipeline description
configSimulator configuration

◆ Simulator() [2/2]

Simulator::Simulator ( const Pipeline pipeline,
std::unique_ptr< Physics > &  physics,
std::unique_ptr< Solver > &  solver 
)

Construct from finished instances of Pipeline, Physics and Solver.

Parameters
pipelinePipeline description
physicsPhysics description
solverSolver instance

Member Function Documentation

◆ makeSampler()

std::optional<Sampler> Simulator::makeSampler ( const Config config)
private

Make optional Sampler instance. Returns empty optional if config.outputPath is empty.

Returns
config Config instance

◆ simulate()

arma::vec Simulator::simulate ( const TimeSeries timeSeries)

Advance the pipeline in time by any number of time steps. If initialize is true the pipeline pressure, temperature and flow will be set to reasonable values according to the boundary conditions before the simulation is started.

Parameters
timeSeriesBoundary conditions with timestamps
Returns
Number of iterations at each time step

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