BELFEM 0.9.0
Berkeley Lab Finite Element Framework
Loading...
Searching...
No Matches
belfem::fem::Controller Class Reference

Nonlinear iteration controller: relaxation, timestep adaptation and convergence policy. More...

#include <cl_FEM_Controller.hpp>

Public Member Functions

 Controller (Kernel *aKernel, Kernel *aKernel2=nullptr)
 ~Controller ()
void initialize_timestep ()
void initialize_magnetic ()
void initialize_thermal ()
void solve_coupled ()
void solve_magnetic ()
void solve_thermal ()
bool solve_circuit ()
void finalize (const bool aPostProcess=true)
const realtime () const
const realtime_thermal () const
real epsilon () const
uint iteration () const
bool is_fullycoupled () const
bool reset () const
void save (const std::string &aFilename)
void save_IV (const std::string &aFilename)
void create_iv_names ()
 names the I/U pair of every abstract dof: after the deck label of the terminal condition that drives it, else positional ( rank 0 only, once; see the implementation for the rules )
void set_params (const input::Section *aSection)
void set_thermal_kernel (Kernel *aKernel)
real simulation_time () const
bool save () const
void set_circuit (Circuit *aCircuit)
Circuitcircuit ()
Kernelkernel ()
Kernelthermal_kernel ()
void save_memdump (const string &aPath)
void load_memdump (const string &aPath)
EulerMethod euler_method () const

Detailed Description

Nonlinear iteration controller: relaxation, timestep adaptation and convergence policy.

See also
The Nonlinear Controller: Hybrid Iteration, Relaxation, and Timestep Control

Constructor & Destructor Documentation

◆ Controller()

belfem::fem::Controller::Controller ( Kernel * aKernel,
Kernel * aKernel2 = nullptr )

◆ ~Controller()

belfem::fem::Controller::~Controller ( )

Member Function Documentation

◆ circuit()

Circuit * belfem::fem::Controller::circuit ( )
inline

◆ create_iv_names()

void belfem::fem::Controller::create_iv_names ( )

names the I/U pair of every abstract dof: after the deck label of the terminal condition that drives it, else positional ( rank 0 only, once; see the implementation for the rules )

◆ epsilon()

real belfem::fem::Controller::epsilon ( ) const

◆ euler_method()

EulerMethod belfem::fem::Controller::euler_method ( ) const
inline

◆ finalize()

void belfem::fem::Controller::finalize ( const bool aPostProcess = true)

◆ initialize_magnetic()

void belfem::fem::Controller::initialize_magnetic ( )

◆ initialize_thermal()

void belfem::fem::Controller::initialize_thermal ( )

◆ initialize_timestep()

void belfem::fem::Controller::initialize_timestep ( )

◆ is_fullycoupled()

bool belfem::fem::Controller::is_fullycoupled ( ) const

◆ iteration()

uint belfem::fem::Controller::iteration ( ) const

◆ kernel()

Kernel * belfem::fem::Controller::kernel ( )
inline

◆ load_memdump()

void belfem::fem::Controller::load_memdump ( const string & aPath)

◆ reset()

bool belfem::fem::Controller::reset ( ) const

◆ save() [1/2]

bool belfem::fem::Controller::save ( ) const

◆ save() [2/2]

void belfem::fem::Controller::save ( const std::string & aFilename)

◆ save_IV()

void belfem::fem::Controller::save_IV ( const std::string & aFilename)

◆ save_memdump()

void belfem::fem::Controller::save_memdump ( const string & aPath)

◆ set_circuit()

void belfem::fem::Controller::set_circuit ( Circuit * aCircuit)

◆ set_params()

void belfem::fem::Controller::set_params ( const input::Section * aSection)

◆ set_thermal_kernel()

void belfem::fem::Controller::set_thermal_kernel ( Kernel * aKernel)

◆ simulation_time()

real belfem::fem::Controller::simulation_time ( ) const

◆ solve_circuit()

bool belfem::fem::Controller::solve_circuit ( )

◆ solve_coupled()

void belfem::fem::Controller::solve_coupled ( )

certified-exit loops: one call per timestep, owning the complete nonlinear iteration; the committed state is always head-measured before an exit. Drivers retry on reset()

◆ solve_magnetic()

void belfem::fem::Controller::solve_magnetic ( )

◆ solve_thermal()

void belfem::fem::Controller::solve_thermal ( )

◆ thermal_kernel()

Kernel * belfem::fem::Controller::thermal_kernel ( )
inline

◆ time()

const real & belfem::fem::Controller::time ( ) const

◆ time_thermal()

const real & belfem::fem::Controller::time_thermal ( ) const

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