ESPResSo
Extensible Simulation Package for Research on Soft Matter Systems
Loading...
Searching...
No Matches
EKinWalberlaBase Class Referenceabstract

Interface of a lattice-based electrokinetic model. More...

#include <EKinWalberlaBase.hpp>

+ Inheritance diagram for EKinWalberlaBase:
+ Collaboration diagram for EKinWalberlaBase:

Public Member Functions

virtual void integrate (std::size_t potential_id, std::size_t velocity_id, std::size_t force_id)=0
 Integrate EKin for one time step.
 
virtual void ghost_communication ()=0
 perform ghost communication of densities
 
virtual std::size_t stencil_size () const noexcept=0
 Number of discretized fluxes.
 
virtual bool set_node_density (Utils::Vector3i const &node, double density)=0
 Set node density.
 
virtual std::optional< double > get_node_density (Utils::Vector3i const &node, bool consider_ghosts=false) const =0
 Get node density.
 
virtual void set_slice_density (Utils::Vector3i const &lower_corner, Utils::Vector3i const &upper_corner, std::vector< double > const &density)=0
 Set slice density.
 
virtual std::vector< double > get_slice_density (Utils::Vector3i const &lower_corner, Utils::Vector3i const &upper_corner) const =0
 Get slice density.
 
virtual bool set_node_flux_boundary (Utils::Vector3i const &node, Utils::Vector3d const &flux)=0
 Set node flux boundary conditions.
 
virtual std::optional< Utils::Vector3dget_node_flux_at_boundary (Utils::Vector3i const &node, bool consider_ghosts=false) const =0
 Get node flux boundary conditions.
 
virtual void set_slice_flux_boundary (Utils::Vector3i const &lower_corner, Utils::Vector3i const &upper_corner, std::vector< std::optional< Utils::Vector3d > > const &flux)=0
 Set slice flux boundary conditions.
 
virtual std::vector< std::optional< Utils::Vector3d > > get_slice_flux_at_boundary (Utils::Vector3i const &lower_corner, Utils::Vector3i const &upper_corner) const =0
 Get slice flux boundary conditions.
 
virtual bool remove_node_from_flux_boundary (Utils::Vector3i const &node)=0
 
virtual bool set_node_density_boundary (Utils::Vector3i const &node, double density)=0
 Set node density boundary conditions.
 
virtual std::optional< double > get_node_density_at_boundary (Utils::Vector3i const &node, bool consider_ghosts=false) const =0
 Get node density boundary conditions.
 
virtual void set_slice_density_boundary (Utils::Vector3i const &lower_corner, Utils::Vector3i const &upper_corner, std::vector< std::optional< double > > const &density)=0
 Set slice density boundary conditions.
 
virtual std::vector< std::optional< double > > get_slice_density_at_boundary (Utils::Vector3i const &lower_corner, Utils::Vector3i const &upper_corner) const =0
 Get slice density boundary conditions.
 
virtual bool remove_node_from_density_boundary (Utils::Vector3i const &node)=0
 
virtual std::optional< bool > get_node_is_flux_boundary (Utils::Vector3i const &node, bool consider_ghosts=false) const =0
 Check if node has flux boundary conditions.
 
virtual std::optional< bool > get_node_is_density_boundary (Utils::Vector3i const &node, bool consider_ghosts=false) const =0
 Check if node has density boundary conditions.
 
virtual std::optional< bool > get_node_is_boundary (Utils::Vector3i const &node, bool consider_ghosts=false) const =0
 Check if node has any boundary conditions.
 
virtual std::vector< bool > get_slice_is_boundary (Utils::Vector3i const &lower_corner, Utils::Vector3i const &upper_corner) const =0
 Check if slice has any boundary conditions.
 
virtual void clear_flux_boundaries ()=0
 
virtual void clear_density_boundaries ()=0
 
virtual void update_flux_boundary_from_shape (std::vector< int > const &, std::vector< double > const &)=0
 
virtual void update_density_boundary_from_shape (std::vector< int > const &, std::vector< double > const &)=0
 
