ESPResSo
Extensible Simulation Package for Research on Soft Matter Systems
Loading...
Searching...
No Matches
walberla::EKinWalberlaImpl< FluxCount, FloatType > Class Template Reference

Class that runs and controls the EK on waLBerla. More...

#include <EKinWalberlaImpl.hpp>

+ Inheritance diagram for walberla::EKinWalberlaImpl< FluxCount, FloatType >:
+ Collaboration diagram for walberla::EKinWalberlaImpl< FluxCount, FloatType >:

Classes

class  DensityVTKWriter
 
class  VTKWriter
 

Public Member Functions

template<typename T >
FloatType FloatType_c (T t)
 
std::size_t stencil_size () const noexcept override
 
bool is_double_precision () const noexcept override
 
 EKinWalberlaImpl (std::shared_ptr< LatticeWalberla > lattice, double diffusion, double kT, double valency, Utils::Vector3d const &ext_efield, double density, bool advection, bool friction_coupling, bool thermalized, unsigned int seed)
 
double get_diffusion () const noexcept override
 
double get_kT () const noexcept override
 
double get_valency () const noexcept override
 
bool get_advection () const noexcept override
 
bool get_friction_coupling () const noexcept override
 
Utils::Vector3d get_ext_efield () const noexcept override
 
bool is_thermalized () const noexcept override
 
unsigned int get_seed () const noexcept override
 
std::optional< uint64_t > get_rng_state () const override
 
void set_diffusion (double diffusion) override
 
void set_kT (double kT) override
 
void set_valency (double valency) override
 
void set_advection (bool advection) override
 
void set_friction_coupling (bool friction_coupling) override
 
void set_rng_state (uint64_t counter) override
 
void set_ext_efield (Utils::Vector3d const &field) override
 
void ghost_communication () override
 
void integrate (std::size_t potential_id, std::size_t velocity_id, std::size_t force_id) override
 
std::size_t get_density_id () const noexcept override
 
bool set_node_density (Utils::Vector3i const &node, double density) override
 
std::optional< double > get_node_density (Utils::Vector3i const &node, bool consider_ghosts=false) const override
 
std::vector< double > get_slice_density (Utils::Vector3i const &lower_corner, Utils::Vector3i const &upper_corner) const override
 
void set_slice_density (Utils::Vector3i const &lower_corner, Utils::Vector3i const &upper_corner, std::vector< double > const &density) override
 
void clear_flux_boundaries () override
 
void clear_density_boundaries () override
 
bool set_node_flux_boundary (Utils::Vector3i const &node, Utils::Vector3d const &flux) override
 
std::optional< Utils::Vector3dget_node_flux_at_boundary (Utils::Vector3i const &node, bool consider_ghosts=false) const override
 
bool remove_node_from_flux_boundary (Utils::Vector3i const &node) override
 
bool set_node_density_boundary (Utils::Vector3i const &node, double density) override
 
std::optional< double > get_node_density_at_boundary (Utils::Vector3i const &node, bool consider_ghosts=false) const override
 
void set_slice_density_boundary (Utils::Vector3i const &lower_corner, Utils::Vector3i const &upper_corner, std::vector< std::optional< double > > const &density) override
 
std::vector< std::optional< double > > get_slice_density_at_boundary (Utils::Vector3i const &lower_corner, Utils::Vector3i const &upper_corner) const override
 
void set_slice_flux_boundary (Utils::Vector3i const &lower_corner, Utils::Vector3i const &upper_corner, std::vector< std::optional< Utils::Vector3d > > const &flux) override
 
std::vector< std::optional< Utils::Vector3d > > get_slice_flux_at_boundary (Utils::Vector3i const &lower_corner, Utils::Vector3i const &upper_corner) const override
 
std::vector< bool > get_slice_is_boundary (Utils::Vector3i const &lower_corner, Utils::Vector3i const &upper_corner) const override
 
bool remove_node_from_density_boundary (Utils::Vector3i const &node) override
 
std::optional< bool > get_node_is_flux_boundary (Utils::Vector3i const &node, bool consider_ghosts) const override
 
std::optional< bool > get_node_is_density_boundary (Utils::Vector3i const &node, bool consider_ghosts) const override
 
std::optional< bool > get_node_is_boundary (Utils::Vector3i const &node, bool consider_ghosts=false) const override
 
