![]() |
ESPResSo
Extensible Simulation Package for Research on Soft Matter Systems
|
#include <PoissonSolverFFT.hpp>
Inheritance diagram for walberla::PoissonSolverFFT< FloatType, Architecture >:
Collaboration diagram for walberla::PoissonSolverFFT< FloatType, Architecture >:Classes | |
| struct | FieldTrait |
| struct | heffte_container |
| class | PotentialVTKWriter |
| class | VTKWriter |
Public Types | |
| using | ComplexType = FieldTrait< FloatType, Architecture >::ComplexType |
| using | PotentialField = FieldTrait< FloatType, Architecture >::PotentialField |
| using | PotentialFieldVTK = FieldTrait< FloatType, Architecture >::PotentialFieldVTK |
| using | FullCommunicator = FieldTrait< FloatType, Architecture >::template FullCommunicator< stencil::D3Q27 > |
| template<class Field > | |
| using | PackInfo = FieldTrait< FloatType, Architecture >::template PackInfo< Field > |
Public Types inherited from LatticeModel | |
| using | units_map = std::unordered_map< std::string, double > |
Public Member Functions | |
| ~PoissonSolverFFT () override=default | |
| PoissonSolverFFT (std::shared_ptr< LatticeWalberla > lattice, double permittivity) | |
| bool | is_gpu () const noexcept override |
| bool | is_double_precision () const noexcept override |
| std::size_t | get_potential_field_id () const noexcept override |
| void | setup_fft (bool use_gpu_aware) override |
| std::optional< double > | get_node_potential (Utils::Vector3i const &node, bool consider_ghosts=false) override |
| std::vector< double > | get_slice_potential (Utils::Vector3i const &lower_corner, Utils::Vector3i const &upper_corner) const override |
| void | solve () override |
| void | add_charge_to_field (std::size_t id, double valency) override |
| void | reset_charge_field () override |
| void | register_vtk_field_writers (walberla::vtk::VTKOutput &vtk_obj, LatticeModel::units_map const &units, int flag_observables) override |
Public Member Functions inherited from walberla::PoissonSolver | |
| PoissonSolver (std::shared_ptr< LatticeWalberla > lattice, double permittivity) | |
| ~PoissonSolver () override=default | |
| virtual void | set_permittivity (double permittivity) noexcept |
| virtual double | get_permittivity () const noexcept |
| LatticeWalberla const & | get_lattice () const noexcept override |
Public Member Functions inherited from LatticeModel | |
| virtual | ~LatticeModel ()=default |
| std::shared_ptr< VTKHandle > | create_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 | ghost_communication () |
| void | integrate_vtk_writers () override |
Protected Member Functions inherited from walberla::PoissonSolver | |
| void | register_vtk_field_filters (walberla::vtk::VTKOutput &) override |
Additional Inherited Members | |
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. | |
Definition at line 101 of file PoissonSolverFFT.hpp.
| using walberla::PoissonSolverFFT< FloatType, Architecture >::ComplexType = FieldTrait<FloatType, Architecture>::ComplexType |
Definition at line 133 of file PoissonSolverFFT.hpp.
| using walberla::PoissonSolverFFT< FloatType, Architecture >::FullCommunicator = FieldTrait<FloatType, Architecture>::template FullCommunicator<stencil::D3Q27> |
Definition at line 137 of file PoissonSolverFFT.hpp.
| using walberla::PoissonSolverFFT< FloatType, Architecture >::PackInfo = FieldTrait<FloatType, Architecture>::template PackInfo<Field> |
Definition at line 141 of file PoissonSolverFFT.hpp.
| using walberla::PoissonSolverFFT< FloatType, Architecture >::PotentialField = FieldTrait<FloatType, Architecture>::PotentialField |
Definition at line 134 of file PoissonSolverFFT.hpp.
| using walberla::PoissonSolverFFT< FloatType, Architecture >::PotentialFieldVTK = FieldTrait<FloatType, Architecture>::PotentialFieldVTK |
Definition at line 135 of file PoissonSolverFFT.hpp.
|
overridedefault |
|
inline |
Definition at line 207 of file PoissonSolverFFT.hpp.
References block(), LatticeWalberla::get_blocks(), LatticeWalberla::get_grid_dimensions(), walberla::PoissonSolver::get_lattice(), LatticeWalberla::get_local_grid_range(), and potential.
|
inlineoverridevirtual |
Implements walberla::PoissonSolver.
Definition at line 428 of file PoissonSolverFFT.hpp.
References block(), lbmpy::CPU, LatticeWalberla::get_blocks(), walberla::PoissonSolver::get_lattice(), LatticeWalberla::get_local_grid_range(), walberla::PoissonSolver::get_permittivity(), lbmpy::GPU, and walberla::pos_to_linear_index().
|
inlineoverridevirtual |
Implements walberla::PoissonSolver.
Definition at line 336 of file PoissonSolverFFT.hpp.
References walberla::ek::accessor::Scalar::get(), walberla::get_block_and_cell(), walberla::PoissonSolver::get_lattice(), and walberla::PoissonSolverFFT< FloatType, Architecture >::get_potential_field_id().
|
inlineoverridevirtualnoexcept |
Implements walberla::PoissonSolver.
Definition at line 294 of file PoissonSolverFFT.hpp.
Referenced by walberla::PoissonSolverFFT< FloatType, Architecture >::get_node_potential().
|
inlineoverridevirtual |
Implements walberla::PoissonSolver.
Definition at line 350 of file PoissonSolverFFT.hpp.
References block(), walberla::copy_block_buffer(), walberla::ek::accessor::Scalar::get(), walberla::get_block_interval(), walberla::get_interval(), and walberla::PoissonSolver::get_lattice().
|
inlineprotected |
Definition at line 491 of file PoissonSolverFFT.hpp.
Referenced by walberla::PoissonSolverFFT< FloatType, Architecture >::solve().
|
inlineoverrideprotectedvirtual |
Reimplemented from walberla::PoissonSolver.
Definition at line 493 of file PoissonSolverFFT.hpp.
References LatticeModel::m_vtk_auto.
Referenced by walberla::PoissonSolverFFT< FloatType, Architecture >::solve().
|
inlineoverridevirtualnoexcept |
Implements walberla::PoissonSolver.
Definition at line 290 of file PoissonSolverFFT.hpp.
|
inlineoverridevirtualnoexcept |
Implements walberla::PoissonSolver.
Definition at line 286 of file PoissonSolverFFT.hpp.
References lbmpy::GPU.
|
inlineoverridevirtual |
Reimplemented from walberla::PoissonSolver.
Definition at line 543 of file PoissonSolverFFT.hpp.
References lbmpy::CPU, LatticeWalberla::get_blocks(), LatticeWalberla::get_ghost_layers(), walberla::PoissonSolver::get_lattice(), lbmpy::GPU, and potential.
|
inlineoverridevirtual |
Implements walberla::PoissonSolver.
Definition at line 461 of file PoissonSolverFFT.hpp.
References block(), lbmpy::CPU, LatticeWalberla::get_blocks(), walberla::PoissonSolver::get_lattice(), LatticeWalberla::get_local_grid_range(), lbmpy::GPU, walberla::ek::accessor::Scalar::initialize(), and walberla::pos_to_linear_index().
Referenced by walberla::PoissonSolverFFT< FloatType, Architecture >::setup_fft().
|
inlineoverridevirtual |
Implements walberla::PoissonSolver.
Definition at line 298 of file PoissonSolverFFT.hpp.
References lbmpy::CPU, LatticeWalberla::get_grid_dimensions(), walberla::PoissonSolver::get_lattice(), LatticeWalberla::get_local_grid_range(), lbmpy::GPU, walberla::pos_to_linear_index(), and walberla::PoissonSolverFFT< FloatType, Architecture >::reset_charge_field().
|
inlineoverridevirtual |
Implements walberla::PoissonSolver.
Definition at line 380 of file PoissonSolverFFT.hpp.
References block(), lbmpy::CPU, LatticeWalberla::get_blocks(), walberla::PoissonSolver::get_lattice(), LatticeWalberla::get_local_grid_range(), walberla::PoissonSolverFFT< FloatType, Architecture >::ghost_communication(), lbmpy::GPU, walberla::PoissonSolverFFT< FloatType, Architecture >::integrate_vtk_writers(), walberla::pos_to_linear_index(), and potential.