virtual double get_diffusion () const noexcept=0
 
virtual double get_kT () const noexcept=0
 
virtual double get_valency () const noexcept=0
 
virtual bool get_advection () const noexcept=0
 
virtual bool get_friction_coupling () const noexcept=0
 
virtual Utils::Vector3d get_ext_efield () const noexcept=0
 
virtual bool is_double_precision () const noexcept=0
 
virtual bool is_thermalized () const noexcept=0
 
virtual unsigned int get_seed () const noexcept=0
 
virtual std::optional< uint64_t > get_rng_state () const =0
 
virtual void set_diffusion (double diffusion)=0
 
virtual void set_kT (double kT)=0
 
virtual void set_valency (double valency)=0
 
virtual void set_advection (bool advection)=0
 
virtual void set_friction_coupling (bool friction_coupling)=0
 
virtual void set_rng_state (uint64_t counter)=0
 
virtual void set_ext_efield (Utils::Vector3d const &field)=0
 
virtual std::size_t get_density_id () const noexcept=0
 
 ~EKinWalberlaBase () override=default
 
- Public Member Functions inherited from LatticeModel
virtual ~LatticeModel ()=default
 
virtual LatticeWalberla const & get_lattice () const noexcept=0
 Get the underlying lattice.
 
std::shared_ptr< VTKHandlecreate_vtk (int delta_N, int initial_count, int flag_observables, units_map const &units_conversion, std::string const &identifier, std::string const &base_folder, std::string const &prefix)
 Create a VTK observable.
 
void write_vtk (std::string const &vtk_uid)
 Write a VTK observable to disk.
 
void switch_vtk (std::string const &vtk_uid, bool status)
 Toggle a VTK observable on/off.
 

Additional Inherited Members

- Public Types inherited from LatticeModel
using units_map = std::unordered_map< std::string, double >
 
- Protected Member Functions inherited from LatticeModel
virtual void register_vtk_field_writers (walberla::vtk::VTKOutput &vtk_obj, units_map const &units_conversion, int flag_observables)=0
 Register VTK writers.
 
virtual void register_vtk_field_filters (walberla::vtk::VTKOutput &vtk_obj)=0
 
virtual void integrate_vtk_writers ()=0
 
- Protected Attributes inherited from LatticeModel
std::map< std::string, std::shared_ptr< VTKHandle > > m_vtk_auto
 VTK writers that are executed automatically.
 
std::map< std::string, std::shared_ptr< VTKHandle > > m_vtk_manual
 VTK writers that are executed manually.
 

Detailed Description

Interface of a lattice-based electrokinetic model.

Definition at line 31 of file EKinWalberlaBase.hpp.

Constructor & Destructor Documentation

◆ ~EKinWalberlaBase()

EKinWalberlaBase::~EKinWalberlaBase ( )
overridedefault

Member Function Documentation

◆ clear_density_boundaries()

virtual void EKinWalberlaBase::clear_density_boundaries ( )
pure virtual

◆ clear_flux_boundaries()

virtual void EKinWalberlaBase::clear_flux_boundaries ( )
pure virtual

◆ get_advection()

virtual bool EKinWalberlaBase::get_advection ( ) const
pure virtualnoexcept

◆ get_density_id()

virtual std::size_t EKinWalberlaBase::get_density_id ( ) const
pure virtualnoexcept

◆ get_diffusion()

virtual double EKinWalberlaBase::get_diffusion ( ) const
pure virtualnoexcept

◆ get_ext_efield()

virtual Utils::Vector3d EKinWalberlaBase::get_ext_efield ( ) const
pure virtualnoexcept

◆ get_friction_coupling()

virtual bool EKinWalberlaBase::get_friction_coupling ( ) const
pure virtualnoexcept

◆ get_kT()

virtual double EKinWalberlaBase::get_kT ( ) const
pure virtualnoexcept

◆ get_node_density()