void update_flux_boundary_from_shape (const std::vector< int > &raster_flat, const std::vector< double > &data_flat) override
 
void update_density_boundary_from_shape (const std::vector< int > &raster_flat, const std::vector< double > &data_flat) override
 
void reallocate_flux_boundary_field ()
 
void reallocate_density_boundary_field ()
 
LatticeWalberla const & get_lattice () const noexcept override
 
void register_vtk_field_filters (walberla::vtk::VTKOutput &vtk_obj) override
 
void register_vtk_field_writers (walberla::vtk::VTKOutput &vtk_obj, LatticeModel::units_map const &units, int flag_observables) override
 
 ~EKinWalberlaImpl () override=default
 
- Public Member Functions inherited from EKinWalberlaBase
 ~EKinWalberlaBase () override=default
 
- 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)
 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 Types

using FluxField = GhostLayerField< FloatType, FluxCount >
 
using FlagField = walberla::FlagField< walberla::uint8_t >
 
using DensityField = GhostLayerField< FloatType, 1 >
 
using BoundaryModelDensity = BoundaryHandling< FloatType, Dirichlet >
 
using BoundaryModelFlux = BoundaryHandling< Vector3< FloatType >, FixedFlux >
 
using FullCommunicator = blockforest::communication::UniformBufferedScheme< typename stencil::D3Q27 >
 

Protected Member Functions

std::optional< CellInterval > get_interval (Utils::Vector3i const &lower_corner, Utils::Vector3i const &upper_corner) const
 
void reset_density_boundary_handling ()
 
void reset_flux_boundary_handling ()
 
void integrate_vtk_writers () override
 

Protected Attributes

BlockDataID m_density_field_id
 
BlockDataID m_density_field_flattened_id
 
BlockDataID m_flux_field_id
 
BlockDataID m_flux_field_flattened_id
 
BlockDataID m_flag_field_density_id
 
BlockDataID m_flag_field_flux_id
 
FlagUID const Domain_flag {"domain"}
 Flag for domain cells, i.e.
 
FlagUID const Boundary_flag {"boundary"}
 Flag for boundary cells.
 
std::shared_ptr< LatticeWalberlam_lattice
 Block forest.
 
std::unique_ptr< BoundaryModelDensitym_boundary_density
 
std::unique_ptr< BoundaryModelFluxm_boundary_flux
 
std::unique_ptr< DiffusiveFluxKernel > m_diffusive_flux
 
std::unique_ptr< DiffusiveFluxKernelElectrostatic > m_diffusive_flux_electrostatic
 
std::unique_ptr< ContinuityKernel > m_continuity
 
std::shared_ptr< FullCommunicatorm_full_communication
 
- 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.
 

Additional Inherited Members

- Public Types inherited from LatticeModel
using units_map = std::unordered_map< std::string, double >
 

Detailed Description

template<std::size_t FluxCount = 13, typename FloatType = double>
class walberla::EKinWalberlaImpl< FluxCount, FloatType >

Class that runs and controls the EK on waLBerla.

Definition at line 57 of file EKinWalberlaImpl.hpp.

Member Typedef Documentation

◆ BoundaryModelDensity

template<std::size_t FluxCount = 13, typename FloatType = double>
using walberla::EKinWalberlaImpl< FluxCount, FloatType >::BoundaryModelDensity = BoundaryHandling<FloatType, Dirichlet>
protected

Definition at line 89 of file EKinWalberlaImpl.hpp.

◆ BoundaryModelFlux

template<std::size_t FluxCount = 13, typename FloatType = double>
using walberla::EKinWalberlaImpl< FluxCount, FloatType >::BoundaryModelFlux = BoundaryHandling<Vector3<FloatType>, FixedFlux>
protected

Definition at line 90 of file EKinWalberlaImpl.hpp.

◆ DensityField

template<std::size_t FluxCount = 13, typename FloatType = double>
using walberla::EKinWalberlaImpl< FluxCount, FloatType >::DensityField = GhostLayerField<FloatType, 1>
protected

Definition at line 87 of file EKinWalberlaImpl.hpp.

◆ FlagField

template<std::size_t FluxCount = 13, typename FloatType = double>
using walberla::EKinWalberlaImpl< FluxCount, FloatType >::FlagField = walberla::FlagField<walberla::uint8_t>
protected

