34 std::shared_ptr<LatticeWalberla> m_lattice;
35 double m_permittivity;
53 return m_permittivity;
62 [[
nodiscard]]
virtual std::optional<double>
73 std::vector<double>
const &
potential) = 0;
Abstract representation of a lattice-based model.
Class that runs and controls the BlockForest in waLBerla.
~PoissonSolver() override=default
virtual std::size_t get_potential_field_id() const noexcept=0
virtual void ghost_communication()=0
virtual void set_permittivity(double permittivity) noexcept
virtual void add_charge_to_field(std::size_t id, double valency)=0
PoissonSolver(std::shared_ptr< LatticeWalberla > lattice, double permittivity)
virtual void set_slice_potential(Utils::Vector3i const &lower_corner, Utils::Vector3i const &upper_corner, std::vector< double > const &potential)=0
virtual std::optional< double > get_node_potential(Utils::Vector3i const &node, bool consider_ghosts=false)=0
virtual void setup_fft(bool use_gpu_aware)=0
virtual bool set_node_potential(Utils::Vector3i const &node, double potential)=0
void register_vtk_field_filters(walberla::vtk::VTKOutput &) override
virtual std::vector< double > get_slice_potential(Utils::Vector3i const &lower_corner, Utils::Vector3i const &upper_corner) const =0
virtual bool is_double_precision() const noexcept=0
LatticeWalberla const & get_lattice() const noexcept override
virtual void reset_charge_field()=0
virtual double get_permittivity() const noexcept
virtual bool is_gpu() const noexcept=0
cudaStream_t stream[1]
CUDA streams for parallel computing on CPU and GPU.
\file PackInfoPdfDoublePrecision.cpp \author pystencils