virtual std::optional< double > EKinWalberlaBase::get_node_density ( Utils::Vector3i const &  node,
bool  consider_ghosts = false 
) const
pure virtual

Get node density.

Implemented in walberla::EKinWalberlaImpl< FluxCount, FloatType >.

◆ get_node_density_at_boundary()

virtual std::optional< double > EKinWalberlaBase::get_node_density_at_boundary ( Utils::Vector3i const &  node,
bool  consider_ghosts = false 
) const
pure virtual

Get node density boundary conditions.

Implemented in walberla::EKinWalberlaImpl< FluxCount, FloatType >.

◆ get_node_flux_at_boundary()

virtual std::optional< Utils::Vector3d > EKinWalberlaBase::get_node_flux_at_boundary ( Utils::Vector3i const &  node,
bool  consider_ghosts = false 
) const
pure virtual

Get node flux boundary conditions.

Implemented in walberla::EKinWalberlaImpl< FluxCount, FloatType >.

◆ get_node_is_boundary()

virtual std::optional< bool > EKinWalberlaBase::get_node_is_boundary ( Utils::Vector3i const &  node,
bool  consider_ghosts = false 
) const
pure virtual

Check if node has any boundary conditions.

Implemented in walberla::EKinWalberlaImpl< FluxCount, FloatType >.

◆ get_node_is_density_boundary()

virtual std::optional< bool > EKinWalberlaBase::get_node_is_density_boundary ( Utils::Vector3i const &  node,
bool  consider_ghosts = false 
) const
pure virtual

Check if node has density boundary conditions.

Implemented in walberla::EKinWalberlaImpl< FluxCount, FloatType >.

◆ get_node_is_flux_boundary()

virtual std::optional< bool > EKinWalberlaBase::get_node_is_flux_boundary ( Utils::Vector3i const &  node,
bool  consider_ghosts = false 
) const
pure virtual

Check if node has flux boundary conditions.

Implemented in walberla::EKinWalberlaImpl< FluxCount, FloatType >.

◆ get_rng_state()

virtual std::optional< uint64_t > EKinWalberlaBase::get_rng_state ( ) const
pure virtual

◆ get_seed()

virtual unsigned int EKinWalberlaBase::get_seed ( ) const
pure virtualnoexcept

◆ get_slice_density()

virtual std::vector< double > EKinWalberlaBase::get_slice_density ( Utils::Vector3i const &  lower_corner,
Utils::Vector3i const &  upper_corner 
) const
pure virtual

◆ get_slice_density_at_boundary()

virtual std::vector< std::optional< double > > EKinWalberlaBase::get_slice_density_at_boundary ( Utils::Vector3i const &  lower_corner,
Utils::Vector3i const &  upper_corner 
) const
pure virtual

Get slice density boundary conditions.

Implemented in walberla::EKinWalberlaImpl< FluxCount, FloatType >.

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

◆ get_slice_flux_at_boundary()

virtual std::vector< std::optional< Utils::Vector3d > > EKinWalberlaBase::get_slice_flux_at_boundary ( Utils::Vector3i const &  lower_corner,
Utils::Vector3i const &  upper_corner 
) const
pure virtual

◆ get_slice_is_boundary()

virtual std::vector< bool > EKinWalberlaBase::get_slice_is_boundary ( Utils::Vector3i const &  lower_corner,
Utils::Vector3i const &  upper_corner 
) const
pure virtual

Check if slice has any boundary conditions.

Implemented in walberla::EKinWalberlaImpl< FluxCount, FloatType >.

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

◆ get_valency()

virtual double EKinWalberlaBase::get_valency ( ) const
pure virtualnoexcept

◆ ghost_communication()

virtual void EKinWalberlaBase::ghost_communication ( )
pure virtual

perform ghost communication of densities

Implemented in walberla::EKinWalberlaImpl< FluxCount, FloatType >.

◆ integrate()

virtual void EKinWalberlaBase::integrate ( std::size_t  potential_id,
std::size_t  velocity_id,
std::size_t  force_id 
)
pure virtual