Definition at line 86 of file EKinWalberlaImpl.hpp.

◆ FluxField

template<std::size_t FluxCount = 13, typename FloatType = double>
using walberla::EKinWalberlaImpl< FluxCount, FloatType >::FluxField = GhostLayerField<FloatType, FluxCount>
protected

Definition at line 85 of file EKinWalberlaImpl.hpp.

◆ FullCommunicator

template<std::size_t FluxCount = 13, typename FloatType = double>
using walberla::EKinWalberlaImpl< FluxCount, FloatType >::FullCommunicator = blockforest::communication::UniformBufferedScheme< typename stencil::D3Q27>
protected

Definition at line 172 of file EKinWalberlaImpl.hpp.

Constructor & Destructor Documentation

◆ EKinWalberlaImpl()

◆ ~EKinWalberlaImpl()

template<std::size_t FluxCount = 13, typename FloatType = double>
walberla::EKinWalberlaImpl< FluxCount, FloatType >::~EKinWalberlaImpl ( )
overridedefault

Member Function Documentation

◆ clear_density_boundaries()

template<std::size_t FluxCount = 13, typename FloatType = double>
void walberla::EKinWalberlaImpl< FluxCount, FloatType >::clear_density_boundaries ( )
inlineoverridevirtual

◆ clear_flux_boundaries()

template<std::size_t FluxCount = 13, typename FloatType = double>
void walberla::EKinWalberlaImpl< FluxCount, FloatType >::clear_flux_boundaries ( )
inlineoverridevirtual

◆ FloatType_c()

◆ get_advection()

template<std::size_t FluxCount = 13, typename FloatType = double>
bool walberla::EKinWalberlaImpl< FluxCount, FloatType >::get_advection ( ) const
inlineoverridevirtualnoexcept

◆ get_density_id()

template<std::size_t FluxCount = 13, typename FloatType = double>
std::size_t walberla::EKinWalberlaImpl< FluxCount, FloatType >::get_density_id ( ) const
inlineoverridevirtualnoexcept

◆ get_diffusion()

template<std::size_t FluxCount = 13, typename FloatType = double>
double walberla::EKinWalberlaImpl< FluxCount, FloatType >::get_diffusion ( ) const
inlineoverridevirtualnoexcept

◆ get_ext_efield()

template<std::size_t FluxCount = 13, typename FloatType = double>
Utils::Vector3d walberla::EKinWalberlaImpl< FluxCount, FloatType >::get_ext_efield ( ) const
inlineoverridevirtualnoexcept

Implements EKinWalberlaBase.

Definition at line 243 of file EKinWalberlaImpl.hpp.

◆ get_friction_coupling()

template<std::size_t FluxCount = 13, typename FloatType = double>
bool walberla::EKinWalberlaImpl< FluxCount, FloatType >::get_friction_coupling ( ) const
inlineoverridevirtualnoexcept

◆ get_interval()

◆ get_kT()

template<std::size_t FluxCount = 13, typename FloatType = double>
double walberla::EKinWalberlaImpl< FluxCount, FloatType >::get_kT ( ) const
inlineoverridevirtualnoexcept

Implements EKinWalberlaBase.

Definition at line 233 of file EKinWalberlaImpl.hpp.

◆ get_lattice()

template<std::size_t FluxCount = 13, typename FloatType = double>
LatticeWalberla const & walberla::EKinWalberlaImpl< FluxCount, FloatType >::get_lattice ( ) const
inlineoverridevirtualnoexcept

Implements LatticeModel.

Definition at line 856 of file EKinWalberlaImpl.hpp.

References walberla::EKinWalberlaImpl< FluxCount, FloatType >::m_lattice.

