![]() |
ESPResSo
Extensible Simulation Package for Research on Soft Matter Systems
|
Class that runs and controls the EK on waLBerla. More...
#include <EKinWalberlaImpl.hpp>
Inheritance diagram for walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >:
Collaboration diagram for walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >:Classes | |
| class | DensityVTKWriter |
| struct | FieldTrait |
| class | FluxVTKWriter |
| struct | GhostComm |
| class | VTKWriter |
Public Types | |
| using | Stencil = stencil::D3Q27 |
| Stencil for collision and streaming operations. | |
| using | BlockStorage = LatticeWalberla::Lattice_T |
| Lattice model (e.g. | |
| using | FluxField = typename FieldTrait< FloatType, Architecture >::FluxField |
| using | DensityField = typename FieldTrait< FloatType, Architecture >::DensityField |
Public Types inherited from LatticeModel | |
| using | units_map = std::unordered_map< std::string, double > |
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 | ghost_communication_boundary () |
| void | integrate (std::size_t potential_id, std::size_t velocity_id, std::size_t force_id, double lb_density) 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 |
| std::optional< Utils::Vector3d > | get_node_flux_vector (Utils::Vector3i const &node, bool consider_ghosts=false) const override |
| std::vector< double > | get_slice_flux_vector (Utils::Vector3i const &lower_corner, Utils::Vector3i const &upper_corner) const 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::Vector3d > | get_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 |
| bool | is_gpu () 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< 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 Types | |
| using | FlagField = walberla::FlagField< walberla::uint8_t > |
| using | _FluxField = typename FieldTrait< FloatType >::FluxField |
| using | _DensityField = typename FieldTrait< FloatType >::DensityField |
| using | FullCommunicator = typename FieldTrait< FloatType, Architecture >::template RegularCommScheme< typename stencil::D3Q27 > |
| using | BoundaryFullCommunicator = typename FieldTrait< FloatType, Architecture >::template BoundaryCommScheme< typename stencil::D3Q27 > |
| template<class Field > | |
| using | PackInfo = typename FieldTrait< FloatType, Architecture >::template PackInfo< Field > |
Protected Member Functions | |
| template<typename Field > | |
| auto | add_to_storage (std::string const tag, FloatType value) |
| Convenience function to add a field with a custom allocator. | |
| void | reset_density_boundary_handling (std::shared_ptr< BlockStorage > const &blocks) |
| void | reset_flux_boundary_handling (std::shared_ptr< BlockStorage > const &blocks) |
| void | integrate_vtk_writers () override |
Protected Attributes | |
| BlockDataID | m_density_field_id |
| BlockDataID | m_flux_field_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< LatticeWalberla > | m_lattice |
| Block forest. | |
| std::unique_ptr< BoundaryModelDensity > | m_boundary_density |
| std::shared_ptr< BoundaryModelFlux > | m_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< FullCommunicator > | m_full_communication |
| std::shared_ptr< BoundaryFullCommunicator > | m_boundary_communicator |
| std::bitset< GhostComm::SIZE > | m_pending_ghost_comm |
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. | |
Class that runs and controls the EK on waLBerla.
Definition at line 69 of file EKinWalberlaImpl.hpp.
|
protected |
Definition at line 167 of file EKinWalberlaImpl.hpp.
|
protected |
Definition at line 166 of file EKinWalberlaImpl.hpp.
| using walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::BlockStorage = LatticeWalberla::Lattice_T |
|
protected |
Definition at line 297 of file EKinWalberlaImpl.hpp.
| using walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::DensityField = typename FieldTrait<FloatType, Architecture>::DensityField |
Definition at line 171 of file EKinWalberlaImpl.hpp.
|
protected |
Definition at line 126 of file EKinWalberlaImpl.hpp.
| using walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::FluxField = typename FieldTrait<FloatType, Architecture>::FluxField |
Definition at line 170 of file EKinWalberlaImpl.hpp.
|
protected |
Definition at line 294 of file EKinWalberlaImpl.hpp.
|
protected |
Definition at line 304 of file EKinWalberlaImpl.hpp.
| using walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::Stencil = stencil::D3Q27 |
Stencil for collision and streaming operations.
Definition at line 108 of file EKinWalberlaImpl.hpp.
|
inline |
Definition at line 308 of file EKinWalberlaImpl.hpp.
References density, walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::FloatType_c(), walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::m_boundary_communicator, walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::m_boundary_flux, walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::m_continuity, walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::m_density_field_id, walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::m_flag_field_density_id, walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::m_flag_field_flux_id, walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::m_flux_field_id, walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::m_full_communication, walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::m_lattice, walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::m_pending_ghost_comm, walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::reset_density_boundary_handling(), walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::reset_flux_boundary_handling(), and walberla::field::communication::BoundaryPackInfo< GhostLayerField_T, Boundary_T >::setup_boundary_handle().
|
overridedefault |
|
inlineprotected |
Convenience function to add a field with a custom allocator.
When vectorization is off, let waLBerla decide which memory allocator to use. When vectorization is on, the aligned memory allocator is required, otherwise cpu_vectorize_info["assume_aligned"] will trigger assertions. That is because for single-precision kernels the waLBerla heuristic in src/field/allocation/FieldAllocator.h will fall back to StdFieldAlloc, yet AllocateAligned is needed for intrinsics to work.
Definition at line 250 of file EKinWalberlaImpl.hpp.
References block(), lbmpy::CPU, walberla::ek::accessor::Scalar::initialize(), walberla::ek::accessor::Flux::initialize(), and walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::m_lattice.
|
inlineoverridevirtual |
Implements EKinWalberlaBase.
Definition at line 811 of file EKinWalberlaImpl.hpp.
References walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::get_lattice(), and walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::reset_density_boundary_handling().
|
inlineoverridevirtual |
Implements EKinWalberlaBase.
Definition at line 806 of file EKinWalberlaImpl.hpp.
References walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::GhostComm::FLB, walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::get_lattice(), walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::m_pending_ghost_comm, and walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::reset_flux_boundary_handling().
|
inline |
Definition at line 179 of file EKinWalberlaImpl.hpp.
Referenced by walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::EKinWalberlaImpl(), walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::register_vtk_field_writers(), walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::set_diffusion(), walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::set_ext_efield(), walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::set_kT(), walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::set_node_density(), walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::set_node_density_boundary(), walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::set_slice_density_boundary(), and walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::set_valency().
|
inlineoverridevirtualnoexcept |
Implements EKinWalberlaBase.
Definition at line 373 of file EKinWalberlaImpl.hpp.
Referenced by walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::integrate().
|
inlineoverridevirtualnoexcept |
Implements EKinWalberlaBase.
Definition at line 661 of file EKinWalberlaImpl.hpp.
References walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::m_density_field_id.
|
inlineoverridevirtualnoexcept |
Implements EKinWalberlaBase.
Definition at line 366 of file EKinWalberlaImpl.hpp.
Referenced by walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::integrate().
|
inlineoverridevirtualnoexcept |
Implements EKinWalberlaBase.
Definition at line 379 of file EKinWalberlaImpl.hpp.
|
inlineoverridevirtualnoexcept |
Implements EKinWalberlaBase.
Definition at line 376 of file EKinWalberlaImpl.hpp.
Referenced by walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::integrate().
|
inlineoverridevirtualnoexcept |
Implements EKinWalberlaBase.
Definition at line 369 of file EKinWalberlaImpl.hpp.
|
inlineoverridevirtualnoexcept |
Implements LatticeModel.
Definition at line 1082 of file EKinWalberlaImpl.hpp.
References walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::m_lattice.
Referenced by walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::clear_density_boundaries(), walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::clear_flux_boundaries(), walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::get_node_density(), walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::get_node_density_at_boundary(), walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::get_node_flux_at_boundary(), walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::get_node_flux_vector(), walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::get_node_is_boundary(), walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::get_node_is_density_boundary(), walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::get_node_is_flux_boundary(), walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::get_slice_density(), walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::get_slice_density_at_boundary(), walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::get_slice_flux_at_boundary(), walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::get_slice_flux_vector(), walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::get_slice_is_boundary(), walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::remove_node_from_density_boundary(), walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::remove_node_from_flux_boundary(), walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::set_node_density(), walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::set_node_density_boundary(), walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::set_node_flux_boundary(), walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::set_slice_density(), walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::set_slice_density_boundary(), walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::set_slice_flux_boundary(), walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::update_density_boundary_from_shape(), and walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::update_flux_boundary_from_shape().
|
inlineoverridevirtual |
Implements EKinWalberlaBase.
Definition at line 679 of file EKinWalberlaImpl.hpp.
References walberla::ek::accessor::Scalar::get(), walberla::get_block_and_cell(), walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::get_lattice(), and walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::m_density_field_id.
|
inlineoverridevirtual |
Implements EKinWalberlaBase.
Definition at line 861 of file EKinWalberlaImpl.hpp.
References walberla::get_block_and_cell(), walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::get_lattice(), and walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::m_boundary_density.
|
inlineoverridevirtual |
Implements EKinWalberlaBase.
Definition at line 828 of file EKinWalberlaImpl.hpp.
References walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::GhostComm::FLB, walberla::get_block_and_cell(), walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::get_lattice(), walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::m_boundary_flux, walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::m_pending_ghost_comm, and walberla::to_vector3d().
|
inlineoverridevirtual |
Implements EKinWalberlaBase.
Definition at line 751 of file EKinWalberlaImpl.hpp.
References walberla::get_block_and_cell(), walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::get_lattice(), walberla::ek::accessor::Flux::get_vector(), walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::m_flux_field_id, and walberla::to_vector3d().
|
inlineoverridevirtual |
Implements EKinWalberlaBase.
Definition at line 1046 of file EKinWalberlaImpl.hpp.
References walberla::get_block_and_cell(), walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::get_lattice(), walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::m_boundary_density, and walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::m_boundary_flux.
|
inlineoverridevirtual |
Implements EKinWalberlaBase.
Definition at line 1036 of file EKinWalberlaImpl.hpp.
References walberla::get_block_and_cell(), walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::get_lattice(), and walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::m_boundary_density.
|
inlineoverridevirtual |
Implements EKinWalberlaBase.
Definition at line 1025 of file EKinWalberlaImpl.hpp.
References walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::GhostComm::FLB, walberla::get_block_and_cell(), walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::get_lattice(), walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::m_boundary_flux, and walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::m_pending_ghost_comm.
|
inlineoverridevirtual |
Implements EKinWalberlaBase.
Definition at line 389 of file EKinWalberlaImpl.hpp.
References walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::m_diffusive_flux.
|
inlineoverridevirtualnoexcept |
Implements EKinWalberlaBase.
Definition at line 386 of file EKinWalberlaImpl.hpp.
|
inlineoverridevirtual |
Implements EKinWalberlaBase.
Definition at line 692 of file EKinWalberlaImpl.hpp.
References block(), walberla::copy_block_buffer(), walberla::ek::accessor::Scalar::get(), LatticeWalberla::get_block_corner(), walberla::get_block_interval(), LatticeWalberla::get_blocks(), walberla::get_interval(), walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::get_lattice(), and walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::m_density_field_id.
|
inlineoverridevirtual |
Implements EKinWalberlaBase.
Definition at line 900 of file EKinWalberlaImpl.hpp.
References walberla::get_interval(), walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::get_lattice(), LatticeWalberla::get_local_grid_range(), and walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::m_boundary_density.
|
inlineoverridevirtual |
Implements EKinWalberlaBase.
Definition at line 960 of file EKinWalberlaImpl.hpp.
References walberla::get_interval(), walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::get_lattice(), LatticeWalberla::get_local_grid_range(), walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::m_boundary_flux, and walberla::to_vector3d().
|
inlineoverridevirtual |
Implements EKinWalberlaBase.
Definition at line 764 of file EKinWalberlaImpl.hpp.
References block(), walberla::copy_block_buffer(), LatticeWalberla::get_block_corner(), walberla::get_block_interval(), LatticeWalberla::get_blocks(), walberla::get_interval(), walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::get_lattice(), walberla::ek::accessor::Flux::get_vector(), walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::m_boundary_flux, and walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::m_flux_field_id.
|
inlineoverridevirtual |
Implements EKinWalberlaBase.
Definition at line 990 of file EKinWalberlaImpl.hpp.
References walberla::get_interval(), walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::get_lattice(), LatticeWalberla::get_local_grid_range(), walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::m_boundary_density, and walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::m_boundary_flux.
|
inlineoverridevirtualnoexcept |
Implements EKinWalberlaBase.
Definition at line 370 of file EKinWalberlaImpl.hpp.
Referenced by walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::integrate().
|
inlineoverridevirtual |
Implements EKinWalberlaBase.
Definition at line 454 of file EKinWalberlaImpl.hpp.
References walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::GhostComm::DENS, walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::ghost_communication_boundary(), and walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::m_pending_ghost_comm.
|
inline |
Definition at line 462 of file EKinWalberlaImpl.hpp.
References walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::GhostComm::FLB, walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::m_boundary_communicator, and walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::m_pending_ghost_comm.
Referenced by walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::ghost_communication().
|
inlineoverridevirtual |
Implements EKinWalberlaBase.
Definition at line 609 of file EKinWalberlaImpl.hpp.
References walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::GhostComm::DENS, walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::get_advection(), walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::get_diffusion(), walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::get_friction_coupling(), walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::get_valency(), walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::integrate_vtk_writers(), and walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::m_pending_ghost_comm.
|
inlineoverrideprotectedvirtual |
Implements LatticeModel.
Definition at line 598 of file EKinWalberlaImpl.hpp.
References LatticeModel::m_vtk_auto.
Referenced by walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::integrate().
|
inlineoverridevirtualnoexcept |
Implements EKinWalberlaBase.
Definition at line 187 of file EKinWalberlaImpl.hpp.
|
inlineoverridevirtualnoexcept |
Implements EKinWalberlaBase.
Definition at line 1086 of file EKinWalberlaImpl.hpp.
References lbmpy::GPU.
|
inlineoverridevirtualnoexcept |
Implements EKinWalberlaBase.
Definition at line 382 of file EKinWalberlaImpl.hpp.
References walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::m_diffusive_flux.
|
inline |
Definition at line 1078 of file EKinWalberlaImpl.hpp.
References walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::m_boundary_density.
Referenced by walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::update_density_boundary_from_shape().
|
inline |
Definition at line 1076 of file EKinWalberlaImpl.hpp.
References walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::m_boundary_flux.
Referenced by walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::update_flux_boundary_from_shape().
|
inlineoverridevirtual |
Implements LatticeModel.
Definition at line 1090 of file EKinWalberlaImpl.hpp.
References walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::Boundary_flag, and walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::m_flag_field_density_id.
|
inlineoverridevirtual |
Implements LatticeModel.
Definition at line 1188 of file EKinWalberlaImpl.hpp.
References density, walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::FloatType_c(), flux, lbmpy::GPU, walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::m_density_field_id, walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::m_flux_field_id, and walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::m_lattice.
|
inlineoverridevirtual |
Implements EKinWalberlaBase.
Definition at line 1014 of file EKinWalberlaImpl.hpp.
References walberla::get_block_and_cell(), walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::get_lattice(), and walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::m_boundary_density.
|
inlineoverridevirtual |
Implements EKinWalberlaBase.
Definition at line 838 of file EKinWalberlaImpl.hpp.
References walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::GhostComm::FLB, walberla::get_block_and_cell(), walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::get_lattice(), walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::m_boundary_flux, and walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::m_pending_ghost_comm.
|
inlineprotected |
Definition at line 279 of file EKinWalberlaImpl.hpp.
References walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::m_boundary_density, walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::m_density_field_id, walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::m_flag_field_density_id, walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::m_lattice, and walberla::to_cell().
Referenced by walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::clear_density_boundaries(), and walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::EKinWalberlaImpl().
|
inlineprotected |
Definition at line 287 of file EKinWalberlaImpl.hpp.
References walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::m_boundary_flux, walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::m_flag_field_flux_id, walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::m_flux_field_id, walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::m_lattice, and walberla::to_cell().
Referenced by walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::clear_flux_boundaries(), and walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::EKinWalberlaImpl().
|
inlineoverridevirtual |
Implements EKinWalberlaBase.
Definition at line 420 of file EKinWalberlaImpl.hpp.
|
inlineoverridevirtual |
Implements EKinWalberlaBase.
Definition at line 398 of file EKinWalberlaImpl.hpp.
References walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::FloatType_c(), walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::m_diffusive_flux, and walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::m_diffusive_flux_electrostatic.
|
inlineoverridevirtual |
Implements EKinWalberlaBase.
Definition at line 442 of file EKinWalberlaImpl.hpp.
References walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::FloatType_c(), and walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::m_diffusive_flux_electrostatic.
|
inlineoverridevirtual |
Implements EKinWalberlaBase.
Definition at line 422 of file EKinWalberlaImpl.hpp.
|
inlineoverridevirtual |
Implements EKinWalberlaBase.
Definition at line 407 of file EKinWalberlaImpl.hpp.
References walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::FloatType_c(), and walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::m_diffusive_flux_electrostatic.
|
inlineoverridevirtual |
Implements EKinWalberlaBase.
Definition at line 666 of file EKinWalberlaImpl.hpp.
References walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::GhostComm::DENS, density, walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::FloatType_c(), walberla::get_block_and_cell(), walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::get_lattice(), walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::m_density_field_id, walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::m_pending_ghost_comm, and walberla::ek::accessor::Scalar::set().
|
inlineoverridevirtual |
Implements EKinWalberlaBase.
Definition at line 848 of file EKinWalberlaImpl.hpp.
References density, walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::FloatType_c(), walberla::get_block_and_cell(), walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::get_lattice(), and walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::m_boundary_density.
|
inlineoverridevirtual |
Implements EKinWalberlaBase.
Definition at line 815 of file EKinWalberlaImpl.hpp.
References walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::GhostComm::FLB, flux, walberla::get_block_and_cell(), walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::get_lattice(), walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::m_boundary_flux, and walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::m_pending_ghost_comm.
|
inlineoverridevirtual |
Implements EKinWalberlaBase.
Definition at line 426 of file EKinWalberlaImpl.hpp.
References walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::m_diffusive_flux, and walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::m_diffusive_flux_electrostatic.
|
inlineoverridevirtual |
Implements EKinWalberlaBase.
Definition at line 722 of file EKinWalberlaImpl.hpp.
References block(), walberla::copy_block_buffer(), walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::GhostComm::DENS, density, LatticeWalberla::get_block_corner(), walberla::get_block_interval(), LatticeWalberla::get_blocks(), walberla::get_interval(), walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::get_lattice(), walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::m_density_field_id, walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::m_pending_ghost_comm, and walberla::ek::accessor::Scalar::set().
|
inlineoverridevirtual |
Implements EKinWalberlaBase.
Definition at line 870 of file EKinWalberlaImpl.hpp.
References density, walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::FloatType_c(), walberla::get_block_and_cell(), walberla::get_interval(), walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::get_lattice(), LatticeWalberla::get_local_grid_range(), and walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::m_boundary_density.
|
inlineoverridevirtual |
Implements EKinWalberlaBase.
Definition at line 929 of file EKinWalberlaImpl.hpp.
References walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::GhostComm::FLB, flux, walberla::get_block_and_cell(), walberla::get_interval(), walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::get_lattice(), LatticeWalberla::get_local_grid_range(), walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::m_boundary_flux, and walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::m_pending_ghost_comm.
|
inlineoverridevirtual |
Implements EKinWalberlaBase.
Definition at line 413 of file EKinWalberlaImpl.hpp.
References walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::FloatType_c(), and walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::m_diffusive_flux_electrostatic.
|
inlineoverridevirtualnoexcept |
Implements EKinWalberlaBase.
Definition at line 183 of file EKinWalberlaImpl.hpp.
|
inlineoverridevirtual |
Implements EKinWalberlaBase.
Definition at line 1066 of file EKinWalberlaImpl.hpp.
References walberla::fill_3D_scalar_array(), LatticeWalberla::get_grid_dimensions(), walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::get_lattice(), walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::m_boundary_density, walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::reallocate_density_boundary_field(), and walberla::set_boundary_from_grid().
|
inlineoverridevirtual |
Implements EKinWalberlaBase.
Definition at line 1056 of file EKinWalberlaImpl.hpp.
References walberla::fill_3D_vector_array(), walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::GhostComm::FLB, LatticeWalberla::get_grid_dimensions(), walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::get_lattice(), walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::m_boundary_flux, walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::m_pending_ghost_comm, walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::reallocate_flux_boundary_field(), and walberla::set_boundary_from_grid().
|
protected |
Flag for boundary cells.
Definition at line 217 of file EKinWalberlaImpl.hpp.
Referenced by walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::register_vtk_field_filters().
|
protected |
|
protected |
Definition at line 301 of file EKinWalberlaImpl.hpp.
Referenced by walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::EKinWalberlaImpl(), and walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::ghost_communication_boundary().
|
protected |
Definition at line 222 of file EKinWalberlaImpl.hpp.
Referenced by walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::get_node_density_at_boundary(), walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::get_node_is_boundary(), walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::get_node_is_density_boundary(), walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::get_slice_density_at_boundary(), walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::get_slice_is_boundary(), walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::reallocate_density_boundary_field(), walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::remove_node_from_density_boundary(), walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::reset_density_boundary_handling(), walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::set_node_density_boundary(), walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::set_slice_density_boundary(), and walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::update_density_boundary_from_shape().
|
protected |
Definition at line 223 of file EKinWalberlaImpl.hpp.
Referenced by walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::EKinWalberlaImpl(), walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::get_node_flux_at_boundary(), walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::get_node_is_boundary(), walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::get_node_is_flux_boundary(), walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::get_slice_flux_at_boundary(), walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::get_slice_flux_vector(), walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::get_slice_is_boundary(), walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::reallocate_flux_boundary_field(), walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::remove_node_from_flux_boundary(), walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::reset_flux_boundary_handling(), walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::set_node_flux_boundary(), walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::set_slice_flux_boundary(), and walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::update_flux_boundary_from_shape().
|
protected |
Definition at line 228 of file EKinWalberlaImpl.hpp.
Referenced by walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::EKinWalberlaImpl().
|
protected |
Definition at line 202 of file EKinWalberlaImpl.hpp.
Referenced by walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::EKinWalberlaImpl(), walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::get_density_id(), walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::get_node_density(), walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::get_slice_density(), walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::register_vtk_field_writers(), walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::reset_density_boundary_handling(), walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::set_node_density(), and walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::set_slice_density().
|
protected |
Definition at line 225 of file EKinWalberlaImpl.hpp.
Referenced by walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::get_rng_state(), walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::is_thermalized(), walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::set_diffusion(), and walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::set_rng_state().
|
protected |
Definition at line 227 of file EKinWalberlaImpl.hpp.
Referenced by walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::set_diffusion(), walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::set_ext_efield(), walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::set_kT(), walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::set_rng_state(), and walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::set_valency().
|
protected |
Definition at line 206 of file EKinWalberlaImpl.hpp.
Referenced by walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::EKinWalberlaImpl(), walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::register_vtk_field_filters(), and walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::reset_density_boundary_handling().
|
protected |
Definition at line 207 of file EKinWalberlaImpl.hpp.
Referenced by walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::EKinWalberlaImpl(), and walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::reset_flux_boundary_handling().
|
protected |
Definition at line 204 of file EKinWalberlaImpl.hpp.
Referenced by walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::EKinWalberlaImpl(), walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::get_node_flux_vector(), walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::get_slice_flux_vector(), walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::register_vtk_field_writers(), and walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::reset_flux_boundary_handling().
|
protected |
Definition at line 300 of file EKinWalberlaImpl.hpp.
Referenced by walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::EKinWalberlaImpl().
|
protected |
Block forest.
Definition at line 220 of file EKinWalberlaImpl.hpp.
Referenced by walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::add_to_storage(), walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::EKinWalberlaImpl(), walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::get_lattice(), walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::register_vtk_field_writers(), walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::reset_density_boundary_handling(), and walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::reset_flux_boundary_handling().
|
protected |
Definition at line 302 of file EKinWalberlaImpl.hpp.
Referenced by walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::clear_flux_boundaries(), walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::EKinWalberlaImpl(), walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::get_node_flux_at_boundary(), walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::get_node_is_flux_boundary(), walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::ghost_communication(), walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::ghost_communication_boundary(), walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::integrate(), walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::remove_node_from_flux_boundary(), walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::set_node_density(), walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::set_node_flux_boundary(), walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::set_slice_density(), walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::set_slice_flux_boundary(), and walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::update_flux_boundary_from_shape().