Integrate EKin for one time step.

Implemented in walberla::EKinWalberlaImpl< FluxCount, FloatType >.

◆ is_double_precision()

virtual bool EKinWalberlaBase::is_double_precision ( ) const
pure virtualnoexcept

◆ is_thermalized()

virtual bool EKinWalberlaBase::is_thermalized ( ) const
pure virtualnoexcept

◆ remove_node_from_density_boundary()

virtual bool EKinWalberlaBase::remove_node_from_density_boundary ( Utils::Vector3i const &  node)
pure virtual

◆ remove_node_from_flux_boundary()

virtual bool EKinWalberlaBase::remove_node_from_flux_boundary ( Utils::Vector3i const &  node)
pure virtual

◆ set_advection()

virtual void EKinWalberlaBase::set_advection ( bool  advection)
pure virtual

◆ set_diffusion()

virtual void EKinWalberlaBase::set_diffusion ( double  diffusion)
pure virtual

◆ set_ext_efield()

virtual void EKinWalberlaBase::set_ext_efield ( Utils::Vector3d const &  field)
pure virtual

◆ set_friction_coupling()

virtual void EKinWalberlaBase::set_friction_coupling ( bool  friction_coupling)
pure virtual

◆ set_kT()

virtual void EKinWalberlaBase::set_kT ( double  kT)
pure virtual

◆ set_node_density()

virtual bool EKinWalberlaBase::set_node_density ( Utils::Vector3i const &  node,
double  density 
)
pure virtual

Set node density.

Implemented in walberla::EKinWalberlaImpl< FluxCount, FloatType >.

◆ set_node_density_boundary()

virtual bool EKinWalberlaBase::set_node_density_boundary ( Utils::Vector3i const &  node,
double  density 
)
pure virtual

Set node density boundary conditions.

Implemented in walberla::EKinWalberlaImpl< FluxCount, FloatType >.

◆ set_node_flux_boundary()

virtual bool EKinWalberlaBase::set_node_flux_boundary ( Utils::Vector3i const &  node,
Utils::Vector3d const &  flux 
)
pure virtual

Set node flux boundary conditions.

Implemented in walberla::EKinWalberlaImpl< FluxCount, FloatType >.

◆ set_rng_state()

virtual void EKinWalberlaBase::set_rng_state ( uint64_t  counter)
pure virtual

◆ set_slice_density()

virtual void EKinWalberlaBase::set_slice_density ( Utils::Vector3i const &  lower_corner,
Utils::Vector3i const &  upper_corner,
std::vector< double > const &  density 
)
pure virtual

◆ set_slice_density_boundary()

virtual void EKinWalberlaBase::set_slice_density_boundary ( Utils::Vector3i const &  lower_corner,
Utils::Vector3i const &  upper_corner,
std::vector< std::optional< double > > const &  density 
)
pure virtual

Set slice density boundary conditions.

Implemented in walberla::EKinWalberlaImpl< FluxCount, FloatType >.

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

◆ set_slice_flux_boundary()

virtual void EKinWalberlaBase::set_slice_flux_boundary ( Utils::Vector3i const &  lower_corner,
Utils::Vector3i const &  upper_corner,
std::vector< std::optional< Utils::Vector3d > > const &  flux 
)
pure virtual

◆ set_valency()

virtual void EKinWalberlaBase::set_valency ( double  valency)
pure virtual

◆ stencil_size()

virtual std::size_t EKinWalberlaBase::stencil_size ( ) const
pure virtualnoexcept

Number of discretized fluxes.

Implemented in walberla::EKinWalberlaImpl< FluxCount, FloatType >.

◆ update_density_boundary_from_shape()

virtual void EKinWalberlaBase::update_density_boundary_from_shape ( std::vector< int > const &  ,
std::vector< double > const &   
)
pure virtual

◆ update_flux_boundary_from_shape()

virtual void EKinWalberlaBase::update_flux_boundary_from_shape ( std::vector< int > const &  ,
std::vector< double > const &   
)
pure virtual

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