Referenced by walberla::EKinWalberlaImpl< FluxCount, FloatType >::get_interval(), walberla::EKinWalberlaImpl< FluxCount, FloatType >::get_node_density(), walberla::EKinWalberlaImpl< FluxCount, FloatType >::get_node_density_at_boundary(), walberla::EKinWalberlaImpl< FluxCount, FloatType >::get_node_flux_at_boundary(), walberla::EKinWalberlaImpl< FluxCount, FloatType >::get_node_is_boundary(), walberla::EKinWalberlaImpl< FluxCount, FloatType >::get_node_is_density_boundary(), walberla::EKinWalberlaImpl< FluxCount, FloatType >::get_node_is_flux_boundary(), walberla::EKinWalberlaImpl< FluxCount, FloatType >::get_slice_density(), walberla::EKinWalberlaImpl< FluxCount, FloatType >::get_slice_density_at_boundary(), walberla::EKinWalberlaImpl< FluxCount, FloatType >::get_slice_flux_at_boundary(), walberla::EKinWalberlaImpl< FluxCount, FloatType >::get_slice_is_boundary(), walberla::EKinWalberlaImpl< FluxCount, FloatType >::remove_node_from_density_boundary(), walberla::EKinWalberlaImpl< FluxCount, FloatType >::remove_node_from_flux_boundary(), walberla::EKinWalberlaImpl< FluxCount, FloatType >::reset_density_boundary_handling(), walberla::EKinWalberlaImpl< FluxCount, FloatType >::reset_flux_boundary_handling(), walberla::EKinWalberlaImpl< FluxCount, FloatType >::set_node_density(), walberla::EKinWalberlaImpl< FluxCount, FloatType >::set_node_density_boundary(), walberla::EKinWalberlaImpl< FluxCount, FloatType >::set_node_flux_boundary(), walberla::EKinWalberlaImpl< FluxCount, FloatType >::set_slice_density(), walberla::EKinWalberlaImpl< FluxCount, FloatType >::set_slice_density_boundary(), walberla::EKinWalberlaImpl< FluxCount, FloatType >::set_slice_flux_boundary(), walberla::EKinWalberlaImpl< FluxCount, FloatType >::update_density_boundary_from_shape(), and walberla::EKinWalberlaImpl< FluxCount, FloatType >::update_flux_boundary_from_shape().

◆ get_node_density()

template<std::size_t FluxCount = 13, typename FloatType = double>
std::optional< double > walberla::EKinWalberlaImpl< FluxCount, FloatType >::get_node_density ( Utils::Vector3i const &  node,
bool  consider_ghosts = false 
) const
inlineoverridevirtual

◆ get_node_density_at_boundary()

template<std::size_t FluxCount = 13, typename FloatType = double>
std::optional< double > walberla::EKinWalberlaImpl< FluxCount, FloatType >::get_node_density_at_boundary ( Utils::Vector3i const &  node,
bool  consider_ghosts = false 
) const
inlineoverridevirtual

◆ get_node_flux_at_boundary()

template<std::size_t FluxCount = 13, typename FloatType = double>
std::optional< Utils::Vector3d > walberla::EKinWalberlaImpl< FluxCount, FloatType >::get_node_flux_at_boundary ( Utils::Vector3i const &  node,
bool  consider_ghosts = false 
) const
inlineoverridevirtual

◆ get_node_is_boundary()

template<std::size_t FluxCount = 13, typename FloatType = double>
std::optional< bool > walberla::EKinWalberlaImpl< FluxCount, FloatType >::get_node_is_boundary ( Utils::Vector3i const &  node,
bool  consider_ghosts = false 
) const
inlineoverridevirtual

◆ get_node_is_density_boundary()

template<std::size_t FluxCount = 13, typename FloatType = double>
std::optional< bool > walberla::EKinWalberlaImpl< FluxCount, FloatType >::get_node_is_density_boundary ( Utils::Vector3i const &  node,
bool  consider_ghosts 
) const
inlineoverridevirtual

◆ get_node_is_flux_boundary()

template<std::size_t FluxCount = 13, typename FloatType = double>
std::optional< bool > walberla::EKinWalberlaImpl< FluxCount, FloatType >::get_node_is_flux_boundary ( Utils::Vector3i const &  node,
bool  consider_ghosts 
) const
inlineoverridevirtual

◆ get_rng_state()

template<std::size_t FluxCount = 13, typename FloatType = double>
std::optional< uint64_t > walberla::EKinWalberlaImpl< FluxCount, FloatType >::get_rng_state ( ) const
inlineoverridevirtual

◆ get_seed()

template<std::size_t FluxCount = 13, typename FloatType = double>
unsigned int walberla::EKinWalberlaImpl< FluxCount, FloatType >::get_seed ( ) const
inlineoverridevirtualnoexcept

