ESPResSo
Extensible Simulation Package for Research on Soft Matter Systems
Loading...
Searching...
No Matches
EK::Solver Struct Reference

#include <Solver.hpp>

+ Inheritance diagram for EK::Solver:
+ Collaboration diagram for EK::Solver:

Classes

struct  Implementation
 

Public Member Functions

 Solver ()
 
bool is_solver_set () const
 Return true if an EK solver is active.
 
bool is_ready_for_propagation () const
 Return true if an EK solver can be propagated.
 
void reset ()
 Remove the EK solver.
 
template<typename LB , class... Args>
void set (Args... args)
 Set the EK solver.
 
template<class Connector >
void connect (Connector &&connector) const
 Connector to the implementation internal state.
 
void propagate ()
 Propagate the EK species.
 
void init () const
 Perform a full initialization of the lattice-Boltzmann system.
 
double get_tau () const
 Get the EK time step.
 
void sanity_checks () const
 Perform EK parameter checks.
 
void veto_time_step (double time_step) const
 Check if a MD time step is compatible with the EK tau.
 
void veto_kT (double kT) const
 Check if a thermostat is compatible with the EK temperature.
 
void on_boxl_change ()
 
void on_node_grid_change ()
 
void on_cell_structure_change ()
 
void on_timestep_change ()
 
void on_temperature_change ()
 
void veto_boxl_change () const
 
template<>
void set (std::shared_ptr< EKNone > ek_instance)
 
template<>
void set (std::shared_ptr< EKWalberla > ek_instance)
 
- Public Member Functions inherited from System::Leaf< Solver >
void bind_system (std::shared_ptr< System > const &system)
 
void detach_system (std::shared_ptr< System > const &system)
 

Additional Inherited Members

- Protected Member Functions inherited from System::Leaf< Solver >
auto & get_system ()
 
auto & get_system () const
 
- Protected Attributes inherited from System::Leaf< Solver >
std::weak_ptr< Systemm_system
 

Detailed Description

Definition at line 33 of file ek/Solver.hpp.

Constructor & Destructor Documentation

◆ Solver()

EK::Solver::Solver ( )

Definition at line 46 of file ek/Solver.cpp.

Member Function Documentation

◆ connect()

template<class Connector >
void EK::Solver::connect ( Connector &&  connector) const
inline

Connector to the implementation internal state.

For developers: use this mechanism to access the underlying variant.

Definition at line 57 of file ek/Solver.hpp.

◆ get_tau()

double EK::Solver::get_tau ( ) const

Get the EK time step.

Definition at line 130 of file ek/Solver.cpp.

References EK::check_solver().

◆ init()

void EK::Solver::init ( ) const
inline

Perform a full initialization of the lattice-Boltzmann system.

All derived parameters and the fluid are reset to their default values.

Definition at line 71 of file ek/Solver.hpp.

◆ is_ready_for_propagation()

bool EK::Solver::is_ready_for_propagation ( ) const

Return true if an EK solver can be propagated.

Definition at line 62 of file ek/Solver.cpp.

References is_solver_set().

◆ is_solver_set()

bool EK::Solver::is_solver_set ( ) const

Return true if an EK solver is active.

Definition at line 58 of file ek/Solver.cpp.

References EK::is_solver_set().

Referenced by is_ready_for_propagation().

◆ on_boxl_change()

void EK::Solver::on_boxl_change ( )

Definition at line 106 of file ek/Solver.cpp.

◆ on_cell_structure_change()

void EK::Solver::on_cell_structure_change ( )

Definition at line 99 of file ek/Solver.cpp.

◆ on_node_grid_change()

void EK::Solver::on_node_grid_change ( )

Definition at line 112 of file ek/Solver.cpp.

◆ on_temperature_change()

void EK::Solver::on_temperature_change ( )

Definition at line 124 of file ek/Solver.cpp.

◆ on_timestep_change()

void EK::Solver::on_timestep_change ( )

Definition at line 118 of file ek/Solver.cpp.

◆ propagate()

void EK::Solver::propagate ( )

Propagate the EK species.

Definition at line 68 of file ek/Solver.cpp.

References EK::check_solver().

◆ reset()

void EK::Solver::reset ( )

Remove the EK solver.

Definition at line 60 of file ek/Solver.cpp.

References System::System::ek, and System::get_system().

Referenced by ScriptInterface::walberla::EKContainer::do_call_method().

◆ sanity_checks()

void EK::Solver::sanity_checks ( ) const

Perform EK parameter checks.

Definition at line 73 of file ek/Solver.cpp.

References System::Leaf< Solver >::get_system().

◆ set() [1/3]

template<typename LB , class... Args>
void EK::Solver::set ( Args...  args)

Set the EK solver.

For developers: a specialization must exist for every new EK type.

Referenced by ScriptInterface::walberla::EKContainer::do_call_method().

◆ set() [2/3]

template<>
void EK::Solver::set ( std::shared_ptr< EKNone ek_instance)

Definition at line 135 of file ek/Solver.cpp.

◆ set() [3/3]

template<>
void EK::Solver::set ( std::shared_ptr< EKWalberla ek_instance)

Definition at line 143 of file ek/Solver.cpp.

References System::Leaf< Solver >::get_system().

◆ veto_boxl_change()

void EK::Solver::veto_boxl_change ( ) const

Definition at line 93 of file ek/Solver.cpp.

◆ veto_kT()

void EK::Solver::veto_kT ( double  kT) const

Check if a thermostat is compatible with the EK temperature.

Definition at line 87 of file ek/Solver.cpp.

◆ veto_time_step()

void EK::Solver::veto_time_step ( double  time_step) const

Check if a MD time step is compatible with the EK tau.

Definition at line 80 of file ek/Solver.cpp.


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