![]() |
ESPResSo
Extensible Simulation Package for Research on Soft Matter Systems
|
Class that runs and controls the LB on waLBerla. More...
#include <LBWalberlaImpl.hpp>
Inheritance diagram for walberla::LBWalberlaImpl< FloatType, Architecture >:
Collaboration diagram for walberla::LBWalberlaImpl< FloatType, Architecture >:Classes | |
| struct | GhostComm |
Public Types | |
| using | Stencil = stencil::D3Q19 |
| Stencil for collision and streaming operations. | |
| using | StencilFull = stencil::D3Q27 |
| Stencil for ghost communication (includes domain corners). | |
| using | BlockStorage = LatticeWalberla::Lattice_T |
| Lattice model (e.g. | |
| using | PdfField = FieldTrait< FloatType, Stencil, Architecture >::PdfField |
| using | VectorField = FieldTrait< FloatType, Stencil, Architecture >::VectorField |
| using | FlagField = BoundaryModel::FlagField |
Public Types inherited from LatticeModel | |
| using | units_map = std::unordered_map< std::string, double > |
Protected Types | |
| using | Kernels = detail::KernelTrait< FloatType, Architecture > |
| using | BoundaryModel = BoundaryHandling< FloatType, Vector3< FloatType >, typename Kernels::DynamicUBB > |
| using | CollisionModel = std::variant< typename Kernels::StreamCollisionModelThermalized, typename Kernels::StreamCollisionModelLeesEdwards > |
| using | _PdfField = FieldTrait< FloatType, Stencil >::PdfField |
| using | _VectorField = FieldTrait< FloatType, Stencil >::VectorField |
| using | RegularFullCommunicator = FieldTrait< FloatType, Stencil, Architecture >::template RegularCommScheme< stencil::D3Q27 > |
| Full communicator. | |
| using | BoundaryFullCommunicator = FieldTrait< FloatType, Stencil, Architecture >::template BoundaryCommScheme< stencil::D3Q27 > |
| using | PDFStreamingCommunicator = FieldTrait< FloatType, Stencil, Architecture >::template RegularCommScheme< Stencil > |
| Regular communicator. | |
| template<class Field > | |
| using | PackInfo = FieldTrait< FloatType, Stencil, Architecture >::template PackInfo< Field > |
Protected Member Functions | |
| void | integrate_vtk_writers () override |
| template<typename T > | |
| void | zero_centered_transform_impl (T &data, auto const factor) const |
| Scale data by a conversion factor (in-place). | |
| void | zero_centered_to_lb_in_place (auto &data) const |
| void | zero_centered_to_md_in_place (auto &data) const |
| auto | zero_centered_to_lb (auto const &data) const |
| auto | zero_centered_to_md (auto const &data) const |
| template<typename Field > | |
| auto | add_to_storage (std::string const tag) |
| Convenience function to add a field with a custom allocator. | |
| void | setup_full_communicator () |
| Set up D3Q27 communicators for full ghost layer updates. | |
| void | setup_streaming_communicator () |
| Set up the communicator used during integration. | |
Class that runs and controls the LB on waLBerla.
Definition at line 86 of file LBWalberlaImpl.hpp.
|
protected |
Definition at line 111 of file LBWalberlaImpl.hpp.
|
protected |
Definition at line 112 of file LBWalberlaImpl.hpp.
| using walberla::LBWalberlaImpl< FloatType, Architecture >::BlockStorage = LatticeWalberla::Lattice_T |
|
protected |
Definition at line 143 of file LBWalberlaImpl.hpp.
|
protected |
Definition at line 95 of file LBWalberlaImpl.hpp.
|
protected |
Definition at line 97 of file LBWalberlaImpl.hpp.
| using walberla::LBWalberlaImpl< FloatType, Architecture >::FlagField = BoundaryModel::FlagField |
Definition at line 117 of file LBWalberlaImpl.hpp.
|
protected |
Definition at line 94 of file LBWalberlaImpl.hpp.
|
protected |
Definition at line 154 of file LBWalberlaImpl.hpp.
| using walberla::LBWalberlaImpl< FloatType, Architecture >::PdfField = FieldTrait<FloatType, Stencil, Architecture>::PdfField |
Definition at line 115 of file LBWalberlaImpl.hpp.
|
protected |
Regular communicator.
We use the same directions as the stencil during integration.
Definition at line 150 of file LBWalberlaImpl.hpp.
|
protected |
Full communicator.
We use the D3Q27 directions to update cells along the diagonals during a full ghost communication. This is needed to properly update the corners of the ghost layer when setting cell velocities or populations.
Definition at line 140 of file LBWalberlaImpl.hpp.
| using walberla::LBWalberlaImpl< FloatType, Architecture >::Stencil = stencil::D3Q19 |
Stencil for collision and streaming operations.
Definition at line 103 of file LBWalberlaImpl.hpp.
| using walberla::LBWalberlaImpl< FloatType, Architecture >::StencilFull = stencil::D3Q27 |
Stencil for ghost communication (includes domain corners).
Definition at line 105 of file LBWalberlaImpl.hpp.
| using walberla::LBWalberlaImpl< FloatType, Architecture >::VectorField = FieldTrait<FloatType, Stencil, Architecture>::VectorField |
Definition at line 116 of file LBWalberlaImpl.hpp.
|
inline |
Definition at line 236 of file LBWalberlaImpl.hpp.
References block(), walberla::LBWalberlaImpl< FloatType, Architecture >::m_flag_field_id, walberla::LBWalberlaImpl< FloatType, Architecture >::m_force_to_be_applied_id, walberla::LBWalberlaImpl< FloatType, Architecture >::m_last_applied_force_field_id, walberla::LBWalberlaImpl< FloatType, Architecture >::m_lattice, walberla::LBWalberlaImpl< FloatType, Architecture >::m_pdf_field_id, walberla::LBWalberlaImpl< FloatType, Architecture >::m_pdf_tmp_field_id, walberla::LBWalberlaImpl< FloatType, Architecture >::m_pending_ghost_comm, walberla::LBWalberlaImpl< FloatType, Architecture >::m_reset_force, walberla::LBWalberlaImpl< FloatType, Architecture >::m_update_velocities_from_pdf, walberla::LBWalberlaImpl< FloatType, Architecture >::m_vel_tmp_field_id, walberla::LBWalberlaImpl< FloatType, Architecture >::m_velocity_field_id, walberla::LBWalberlaImpl< FloatType, Architecture >::reset_boundary_handling(), walberla::LBWalberlaImpl< FloatType, Architecture >::setup_full_communicator(), walberla::LBWalberlaImpl< FloatType, Architecture >::setup_streaming_communicator(), and stream.
|
overridedefault |
|
overridevirtual |
Implements LBWalberlaBase.
Definition at line 345 of file LBInterpolation.impl.hpp.
|
overridevirtual |
Distribute forces to the lattice at given positions.
Uses B-spline interpolation to spread each force over the surrounding lattice nodes. On GPU, positions are transformed to block-local coordinates and the operation is performed in a single kernel launch.
Implements LBWalberlaBase.
Definition at line 85 of file LBInterpolation.impl.hpp.
References walberla::lbm::accessor::Interpolation::add_force(), block(), lbmpy::CPU, lbmpy::GPU, and stream.
|
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 854 of file LBWalberlaImpl.hpp.
References block(), lbmpy::GPU, walberla::lbm::accessor::Population::initialize(), walberla::lbm::accessor::Vector::initialize(), walberla::LBWalberlaImpl< FloatType, Architecture >::m_lattice, and stream.
|
inline |
Definition at line 529 of file LBWalberlaImpl.hpp.
References LatticeWalberla::get_blocks(), walberla::LBWalberlaImpl< FloatType, Architecture >::get_lattice(), and stream.
Referenced by walberla::LBWalberlaImpl< FloatType, Architecture >::ghost_communication_full().
|
overridevirtual |
Verify that MD and LB Lees-Edwards parameters are consistent.
Implements LBWalberlaBase.
Definition at line 142 of file LBCollisionSetup.impl.hpp.
References stream.
|
overridevirtual |
Implements LBWalberlaBase.
Definition at line 200 of file LBBoundaryAccess.impl.hpp.
|
inline |
Definition at line 219 of file LBWalberlaImpl.hpp.
References stream.
Referenced by walberla::LBWalberlaImpl< FloatType, Architecture >::set_viscosity().
|
overridevirtual |
Implements LBWalberlaBase.
Definition at line 297 of file LBBoundaryAccess.impl.hpp.
References block(), stream, and walberla::to_vector3d().
|
overridevirtual |
Total force exerted by the fluid on a subset of boundary nodes.
Only boundary nodes where raster_flat is non-zero are included. The force is accumulated from the UBB index/force vectors by matching each boundary node's stencil neighbors against the index field.
Implements LBWalberlaBase.
Definition at line 264 of file LBBoundaryAccess.impl.hpp.
|
overridevirtual |
Implements LBWalberlaBase.
Definition at line 276 of file LBInterpolation.impl.hpp.
References block(), lbmpy::CPU, walberla::lbm::accessor::Interpolation::get_rho(), lbmpy::GPU, and stream.
|
inlineoverridevirtualnoexcept |
Implements LBWalberlaBase.
Definition at line 718 of file LBWalberlaImpl.hpp.
References walberla::LBWalberlaImpl< FloatType, Architecture >::m_density.
|
overridevirtual |
Implements LBWalberlaBase.
Definition at line 333 of file LBInterpolation.impl.hpp.
References stream.
|
inlineoverridevirtualnoexcept |
Implements LBWalberlaBase.
Definition at line 706 of file LBWalberlaImpl.hpp.
References walberla::LBWalberlaImpl< FloatType, Architecture >::m_reset_force, and walberla::LBWalberlaImpl< FloatType, Architecture >::zero_centered_to_md().
|
inlineoverridevirtualnoexcept |
Implements LBWalberlaBase.
Definition at line 760 of file LBWalberlaImpl.hpp.
References walberla::LBWalberlaImpl< FloatType, Architecture >::m_force_to_be_applied_id.
|
inlineoverridevirtualnoexcept |
Implements LBWalberlaBase.
Definition at line 722 of file LBWalberlaImpl.hpp.
References walberla::LBWalberlaImpl< FloatType, Architecture >::m_kT.
|
inlineoverridevirtualnoexcept |
Implements LatticeModel.
Definition at line 752 of file LBWalberlaImpl.hpp.
References walberla::LBWalberlaImpl< FloatType, Architecture >::m_lattice.
Referenced by walberla::LBWalberlaImpl< FloatType, Architecture >::apply_lees_edwards_interpolation(), walberla::LBWalberlaImpl< FloatType, Architecture >::get_momentum(), walberla::LBWalberlaImpl< FloatType, Architecture >::get_pressure_tensor(), walberla::LBWalberlaImpl< FloatType, Architecture >::ghost_communication_laf(), walberla::LBWalberlaImpl< FloatType, Architecture >::ghost_communication_pdf(), and walberla::LBWalberlaImpl< FloatType, Architecture >::ghost_communication_vel().
|
inlineoverridevirtual |
Implements LBWalberlaBase.
Definition at line 689 of file LBWalberlaImpl.hpp.
References block(), LatticeWalberla::get_blocks(), walberla::LBWalberlaImpl< FloatType, Architecture >::get_lattice(), walberla::LBWalberlaImpl< FloatType, Architecture >::m_density, walberla::LBWalberlaImpl< FloatType, Architecture >::m_last_applied_force_field_id, walberla::LBWalberlaImpl< FloatType, Architecture >::m_pdf_field_id, walberla::lbm::accessor::MomentumDensity::reduce(), stream, and walberla::to_vector3d().
|
overridevirtual |
Implements LBWalberlaBase.
Definition at line 123 of file LBBoundaryAccess.impl.hpp.
References walberla::get_block_and_cell(), and stream.
|
overridevirtual |
Implements LBWalberlaBase.
Definition at line 82 of file LBNodeAccess.impl.hpp.
References density, walberla::lbm::accessor::Density::get(), walberla::get_block_and_cell(), and stream.
|
overridevirtual |
Implements LBWalberlaBase.
Definition at line 156 of file LBNodeAccess.impl.hpp.
References walberla::lbm::accessor::Vector::get(), walberla::get_block_and_cell(), stream, and walberla::to_vector3d().
|
overridevirtual |
Implements LBWalberlaBase.
Definition at line 147 of file LBBoundaryAccess.impl.hpp.
References walberla::get_block_and_cell(), and stream.
|
overridevirtual |
Implements LBWalberlaBase.
Definition at line 170 of file LBNodeAccess.impl.hpp.
References walberla::lbm::accessor::Vector::get(), walberla::get_block_and_cell(), stream, and walberla::to_vector3d().
|
overridevirtual |
Implements LBWalberlaBase.
Definition at line 113 of file LBNodeAccess.impl.hpp.
References walberla::lbm::accessor::Population::get(), walberla::get_block_and_cell(), and stream.
|
overridevirtual |
Implements LBWalberlaBase.
Definition at line 206 of file LBNodeAccess.impl.hpp.
References walberla::lbm::accessor::PressureTensor::get(), walberla::get_block_and_cell(), stream, and walberla::to_vector9d().
|
overridevirtual |
Implements LBWalberlaBase.
Definition at line 39 of file LBNodeAccess.impl.hpp.
References walberla::lbm::accessor::Vector::get(), walberla::get_block_and_cell(), stream, and walberla::to_vector3d().
|
overridevirtual |
Implements LBWalberlaBase.
Definition at line 37 of file LBBoundaryAccess.impl.hpp.
References walberla::get_block_and_cell(), stream, and walberla::to_vector3d().
|
inlineoverridevirtual |
Implements LBWalberlaBase.
Definition at line 676 of file LBWalberlaImpl.hpp.
References block(), LatticeWalberla::get_blocks(), LatticeWalberla::get_grid_dimensions(), walberla::LBWalberlaImpl< FloatType, Architecture >::get_lattice(), walberla::LBWalberlaImpl< FloatType, Architecture >::m_density, walberla::LBWalberlaImpl< FloatType, Architecture >::m_pdf_field_id, walberla::LBWalberlaImpl< FloatType, Architecture >::pressure_tensor_correction(), Utils::product(), walberla::lbm::accessor::PressureTensor::reduce(), stream, and walberla::to_vector9d().
|
inlineoverridevirtual |
Implements LBWalberlaBase.
Definition at line 730 of file LBWalberlaImpl.hpp.
References walberla::LBWalberlaImpl< FloatType, Architecture >::m_collision_model, walberla::LBWalberlaImpl< FloatType, Architecture >::m_kT, and stream.
|
inlineoverridevirtualnoexcept |
Implements LBWalberlaBase.
Definition at line 726 of file LBWalberlaImpl.hpp.
References walberla::LBWalberlaImpl< FloatType, Architecture >::m_seed.
|
overridevirtual |
Implements LBWalberlaBase.
Definition at line 228 of file LBSliceAccess.impl.hpp.
References block(), walberla::copy_block_buffer(), walberla::for_each_block_in_slice(), walberla::lbm::accessor::Density::get(), and stream.
|
overridevirtual |
Implements LBWalberlaBase.
Definition at line 159 of file LBBoundaryAccess.impl.hpp.
References walberla::copy_block_buffer(), walberla::for_each_block_in_slice(), and stream.
|
overridevirtual |
Implements LBWalberlaBase.
Definition at line 106 of file LBSliceAccess.impl.hpp.
References block(), walberla::copy_block_buffer(), walberla::for_each_block_in_slice(), walberla::lbm::accessor::Vector::get(), and stream.
|
overridevirtual |
Implements LBWalberlaBase.
Definition at line 169 of file LBSliceAccess.impl.hpp.
References block(), walberla::copy_block_buffer(), walberla::for_each_block_in_slice(), walberla::lbm::accessor::Population::get(), and stream.
|
overridevirtual |
Implements LBWalberlaBase.
Definition at line 279 of file LBSliceAccess.impl.hpp.
References block(), walberla::copy_block_buffer(), walberla::for_each_block_in_slice(), walberla::lbm::accessor::PressureTensor::get(), and stream.
|
overridevirtual |
Implements LBWalberlaBase.
Definition at line 36 of file LBSliceAccess.impl.hpp.
References block(), walberla::copy_block_buffer(), walberla::for_each_block_in_slice(), walberla::lbm::accessor::Vector::get(), and stream.
|
overridevirtual |
Implements LBWalberlaBase.
Definition at line 65 of file LBBoundaryAccess.impl.hpp.
References walberla::copy_block_buffer(), walberla::for_each_block_in_slice(), stream, and walberla::to_vector3d().
|
overridevirtual |
Interpolate velocities at given positions (batch version).
On GPU, boundary slip velocities are written into the velocity field before interpolation, since the field has indeterminate values inside boundary regions.
Implements LBWalberlaBase.
Definition at line 229 of file LBInterpolation.impl.hpp.
References block(), lbmpy::CPU, walberla::lbm::accessor::Interpolation::get_vel(), lbmpy::GPU, walberla::lbm::accessor::Vector::set_from_list(), and stream.
|
overridevirtual |
Implements LBWalberlaBase.
Definition at line 319 of file LBInterpolation.impl.hpp.
References stream.
|
inlineoverridevirtualnoexcept |
Implements LBWalberlaBase.
Definition at line 756 of file LBWalberlaImpl.hpp.
References walberla::LBWalberlaImpl< FloatType, Architecture >::m_velocity_field_id.
|
inlineoverridevirtualnoexcept |
Implements LBWalberlaBase.
Definition at line 714 of file LBWalberlaImpl.hpp.
References walberla::LBWalberlaImpl< FloatType, Architecture >::m_viscosity.
|
inlineoverridevirtual |
Perform all pending ghost layer updates.
Uses a lazy scheme: ghost communications are only executed when they have been marked as pending by a preceding write operation.
Implements LBWalberlaBase.
Definition at line 436 of file LBWalberlaImpl.hpp.
References walberla::LBWalberlaImpl< FloatType, Architecture >::ghost_communication_boundary(), walberla::LBWalberlaImpl< FloatType, Architecture >::ghost_communication_laf(), walberla::LBWalberlaImpl< FloatType, Architecture >::ghost_communication_pdf(), walberla::LBWalberlaImpl< FloatType, Architecture >::ghost_communication_vel(), ResourceObserver::is_valid(), walberla::LBWalberlaImpl< FloatType, Architecture >::m_mpi_cart_comm_observer, walberla::LBWalberlaImpl< FloatType, Architecture >::m_pending_ghost_comm, and stream.
|
inline |
Definition at line 482 of file LBWalberlaImpl.hpp.
References ResourceObserver::is_valid(), walberla::LBWalberlaImpl< FloatType, Architecture >::m_boundary_communicator, walberla::LBWalberlaImpl< FloatType, Architecture >::m_mpi_cart_comm_observer, walberla::LBWalberlaImpl< FloatType, Architecture >::m_pending_ghost_comm, stream, and walberla::LBWalberlaImpl< FloatType, Architecture >::GhostComm::UBB.
Referenced by walberla::LBWalberlaImpl< FloatType, Architecture >::ghost_communication().
|
inline |
Communicate all fields at once using the D3Q27 stencil.
Definition at line 491 of file LBWalberlaImpl.hpp.
References walberla::LBWalberlaImpl< FloatType, Architecture >::apply_lees_edwards_interpolation(), ResourceObserver::is_valid(), walberla::LBWalberlaImpl< FloatType, Architecture >::GhostComm::LAF, walberla::LBWalberlaImpl< FloatType, Architecture >::m_full_communicator, walberla::LBWalberlaImpl< FloatType, Architecture >::m_mpi_cart_comm_observer, walberla::LBWalberlaImpl< FloatType, Architecture >::m_pending_ghost_comm, walberla::LBWalberlaImpl< FloatType, Architecture >::GhostComm::PDF, stream, and walberla::LBWalberlaImpl< FloatType, Architecture >::GhostComm::VEL.
|
inlineoverridevirtual |
Implements LBWalberlaBase.
Definition at line 470 of file LBWalberlaImpl.hpp.
References LatticeWalberla::get_blocks(), walberla::LBWalberlaImpl< FloatType, Architecture >::get_lattice(), ResourceObserver::is_valid(), walberla::LBWalberlaImpl< FloatType, Architecture >::GhostComm::LAF, walberla::LBWalberlaImpl< FloatType, Architecture >::m_laf_communicator, walberla::LBWalberlaImpl< FloatType, Architecture >::m_mpi_cart_comm_observer, walberla::LBWalberlaImpl< FloatType, Architecture >::m_pending_ghost_comm, and stream.
Referenced by walberla::LBWalberlaImpl< FloatType, Architecture >::ghost_communication().
|
inlineoverridevirtual |
Implements LBWalberlaBase.
Definition at line 446 of file LBWalberlaImpl.hpp.
References LatticeWalberla::get_blocks(), walberla::LBWalberlaImpl< FloatType, Architecture >::get_lattice(), ResourceObserver::is_valid(), walberla::LBWalberlaImpl< FloatType, Architecture >::m_mpi_cart_comm_observer, walberla::LBWalberlaImpl< FloatType, Architecture >::m_pdf_communicator, walberla::LBWalberlaImpl< FloatType, Architecture >::m_pending_ghost_comm, walberla::LBWalberlaImpl< FloatType, Architecture >::GhostComm::PDF, and stream.
Referenced by walberla::LBWalberlaImpl< FloatType, Architecture >::ghost_communication().
|
inlineoverridevirtual |
Implements LBWalberlaBase.
Definition at line 458 of file LBWalberlaImpl.hpp.
References LatticeWalberla::get_blocks(), walberla::LBWalberlaImpl< FloatType, Architecture >::get_lattice(), ResourceObserver::is_valid(), walberla::LBWalberlaImpl< FloatType, Architecture >::m_mpi_cart_comm_observer, walberla::LBWalberlaImpl< FloatType, Architecture >::m_pending_ghost_comm, walberla::LBWalberlaImpl< FloatType, Architecture >::m_vel_communicator, stream, and walberla::LBWalberlaImpl< FloatType, Architecture >::GhostComm::VEL.
Referenced by walberla::LBWalberlaImpl< FloatType, Architecture >::ghost_communication().
|
inlineoverridevirtual |
Implements LBWalberlaBase.
Definition at line 290 of file LBWalberlaImpl.hpp.
References walberla::LBWalberlaImpl< FloatType, Architecture >::integrate_vtk_writers().
|
inlineoverrideprotectedvirtual |
Implements LatticeModel.
Definition at line 296 of file LBWalberlaImpl.hpp.
References LatticeModel::m_vtk_auto, and stream.
Referenced by walberla::LBWalberlaImpl< FloatType, Architecture >::integrate().
|
inlineoverridevirtualnoexcept |
Implements LBWalberlaBase.
Definition at line 227 of file LBWalberlaImpl.hpp.
|
inlineoverridevirtualnoexcept |
Implements LBWalberlaBase.
Definition at line 231 of file LBWalberlaImpl.hpp.
References lbmpy::GPU, and stream.
|
overridevirtual |
Implements LBWalberlaBase.
Definition at line 69 of file LBInterpolation.impl.hpp.
References stream.
| void walberla::LBWalberlaImpl< FloatType, Architecture >::on_boundary_add | ( | ) |
Lazily enable boundary mode on first boundary addition.
Switches the streaming communicator to the generic pack info, which correctly handles boundary-adjacent cells.
Definition at line 191 of file LBBoundaryAccess.impl.hpp.
References stream.
|
inline |
Definition at line 773 of file LBWalberlaImpl.hpp.
References walberla::LBWalberlaImpl< FloatType, Architecture >::pressure_tensor_correction_factor(), and stream.
Referenced by walberla::LBWalberlaImpl< FloatType, Architecture >::get_pressure_tensor().
|
inline |
Definition at line 780 of file LBWalberlaImpl.hpp.
References walberla::LBWalberlaImpl< FloatType, Architecture >::pressure_tensor_correction_factor(), and stream.
|
inline |
Correction factor for off-diagonal pressure tensor elements.
Compensates for the viscosity-dependent error in the non-equilibrium stress: factor = nu / (nu + 1/6).
Definition at line 769 of file LBWalberlaImpl.hpp.
References walberla::LBWalberlaImpl< FloatType, Architecture >::m_viscosity.
Referenced by walberla::LBWalberlaImpl< FloatType, Architecture >::pressure_tensor_correction(), and walberla::LBWalberlaImpl< FloatType, Architecture >::pressure_tensor_correction().
|
overridevirtual |
Implements LBWalberlaBase.
Definition at line 181 of file LBBoundaryAccess.impl.hpp.
|
inlineoverridevirtual |
Implements LatticeModel.
Definition at line 830 of file LBWalberlaImpl.hpp.
References walberla::LBWalberlaImpl< FloatType, Architecture >::Boundary_flag, walberla::LBWalberlaImpl< FloatType, Architecture >::m_flag_field_id, and stream.
|
overridevirtual |
Implements LatticeModel.
Definition at line 159 of file LBVTK.impl.hpp.
References block(), boundary, density, walberla::lbm::accessor::Density::get(), walberla::lbm::accessor::PressureTensor::get(), walberla::lbm::accessor::Vector::get(), pressure_tensor, stream, and velocity_vector.
|
overridevirtual |
Implements LBWalberlaBase.
Definition at line 133 of file LBBoundaryAccess.impl.hpp.
References walberla::get_block_and_cell(), and stream.
|
inline |
Definition at line 630 of file LBWalberlaImpl.hpp.
References walberla::LBWalberlaImpl< FloatType, Architecture >::m_boundary, walberla::LBWalberlaImpl< FloatType, Architecture >::m_flag_field_id, walberla::LBWalberlaImpl< FloatType, Architecture >::m_lattice, walberla::LBWalberlaImpl< FloatType, Architecture >::m_pdf_field_id, stream, and walberla::to_cell().
Referenced by walberla::LBWalberlaImpl< FloatType, Architecture >::LBWalberlaImpl().
|
overridevirtual |
Set up the thermalized collision model.
Configures MRT relaxation rates from the viscosity and initializes the random number generator for fluctuating LB. When kT is zero, fluctuations are suppressed but the thermalized kernel is still used (required for RNG state tracking).
Implements LBWalberlaBase.
Definition at line 56 of file LBCollisionSetup.impl.hpp.
References stream.
|
overridevirtual |
Set up the Lees-Edwards collision model.
Configures a modified collision step that applies the shear velocity at the Lees-Edwards boundary planes, and sets up the interpolation sweeps for PDFs, velocities, and forces at those boundaries. Currently restricted to shear_plane_normal="y" and no domain decomposition along the shear direction.
Implements LBWalberlaBase.
Definition at line 80 of file LBCollisionSetup.impl.hpp.
References lbmpy::GPU, and stream.
|
inlineoverridevirtual |
Implements LBWalberlaBase.
Definition at line 702 of file LBWalberlaImpl.hpp.
References walberla::LBWalberlaImpl< FloatType, Architecture >::m_reset_force, and walberla::LBWalberlaImpl< FloatType, Architecture >::zero_centered_to_lb().
|
overridevirtual |
Implements LBWalberlaBase.
Definition at line 97 of file LBNodeAccess.impl.hpp.
References density, walberla::get_block_and_cell(), walberla::lbm::accessor::Density::set(), and stream.
|
overridevirtual |
Implements LBWalberlaBase.
Definition at line 184 of file LBNodeAccess.impl.hpp.
References walberla::get_block_and_cell(), walberla::lbm::accessor::Force::set(), and stream.
|
overridevirtual |
Implements LBWalberlaBase.
Definition at line 131 of file LBNodeAccess.impl.hpp.
References walberla::get_block_and_cell(), walberla::lbm::accessor::Population::set(), and stream.
|
overridevirtual |
Implements LBWalberlaBase.
Definition at line 60 of file LBNodeAccess.impl.hpp.
References walberla::get_block_and_cell(), walberla::lbm::accessor::Velocity::set(), and stream.
|
overridevirtual |
Implements LBWalberlaBase.
Definition at line 48 of file LBBoundaryAccess.impl.hpp.
References walberla::get_block_and_cell(), stream, and velocity().
|
inlineoverridevirtual |
Implements LBWalberlaBase.
Definition at line 740 of file LBWalberlaImpl.hpp.
References walberla::LBWalberlaImpl< FloatType, Architecture >::m_collision_model, walberla::LBWalberlaImpl< FloatType, Architecture >::m_kT, and stream.
|
overridevirtual |
Implements LBWalberlaBase.
Definition at line 254 of file LBSliceAccess.impl.hpp.
References block(), walberla::copy_block_buffer(), density, walberla::for_each_block_in_slice(), walberla::lbm::accessor::Density::set(), and stream.
|
overridevirtual |
Implements LBWalberlaBase.
Definition at line 135 of file LBSliceAccess.impl.hpp.
References block(), walberla::copy_block_buffer(), walberla::for_each_block_in_slice(), walberla::lbm::accessor::Force::set(), and stream.
|
overridevirtual |
Implements LBWalberlaBase.
Definition at line 197 of file LBSliceAccess.impl.hpp.
References block(), walberla::copy_block_buffer(), walberla::for_each_block_in_slice(), walberla::lbm::accessor::Population::set(), and stream.
|
overridevirtual |
Implements LBWalberlaBase.
Definition at line 72 of file LBSliceAccess.impl.hpp.
References block(), walberla::copy_block_buffer(), walberla::for_each_block_in_slice(), walberla::lbm::accessor::Velocity::set(), Utils::Vector< T, N >::size(), stream, and velocity().
|
overridevirtual |
Implements LBWalberlaBase.
Definition at line 92 of file LBBoundaryAccess.impl.hpp.
References block(), walberla::copy_block_buffer(), walberla::for_each_block_in_slice(), walberla::get_block_and_cell(), Utils::Vector< T, N >::size(), stream, and velocity().
|
inlineoverridevirtual |
Implements LBWalberlaBase.
Definition at line 710 of file LBWalberlaImpl.hpp.
References walberla::LBWalberlaImpl< FloatType, Architecture >::FloatType_c(), and walberla::LBWalberlaImpl< FloatType, Architecture >::m_viscosity.
|
inlineprotected |
Set up D3Q27 communicators for full ghost layer updates.
Creates per-field communicators (PDF, velocity, last-applied force) as well as a combined communicator and the boundary communicator.
Definition at line 898 of file LBWalberlaImpl.hpp.
References walberla::LBWalberlaImpl< FloatType, Architecture >::m_boundary, walberla::LBWalberlaImpl< FloatType, Architecture >::m_boundary_communicator, walberla::LBWalberlaImpl< FloatType, Architecture >::m_flag_field_id, walberla::LBWalberlaImpl< FloatType, Architecture >::m_full_communicator, walberla::LBWalberlaImpl< FloatType, Architecture >::m_laf_communicator, walberla::LBWalberlaImpl< FloatType, Architecture >::m_last_applied_force_field_id, walberla::LBWalberlaImpl< FloatType, Architecture >::m_lattice, walberla::LBWalberlaImpl< FloatType, Architecture >::m_pdf_communicator, walberla::LBWalberlaImpl< FloatType, Architecture >::m_pdf_field_id, walberla::LBWalberlaImpl< FloatType, Architecture >::m_vel_communicator, walberla::LBWalberlaImpl< FloatType, Architecture >::m_velocity_field_id, walberla::field::communication::BoundaryPackInfo< GhostLayerField_T, Boundary_T >::setup_boundary_handle(), and stream.
Referenced by walberla::LBWalberlaImpl< FloatType, Architecture >::LBWalberlaImpl().
|
inlineprotected |
Set up the communicator used during integration.
Uses optimized streaming pack info when neither boundaries nor Lees-Edwards boundary conditions are active; falls back to the generic pack info otherwise.
Definition at line 937 of file LBWalberlaImpl.hpp.
References walberla::LBWalberlaImpl< FloatType, Architecture >::m_collision_model, walberla::LBWalberlaImpl< FloatType, Architecture >::m_has_boundaries, walberla::LBWalberlaImpl< FloatType, Architecture >::m_last_applied_force_field_id, walberla::LBWalberlaImpl< FloatType, Architecture >::m_lattice, walberla::LBWalberlaImpl< FloatType, Architecture >::m_pdf_field_id, walberla::LBWalberlaImpl< FloatType, Architecture >::m_pdf_streaming_communicator, and stream.
Referenced by walberla::LBWalberlaImpl< FloatType, Architecture >::LBWalberlaImpl().
|
inlineoverridevirtualnoexcept |
Implements LBWalberlaBase.
Definition at line 223 of file LBWalberlaImpl.hpp.
|
overridevirtual |
Set boundary conditions from a rasterized shape.
| raster_flat | Flattened 3D mask (non-zero = boundary node). |
| data_flat | Flattened 3D array of slip velocities (3 components per node, same ordering as raster_flat). |
Implements LBWalberlaBase.
Definition at line 215 of file LBBoundaryAccess.impl.hpp.
References walberla::fill_3D_vector_array(), walberla::set_boundary_from_grid(), and stream.
|
inlineprotected |
Definition at line 815 of file LBWalberlaImpl.hpp.
References stream, and walberla::LBWalberlaImpl< FloatType, Architecture >::zero_centered_to_lb_in_place().
Referenced by walberla::LBWalberlaImpl< FloatType, Architecture >::set_external_force().
|
inlineprotected |
Definition at line 807 of file LBWalberlaImpl.hpp.
References walberla::LBWalberlaImpl< FloatType, Architecture >::m_zc_to_lb, and walberla::LBWalberlaImpl< FloatType, Architecture >::zero_centered_transform_impl().
Referenced by walberla::LBWalberlaImpl< FloatType, Architecture >::zero_centered_to_lb().
|
inlineprotected |
Definition at line 821 of file LBWalberlaImpl.hpp.
References stream, and walberla::LBWalberlaImpl< FloatType, Architecture >::zero_centered_to_md_in_place().
Referenced by walberla::LBWalberlaImpl< FloatType, Architecture >::get_external_force().
|
inlineprotected |
Definition at line 811 of file LBWalberlaImpl.hpp.
References walberla::LBWalberlaImpl< FloatType, Architecture >::m_zc_to_md, and walberla::LBWalberlaImpl< FloatType, Architecture >::zero_centered_transform_impl().
Referenced by walberla::LBWalberlaImpl< FloatType, Architecture >::zero_centered_to_md().
|
inlineprotected |
Scale data by a conversion factor (in-place).
Used for zero-centered density representation: LB internally stores density fluctuations around zero, while the user interface uses absolute densities. The conversion factors m_zc_to_md and m_zc_to_lb translate between these representations.
Definition at line 796 of file LBWalberlaImpl.hpp.
References stream.
Referenced by walberla::LBWalberlaImpl< FloatType, Architecture >::zero_centered_to_lb_in_place(), and walberla::LBWalberlaImpl< FloatType, Architecture >::zero_centered_to_md_in_place().
|
protected |
Flag for boundary cells.
Definition at line 183 of file LBWalberlaImpl.hpp.
Referenced by walberla::LBWalberlaImpl< FloatType, Architecture >::register_vtk_field_filters().
|
protected |
Definition at line 187 of file LBWalberlaImpl.hpp.
Referenced by walberla::LBWalberlaImpl< FloatType, Architecture >::reset_boundary_handling(), and walberla::LBWalberlaImpl< FloatType, Architecture >::setup_full_communicator().
|
protected |
Definition at line 190 of file LBWalberlaImpl.hpp.
Referenced by walberla::LBWalberlaImpl< FloatType, Architecture >::ghost_communication_boundary(), and walberla::LBWalberlaImpl< FloatType, Architecture >::setup_full_communicator().
|
protected |
|
protected |
kinematic viscosity
Definition at line 162 of file LBWalberlaImpl.hpp.
Referenced by walberla::LBWalberlaImpl< FloatType, Architecture >::get_density(), walberla::LBWalberlaImpl< FloatType, Architecture >::get_momentum(), and walberla::LBWalberlaImpl< FloatType, Architecture >::get_pressure_tensor().
|
protected |
Definition at line 174 of file LBWalberlaImpl.hpp.
Referenced by walberla::LBWalberlaImpl< FloatType, Architecture >::LBWalberlaImpl(), walberla::LBWalberlaImpl< FloatType, Architecture >::register_vtk_field_filters(), walberla::LBWalberlaImpl< FloatType, Architecture >::reset_boundary_handling(), and walberla::LBWalberlaImpl< FloatType, Architecture >::setup_full_communicator().
|
protected |
Definition at line 177 of file LBWalberlaImpl.hpp.
Referenced by walberla::LBWalberlaImpl< FloatType, Architecture >::get_force_field_id(), and walberla::LBWalberlaImpl< FloatType, Architecture >::LBWalberlaImpl().
|
protected |
Definition at line 191 of file LBWalberlaImpl.hpp.
Referenced by walberla::LBWalberlaImpl< FloatType, Architecture >::ghost_communication_full(), and walberla::LBWalberlaImpl< FloatType, Architecture >::setup_full_communicator().
|
protected |
Definition at line 184 of file LBWalberlaImpl.hpp.
Referenced by walberla::LBWalberlaImpl< FloatType, Architecture >::setup_streaming_communicator().
|
protected |
|
protected |
Definition at line 194 of file LBWalberlaImpl.hpp.
Referenced by walberla::LBWalberlaImpl< FloatType, Architecture >::ghost_communication_laf(), and walberla::LBWalberlaImpl< FloatType, Architecture >::setup_full_communicator().
|
protected |
Definition at line 176 of file LBWalberlaImpl.hpp.
Referenced by walberla::LBWalberlaImpl< FloatType, Architecture >::get_momentum(), walberla::LBWalberlaImpl< FloatType, Architecture >::LBWalberlaImpl(), walberla::LBWalberlaImpl< FloatType, Architecture >::setup_full_communicator(), and walberla::LBWalberlaImpl< FloatType, Architecture >::setup_streaming_communicator().
|
protected |
Definition at line 169 of file LBWalberlaImpl.hpp.
Referenced by walberla::LBWalberlaImpl< FloatType, Architecture >::add_to_storage(), walberla::LBWalberlaImpl< FloatType, Architecture >::get_lattice(), walberla::LBWalberlaImpl< FloatType, Architecture >::LBWalberlaImpl(), walberla::LBWalberlaImpl< FloatType, Architecture >::reset_boundary_handling(), walberla::LBWalberlaImpl< FloatType, Architecture >::setup_full_communicator(), and walberla::LBWalberlaImpl< FloatType, Architecture >::setup_streaming_communicator().
|
protected |
Definition at line 210 of file LBWalberlaImpl.hpp.
|
protected |
Definition at line 216 of file LBWalberlaImpl.hpp.
|
protected |
Definition at line 212 of file LBWalberlaImpl.hpp.
|
protected |
Definition at line 214 of file LBWalberlaImpl.hpp.
|
protected |
Definition at line 197 of file LBWalberlaImpl.hpp.
Referenced by walberla::LBWalberlaImpl< FloatType, Architecture >::ghost_communication(), walberla::LBWalberlaImpl< FloatType, Architecture >::ghost_communication_boundary(), walberla::LBWalberlaImpl< FloatType, Architecture >::ghost_communication_full(), walberla::LBWalberlaImpl< FloatType, Architecture >::ghost_communication_laf(), walberla::LBWalberlaImpl< FloatType, Architecture >::ghost_communication_pdf(), and walberla::LBWalberlaImpl< FloatType, Architecture >::ghost_communication_vel().
|
protected |
Definition at line 192 of file LBWalberlaImpl.hpp.
Referenced by walberla::LBWalberlaImpl< FloatType, Architecture >::ghost_communication_pdf(), and walberla::LBWalberlaImpl< FloatType, Architecture >::setup_full_communicator().
|
protected |
Definition at line 172 of file LBWalberlaImpl.hpp.
Referenced by walberla::LBWalberlaImpl< FloatType, Architecture >::get_momentum(), walberla::LBWalberlaImpl< FloatType, Architecture >::get_pressure_tensor(), walberla::LBWalberlaImpl< FloatType, Architecture >::LBWalberlaImpl(), walberla::LBWalberlaImpl< FloatType, Architecture >::reset_boundary_handling(), walberla::LBWalberlaImpl< FloatType, Architecture >::setup_full_communicator(), and walberla::LBWalberlaImpl< FloatType, Architecture >::setup_streaming_communicator().
|
protected |
Definition at line 195 of file LBWalberlaImpl.hpp.
Referenced by walberla::LBWalberlaImpl< FloatType, Architecture >::setup_streaming_communicator().
|
protected |
Definition at line 173 of file LBWalberlaImpl.hpp.
Referenced by walberla::LBWalberlaImpl< FloatType, Architecture >::LBWalberlaImpl().
|
protected |
Definition at line 196 of file LBWalberlaImpl.hpp.
Referenced by walberla::LBWalberlaImpl< FloatType, Architecture >::ghost_communication(), walberla::LBWalberlaImpl< FloatType, Architecture >::ghost_communication_boundary(), walberla::LBWalberlaImpl< FloatType, Architecture >::ghost_communication_full(), walberla::LBWalberlaImpl< FloatType, Architecture >::ghost_communication_laf(), walberla::LBWalberlaImpl< FloatType, Architecture >::ghost_communication_pdf(), walberla::LBWalberlaImpl< FloatType, Architecture >::ghost_communication_vel(), and walberla::LBWalberlaImpl< FloatType, Architecture >::LBWalberlaImpl().
|
protected |
|
protected |
Definition at line 164 of file LBWalberlaImpl.hpp.
Referenced by walberla::LBWalberlaImpl< FloatType, Architecture >::get_seed().
|
protected |
Definition at line 207 of file LBWalberlaImpl.hpp.
Referenced by walberla::LBWalberlaImpl< FloatType, Architecture >::LBWalberlaImpl().
|
protected |
Definition at line 193 of file LBWalberlaImpl.hpp.
Referenced by walberla::LBWalberlaImpl< FloatType, Architecture >::ghost_communication_vel(), and walberla::LBWalberlaImpl< FloatType, Architecture >::setup_full_communicator().
|
protected |
Definition at line 180 of file LBWalberlaImpl.hpp.
Referenced by walberla::LBWalberlaImpl< FloatType, Architecture >::LBWalberlaImpl().
|
protected |
|
protected |
|
protected |
Definition at line 166 of file LBWalberlaImpl.hpp.
Referenced by walberla::LBWalberlaImpl< FloatType, Architecture >::zero_centered_to_lb_in_place().
|
protected |
Definition at line 165 of file LBWalberlaImpl.hpp.
Referenced by walberla::LBWalberlaImpl< FloatType, Architecture >::zero_centered_to_md_in_place().