Implements EKinWalberlaBase.

Definition at line 250 of file EKinWalberlaImpl.hpp.

◆ get_slice_density()

template<std::size_t FluxCount = 13, typename FloatType = double>
std::vector< double > walberla::EKinWalberlaImpl< FluxCount, FloatType >::get_slice_density ( Utils::Vector3i const &  lower_corner,
Utils::Vector3i const &  upper_corner 
) const
inlineoverridevirtual

◆ get_slice_density_at_boundary()

template<std::size_t FluxCount = 13, typename FloatType = double>
std::vector< std::optional< double > > walberla::EKinWalberlaImpl< FluxCount, FloatType >::get_slice_density_at_boundary ( Utils::Vector3i const &  lower_corner,
Utils::Vector3i const &  upper_corner 
) const
inlineoverridevirtual

◆ get_slice_flux_at_boundary()

template<std::size_t FluxCount = 13, typename FloatType = double>
std::vector< std::optional< Utils::Vector3d > > walberla::EKinWalberlaImpl< FluxCount, FloatType >::get_slice_flux_at_boundary ( Utils::Vector3i const &  lower_corner,
Utils::Vector3i const &  upper_corner 
) const
inlineoverridevirtual

◆ get_slice_is_boundary()

template<std::size_t FluxCount = 13, typename FloatType = double>
std::vector< bool > walberla::EKinWalberlaImpl< FluxCount, FloatType >::get_slice_is_boundary ( Utils::Vector3i const &  lower_corner,
Utils::Vector3i const &  upper_corner 
) const
inlineoverridevirtual

◆ get_valency()

template<std::size_t FluxCount = 13, typename FloatType = double>
double walberla::EKinWalberlaImpl< FluxCount, FloatType >::get_valency ( ) const
inlineoverridevirtualnoexcept

◆ ghost_communication()

template<std::size_t FluxCount = 13, typename FloatType = double>
void walberla::EKinWalberlaImpl< FluxCount, FloatType >::ghost_communication ( )
inlineoverridevirtual

◆ integrate()

template<std::size_t FluxCount = 13, typename FloatType = double>
void walberla::EKinWalberlaImpl< FluxCount, FloatType >::integrate ( std::size_t  potential_id,
std::size_t  velocity_id,
std::size_t  force_id 
)
inlineoverridevirtual

◆ integrate_vtk_writers()

template<std::size_t FluxCount = 13, typename FloatType = double>
void walberla::EKinWalberlaImpl< FluxCount, FloatType >::integrate_vtk_writers ( )
inlineoverrideprotectedvirtual

◆ is_double_precision()

template<std::size_t FluxCount = 13, typename FloatType = double>
bool walberla::EKinWalberlaImpl< FluxCount, FloatType >::is_double_precision ( ) const
inlineoverridevirtualnoexcept

Implements EKinWalberlaBase.

Definition at line 101 of file EKinWalberlaImpl.hpp.

◆ is_thermalized()

template<std::size_t FluxCount = 13, typename FloatType = double>
bool walberla::EKinWalberlaImpl< FluxCount, FloatType >::is_thermalized ( ) const
inlineoverridevirtualnoexcept

◆ reallocate_density_boundary_field()

template<std::size_t FluxCount = 13, typename FloatType = double>
void walberla::EKinWalberlaImpl< FluxCount, FloatType >::reallocate_density_boundary_field ( )
inline

◆ reallocate_flux_boundary_field()

template<std::size_t FluxCount = 13, typename FloatType = double>
void walberla::EKinWalberlaImpl< FluxCount, FloatType >::reallocate_flux_boundary_field ( )
inline

◆ register_vtk_field_filters()

template<std::size_t FluxCount = 13, typename FloatType = double>
void walberla::EKinWalberlaImpl< FluxCount, FloatType >::register_vtk_field_filters ( walberla::vtk::VTKOutput &  vtk_obj)
inlineoverridevirtual

◆ register_vtk_field_writers()

template<std::size_t FluxCount = 13, typename FloatType = double>
void walberla::EKinWalberlaImpl< FluxCount, FloatType >::register_vtk_field_writers ( walberla::vtk::VTKOutput &  vtk_obj,
LatticeModel::units_map const &  units,
int  flag_observables 
)
inlineoverridevirtual

