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

#include <PoissonSolver.hpp>

+ Inheritance diagram for walberla::PoissonSolver:
+ Collaboration diagram for walberla::PoissonSolver:

Public Member Functions

 PoissonSolver (std::shared_ptr< LatticeWalberla > lattice, double permittivity)
 
 ~PoissonSolver () override=default
 
virtual void reset_charge_field ()=0
 
virtual void add_charge_to_field (std::size_t id, double valency)=0
 
virtual std::size_t get_potential_field_id () const noexcept=0
 
virtual void set_permittivity (double permittivity) noexcept
 
virtual double get_permittivity () const noexcept
 
LatticeWalberla constget_lattice () const noexcept override
 
virtual void solve ()=0
 
virtual std::optional< doubleget_node_potential (Utils::Vector3i const &node, bool consider_ghosts=false)=0
 
virtual std::vector< doubleget_slice_potential (Utils::Vector3i const &lower_corner, Utils::Vector3i const &upper_corner) const =0
 
void register_vtk_field_writers (walberla::vtk::VTKOutput &, LatticeModel::units_map const &, int) override
 
virtual void setup_fft (bool use_gpu_aware)=0
 
virtual bool is_gpu () const noexcept=0
 
virtual bool is_double_precision () const noexcept=0
 
- Public Member Functions inherited from LatticeModel
virtual ~LatticeModel ()=default
 
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, bool force_pvtu)
 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.
 

Protected Member Functions

void integrate_vtk_writers () override
 
void register_vtk_field_filters (walberla::vtk::VTKOutput &) override
 

Additional Inherited Members

- Public Types inherited from LatticeModel
using units_map = std::unordered_map< std::string, double >
 
- 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

Definition at line 32 of file PoissonSolver.hpp.

Constructor & Destructor Documentation

◆ PoissonSolver()

walberla::PoissonSolver::PoissonSolver ( std::shared_ptr< LatticeWalberla lattice,
double  permittivity 
)
inline

Definition at line 38 of file PoissonSolver.hpp.

◆ ~PoissonSolver()

walberla::PoissonSolver::~PoissonSolver ( )
overridedefault

Member Function Documentation

◆ add_charge_to_field()

virtual void walberla::PoissonSolver::add_charge_to_field ( std::size_t  id,
double  valency 
)
pure virtual

◆ get_lattice()

◆ get_node_potential()

virtual std::optional< double > walberla::PoissonSolver::get_node_potential ( Utils::Vector3i const node,
bool  consider_ghosts = false 
)
pure virtual

◆ get_permittivity()

virtual double walberla::PoissonSolver::get_permittivity ( ) const
inlinevirtualnoexcept

◆ get_potential_field_id()

virtual std::size_t walberla::PoissonSolver::get_potential_field_id ( ) const
pure virtualnoexcept

◆ get_slice_potential()

virtual std::vector< double > walberla::PoissonSolver::get_slice_potential ( Utils::Vector3i const lower_corner,
Utils::Vector3i const upper_corner 
) const
pure virtual

◆ integrate_vtk_writers()

void walberla::PoissonSolver::integrate_vtk_writers ( )
inlineoverrideprotectedvirtual

Implements LatticeModel.

Reimplemented in walberla::PoissonSolverFFT< FloatType, Architecture >.

Definition at line 80 of file PoissonSolver.hpp.

◆ is_double_precision()

virtual bool walberla::PoissonSolver::is_double_precision ( ) const
pure virtualnoexcept

◆ is_gpu()

virtual bool walberla::PoissonSolver::is_gpu ( ) const
pure virtualnoexcept

◆ register_vtk_field_filters()

void walberla::PoissonSolver::register_vtk_field_filters ( walberla::vtk::VTKOutput &  )
inlineoverrideprotectedvirtual

Implements LatticeModel.

Definition at line 81 of file PoissonSolver.hpp.

◆ register_vtk_field_writers()

void walberla::PoissonSolver::register_vtk_field_writers ( walberla::vtk::VTKOutput &  ,
LatticeModel::units_map const ,
int   
)
inlineoverridevirtual

Implements LatticeModel.

Reimplemented in walberla::PoissonSolverFFT< FloatType, Architecture >.

Definition at line 70 of file PoissonSolver.hpp.

◆ reset_charge_field()

virtual void walberla::PoissonSolver::reset_charge_field ( )
pure virtual

◆ set_permittivity()

virtual void walberla::PoissonSolver::set_permittivity ( double  permittivity)
inlinevirtualnoexcept

Definition at line 48 of file PoissonSolver.hpp.

References stream.

◆ setup_fft()

virtual void walberla::PoissonSolver::setup_fft ( bool  use_gpu_aware)
pure virtual

◆ solve()

virtual void walberla::PoissonSolver::solve ( )
pure virtual

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