◆ remove_node_from_density_boundary()

template<std::size_t FluxCount = 13, typename FloatType = double>
bool walberla::EKinWalberlaImpl< FluxCount, FloatType >::remove_node_from_density_boundary ( Utils::Vector3i const &  node)
inlineoverridevirtual

◆ remove_node_from_flux_boundary()

template<std::size_t FluxCount = 13, typename FloatType = double>
bool walberla::EKinWalberlaImpl< FluxCount, FloatType >::remove_node_from_flux_boundary ( Utils::Vector3i const &  node)
inlineoverridevirtual

◆ reset_density_boundary_handling()

◆ reset_flux_boundary_handling()

◆ set_advection()

template<std::size_t FluxCount = 13, typename FloatType = double>
void walberla::EKinWalberlaImpl< FluxCount, FloatType >::set_advection ( bool  advection)
inlineoverridevirtual

Implements EKinWalberlaBase.

Definition at line 283 of file EKinWalberlaImpl.hpp.

◆ set_diffusion()

template<std::size_t FluxCount = 13, typename FloatType = double>
void walberla::EKinWalberlaImpl< FluxCount, FloatType >::set_diffusion ( double  diffusion)
inlineoverridevirtual

◆ set_ext_efield()

template<std::size_t FluxCount = 13, typename FloatType = double>
void walberla::EKinWalberlaImpl< FluxCount, FloatType >::set_ext_efield ( Utils::Vector3d const &  field)
inlineoverridevirtual

◆ set_friction_coupling()

template<std::size_t FluxCount = 13, typename FloatType = double>
void walberla::EKinWalberlaImpl< FluxCount, FloatType >::set_friction_coupling ( bool  friction_coupling)
inlineoverridevirtual

Implements EKinWalberlaBase.

Definition at line 285 of file EKinWalberlaImpl.hpp.

◆ set_kT()

template<std::size_t FluxCount = 13, typename FloatType = double>
void walberla::EKinWalberlaImpl< FluxCount, FloatType >::set_kT ( double  kT)
inlineoverridevirtual

◆ set_node_density()

template<std::size_t FluxCount = 13, typename FloatType = double>
bool walberla::EKinWalberlaImpl< FluxCount, FloatType >::set_node_density ( Utils::Vector3i const &  node,
double  density 
)
inlineoverridevirtual

◆ set_node_density_boundary()

template<std::size_t FluxCount = 13, typename FloatType = double>
bool walberla::EKinWalberlaImpl< FluxCount, FloatType >::set_node_density_boundary ( Utils::Vector3i const &  node,
double  density 
)
inlineoverridevirtual

◆ set_node_flux_boundary()

template<std::size_t FluxCount = 13, typename FloatType = double>
bool walberla::EKinWalberlaImpl< FluxCount, FloatType >::set_node_flux_boundary ( Utils::Vector3i const &  node,
Utils::Vector3d const &  flux 
)
inlineoverridevirtual

◆ set_rng_state()

template<std::size_t FluxCount = 13, typename FloatType = double>
void walberla::EKinWalberlaImpl< FluxCount, FloatType >::set_rng_state ( uint64_t  counter)
inlineoverridevirtual

◆ set_slice_density()

template<std::size_t FluxCount = 13, typename FloatType = double>
void walberla::EKinWalberlaImpl< FluxCount, FloatType >::set_slice_density ( Utils::Vector3i const &  lower_corner,
Utils::Vector3i const &  upper_corner,
std::vector< double > const &  density 
)
inlineoverridevirtual

◆ set_slice_density_boundary()

template<std::size_t FluxCount = 13, typename FloatType = double>
void walberla::EKinWalberlaImpl< FluxCount, FloatType >::set_slice_density_boundary ( Utils::Vector3i const &  lower_corner,
Utils::Vector3i const &  upper_corner,
std::vector< std::optional< double > > const &  density 
)
inlineoverridevirtual

◆ set_slice_flux_boundary()

template<std::size_t FluxCount = 13, typename FloatType = double>
void walberla::EKinWalberlaImpl< FluxCount, FloatType >::set_slice_flux_boundary ( Utils::Vector3i const &  lower_corner,
Utils::Vector3i const &  upper_corner,
std::vector< std::optional< Utils::Vector3d > > const &  flux 
)
inlineoverridevirtual

◆ set_valency()

template<std::size_t FluxCount = 13, typename FloatType = double>
void walberla::EKinWalberlaImpl< FluxCount, FloatType >::set_valency ( double  valency)
inlineoverridevirtual

◆ stencil_size()

template<std::size_t FluxCount = 13, typename FloatType = double>
std::size_t walberla::EKinWalberlaImpl< FluxCount, FloatType >::stencil_size ( ) const
inlineoverridevirtualnoexcept

Implements EKinWalberlaBase.

Definition at line 97 of file EKinWalberlaImpl.hpp.

◆ update_density_boundary_from_shape()

template<std::size_t FluxCount = 13, typename FloatType = double>
void walberla::EKinWalberlaImpl< FluxCount, FloatType >::update_density_boundary_from_shape ( const std::vector< int > &  raster_flat,
const std::vector< double > &  data_flat 
)
inlineoverridevirtual

◆ update_flux_boundary_from_shape()

template<std::size_t FluxCount = 13, typename FloatType = double>
void walberla::EKinWalberlaImpl< FluxCount, FloatType >::update_flux_boundary_from_shape ( const std::vector< int > &  raster_flat,
const std::vector< double > &  data_flat 
)
inlineoverridevirtual

Member Data Documentation

◆ Boundary_flag

template<std::size_t FluxCount = 13, typename FloatType = double>
FlagUID const walberla::EKinWalberlaImpl< FluxCount, FloatType >::Boundary_flag {"boundary"}
protected

Flag for boundary cells.

Definition at line 128 of file EKinWalberlaImpl.hpp.

Referenced by walberla::EKinWalberlaImpl< FluxCount, FloatType >::register_vtk_field_filters().

◆ Domain_flag

template<std::size_t FluxCount = 13, typename FloatType = double>
FlagUID const walberla::EKinWalberlaImpl< FluxCount, FloatType >::Domain_flag {"domain"}
protected

Flag for domain cells, i.e.

all cells.

Definition at line 126 of file EKinWalberlaImpl.hpp.

◆ m_boundary_density

◆ m_boundary_flux

◆ m_continuity

template<std::size_t FluxCount = 13, typename FloatType = double>
std::unique_ptr<ContinuityKernel> walberla::EKinWalberlaImpl< FluxCount, FloatType >::m_continuity
protected

◆ m_density_field_flattened_id

template<std::size_t FluxCount = 13, typename FloatType = double>
BlockDataID walberla::EKinWalberlaImpl< FluxCount, FloatType >::m_density_field_flattened_id
protected

◆ m_density_field_id

◆ m_diffusive_flux

template<std::size_t FluxCount = 13, typename FloatType = double>
std::unique_ptr<DiffusiveFluxKernel> walberla::EKinWalberlaImpl< FluxCount, FloatType >::m_diffusive_flux
protected

◆ m_diffusive_flux_electrostatic

◆ m_flag_field_density_id

template<std::size_t FluxCount = 13, typename FloatType = double>
BlockDataID walberla::EKinWalberlaImpl< FluxCount, FloatType >::m_flag_field_density_id
protected

◆ m_flag_field_flux_id

template<std::size_t FluxCount = 13, typename FloatType = double>
BlockDataID walberla::EKinWalberlaImpl< FluxCount, FloatType >::m_flag_field_flux_id
protected

◆ m_flux_field_flattened_id

template<std::size_t FluxCount = 13, typename FloatType = double>
BlockDataID walberla::EKinWalberlaImpl< FluxCount, FloatType >::m_flux_field_flattened_id
protected

◆ m_flux_field_id

template<std::size_t FluxCount = 13, typename FloatType = double>
BlockDataID walberla::EKinWalberlaImpl< FluxCount, FloatType >::m_flux_field_id
protected

◆ m_full_communication

template<std::size_t FluxCount = 13, typename FloatType = double>
std::shared_ptr<FullCommunicator> walberla::EKinWalberlaImpl< FluxCount, FloatType >::m_full_communication
protected

◆ m_lattice

template<std::size_t FluxCount = 13, typename FloatType = double>
std::shared_ptr<LatticeWalberla> walberla::EKinWalberlaImpl< FluxCount, FloatType >::m_lattice
protected

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