![]() |
ESPResSo
Extensible Simulation Package for Research on Soft Matter Systems
|
\file PackInfoPdfDoublePrecision.cpp \author pystencils More...
Namespaces | |
| namespace | blockforest |
| namespace | domain_decomposition |
| namespace | ek |
| namespace | field |
| namespace | lbm |
| namespace | pystencils |
| namespace | vtk |
Classes | |
| struct | BlockAndCell |
| class | BoundaryHandling |
| Boundary class optimized for sparse data. More... | |
| class | DensityVTKWriter |
| class | EKinWalberlaImpl |
| Class that runs and controls the EK on waLBerla. More... | |
| class | EKReactant |
| class | EKReactionBase |
| class | EKReactionBaseIndexed |
| class | EKReactionImplBulk |
| class | EKReactionImplIndexed |
| struct | FieldTrait |
| struct | FieldTrait< FT, PdfStencil, lbmpy::Arch::GPU > |
| class | InterpolateAndShiftAtBoundary |
| Lees-Edwards sweep. More... | |
| class | interpolation_illegal_access |
| Exception for accessing a lattice node outside the local domain and ghost layers during B-spline interpolation. More... | |
| class | LBWalberlaImpl |
| Class that runs and controls the LB on waLBerla. More... | |
| class | PoissonSolver |
| class | PoissonSolverFFT |
| class | PoissonSolverNone |
| class | PressureTensorVTKWriter |
| class | ResetForce |
Sweep that swaps force_to_be_applied and last_applied_force and resets force_to_be_applied to the global external force. More... | |
| class | VelocityVTKWriter |
| class | VTKWriter |
| Base class for LB field VTK writers. More... | |
\file PackInfoPdfDoublePrecision.cpp \author pystencils
\file PackInfoVecSinglePrecisionCUDA.h \author pystencils
\file PackInfoVecSinglePrecision.cpp \author pystencils
\file PackInfoVecDoublePrecisionCUDA.h \author pystencils
\file PackInfoVecDoublePrecision.cpp \author pystencils
\file PackInfoPdfSinglePrecisionCUDA.h \author pystencils
\file PackInfoPdfSinglePrecision.cpp \author pystencils
\file PackInfoPdfDoublePrecisionCUDA.h \author pystencils
|
inline |
Get the block-local coordinates of a block corner.
This method leverages the fact that the grid spacing is unity in LB units, i.e. floating-point coordinates can be cast to integers indices.
Definition at line 141 of file BlockAndCell.hpp.
Referenced by LatticeWalberla::get_local_grid_range(), get_max_corner(), and get_min_corner().
| void walberla::copy_block_buffer | ( | CellInterval const & | bci, |
| CellInterval const & | ci, | ||
| Utils::Vector3i const & | block_offset, | ||
| Utils::Vector3i const & | lower_corner, | ||
| auto && | kernel | ||
| ) |
Synchronize data between a sliced block and a container.
Synchronize data between two data buffers representing sliced matrices with different memory layouts. The kernel takes as argument an index for the flattened data buffer containing the serialized block slice, an index for the flattened I/O buffer, and a block-local node position.
| bci | Cell interval of the local block within a 3D slice |
| ci | Cell interval of the entire lattice within a 3D slice |
| block_offset | Origin of the local block |
| lower_corner | Lower corner of the 3D slice |
| kernel | Function to execute on the two data buffers |
Definition at line 216 of file BlockAndCell.hpp.
References Utils::get_linear_index(), Utils::ROW_MAJOR, stream, and to_vector3i().
Referenced by walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::get_slice_density(), walberla::LBWalberlaImpl< FloatType, Architecture >::get_slice_density(), walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::get_slice_flux_vector(), walberla::LBWalberlaImpl< FloatType, Architecture >::get_slice_is_boundary(), walberla::LBWalberlaImpl< FloatType, Architecture >::get_slice_last_applied_force(), walberla::LBWalberlaImpl< FloatType, Architecture >::get_slice_population(), walberla::PoissonSolverFFT< FloatType, Architecture >::get_slice_potential(), walberla::LBWalberlaImpl< FloatType, Architecture >::get_slice_pressure_tensor(), walberla::LBWalberlaImpl< FloatType, Architecture >::get_slice_velocity(), walberla::LBWalberlaImpl< FloatType, Architecture >::get_slice_velocity_at_boundary(), walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::set_slice_density(), walberla::LBWalberlaImpl< FloatType, Architecture >::set_slice_density(), walberla::LBWalberlaImpl< FloatType, Architecture >::set_slice_last_applied_force(), walberla::LBWalberlaImpl< FloatType, Architecture >::set_slice_population(), walberla::LBWalberlaImpl< FloatType, Architecture >::set_slice_velocity(), and walberla::LBWalberlaImpl< FloatType, Architecture >::set_slice_velocity_at_boundary().
Definition at line 33 of file types_conversion.hpp.
References stream.
|
inline |
Definition at line 39 of file types_conversion.hpp.
References stream.
|
inline |
Definition at line 43 of file types_conversion.hpp.
References stream.
|
inline |
Definition at line 60 of file boundary.hpp.
References Utils::product(), and stream.
Referenced by walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::update_density_boundary_from_shape().
|
inline |
Definition at line 36 of file boundary.hpp.
References Utils::product(), and stream.
Referenced by walberla::LBWalberlaImpl< FloatType, Architecture >::update_boundary_from_shape(), and walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::update_flux_boundary_from_shape().
| void walberla::for_each_block_in_slice | ( | ::LatticeWalberla const & | lattice, |
| Utils::Vector3i const & | lower_corner, | ||
| Utils::Vector3i const & | upper_corner, | ||
| auto && | visitor | ||
| ) |
Iterate over all local blocks that overlap a given 3D slice, invoking a visitor for each such block.
This encapsulates the common boilerplate shared by every get_slice_* / set_slice_* method in LB and EK.
| lattice | The lattice |
| lower_corner | Lower corner of the 3D slice (inclusive) |
| upper_corner | Upper corner of the 3D slice (exclusive) |
| visitor | Callable with signature (IBlock &block, CellInterval const &bci, CellInterval const &ci, Utils::Vector3i const &block_offset) |
Definition at line 256 of file BlockAndCell.hpp.
References block(), LatticeWalberla::get_block_corner(), get_block_interval(), LatticeWalberla::get_blocks(), get_interval(), and stream.
Referenced by walberla::LBWalberlaImpl< FloatType, Architecture >::get_slice_density(), walberla::LBWalberlaImpl< FloatType, Architecture >::get_slice_is_boundary(), walberla::LBWalberlaImpl< FloatType, Architecture >::get_slice_last_applied_force(), walberla::LBWalberlaImpl< FloatType, Architecture >::get_slice_population(), walberla::LBWalberlaImpl< FloatType, Architecture >::get_slice_pressure_tensor(), walberla::LBWalberlaImpl< FloatType, Architecture >::get_slice_velocity(), walberla::LBWalberlaImpl< FloatType, Architecture >::get_slice_velocity_at_boundary(), walberla::LBWalberlaImpl< FloatType, Architecture >::set_slice_density(), walberla::LBWalberlaImpl< FloatType, Architecture >::set_slice_last_applied_force(), walberla::LBWalberlaImpl< FloatType, Architecture >::set_slice_population(), walberla::LBWalberlaImpl< FloatType, Architecture >::set_slice_velocity(), and walberla::LBWalberlaImpl< FloatType, Architecture >::set_slice_velocity_at_boundary().
|
inline |
Definition at line 123 of file BlockAndCell.hpp.
References block(), get_block_extended(), LatticeWalberla::get_blocks(), LatticeWalberla::get_ghost_layers(), and stream.
|
inline |
Definition at line 102 of file BlockAndCell.hpp.
References block(), get_block_extended(), LatticeWalberla::get_blocks(), LatticeWalberla::get_ghost_layers(), stream, and to_cell().
Referenced by get_interval(), walberla::LBWalberlaImpl< FloatType, Architecture >::get_node_boundary_force(), walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::get_node_density(), walberla::LBWalberlaImpl< 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::LBWalberlaImpl< FloatType, Architecture >::get_node_force_to_be_applied(), walberla::EKReactionImplIndexed< Architecture >::get_node_is_boundary(), walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::get_node_is_boundary(), walberla::LBWalberlaImpl< 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::LBWalberlaImpl< FloatType, Architecture >::get_node_last_applied_force(), walberla::LBWalberlaImpl< FloatType, Architecture >::get_node_population(), walberla::PoissonSolverFFT< FloatType, Architecture >::get_node_potential(), walberla::LBWalberlaImpl< FloatType, Architecture >::get_node_pressure_tensor(), walberla::LBWalberlaImpl< FloatType, Architecture >::get_node_velocity(), walberla::LBWalberlaImpl< FloatType, Architecture >::get_node_velocity_at_boundary(), walberla::LBWalberlaImpl< FloatType, Architecture >::remove_node_from_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::LBWalberlaImpl< FloatType, Architecture >::set_node_density(), walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::set_node_density_boundary(), walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::set_node_flux_boundary(), walberla::EKReactionImplIndexed< Architecture >::set_node_is_boundary(), walberla::LBWalberlaImpl< FloatType, Architecture >::set_node_last_applied_force(), walberla::LBWalberlaImpl< FloatType, Architecture >::set_node_population(), walberla::LBWalberlaImpl< FloatType, Architecture >::set_node_velocity(), walberla::LBWalberlaImpl< FloatType, Architecture >::set_node_velocity_at_boundary(), walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::set_slice_density_boundary(), walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::set_slice_flux_boundary(), and walberla::LBWalberlaImpl< FloatType, Architecture >::set_slice_velocity_at_boundary().
| IBlock * walberla::get_block_extended | ( | LatticeWalberla const & | lattice, |
| auto const & | pos, | ||
| unsigned int | n_ghost_layers | ||
| ) |
Definition at line 87 of file BlockAndCell.hpp.
References block(), LatticeWalberla::get_cached_blocks(), and stream.
Referenced by get_block(), and get_block_and_cell().
|
inline |
Definition at line 178 of file BlockAndCell.hpp.
References block(), Utils::Vector< T, N >::broadcast(), LatticeWalberla::get_block_corner(), stream, and to_cell().
Referenced by for_each_block_in_slice(), walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::get_slice_density(), walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::get_slice_flux_vector(), walberla::PoissonSolverFFT< FloatType, Architecture >::get_slice_potential(), and walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::set_slice_density().
|
inline |
Definition at line 158 of file BlockAndCell.hpp.
References Utils::Vector< T, N >::broadcast(), get_block_and_cell(), get_min_corner(), stream, and to_cell().
Referenced by for_each_block_in_slice(), 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::PoissonSolverFFT< FloatType, Architecture >::get_slice_potential(), walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::set_slice_density(), walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::set_slice_density_boundary(), and walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::set_slice_flux_boundary().
Get the block-local coordinates of the upper corner of a block.
Definition at line 153 of file BlockAndCell.hpp.
References block(), and convert_cell_corner_to_coord().
Referenced by LatticeWalberla::get_block_corner().
Get the block-local coordinates of the lower corner of a block.
Definition at line 148 of file BlockAndCell.hpp.
References block(), and convert_cell_corner_to_coord().
Referenced by LatticeWalberla::get_block_corner(), and get_interval().
| ResourceObserver walberla::get_mpi_cart_comm_observer | ( | ) |
Get an observer on waLBerla's MPI Cartesian communicator status.
Definition at line 82 of file walberla_init.cpp.
References stream, and walberla_mpi_cart_comm_observer.
Referenced by ScriptInterface::walberla::EKSpecies::do_construct(), and ScriptInterface::walberla::LBFluid::do_construct().
| std::unique_ptr< ResourceManager > walberla::get_vtk_dependent_resources | ( | ) |
Get a lock on waLBerla's global resources for VTK.
Definition at line 73 of file walberla_init.cpp.
References stream, walberla_mpi_comm, and walberla_mpi_env.
Referenced by VTKHandle::VTKHandle().
| FloatType walberla::greens_function | ( | int | x, |
| int | y, | ||
| int | z, | ||
| auto const & | dim | ||
| ) |
Definition at line 35 of file greens_function.hpp.
References stream.
| void walberla::interpolate_bspline_at_pos | ( | Utils::Vector3d const & | pos, |
| auto const && | f | ||
| ) |
Definition at line 61 of file LBInterpolation.impl.hpp.
References Utils::Vector< T, N >::broadcast().
| void walberla::mpi_deinit | ( | ) |
Release waLBerla's MPI manager and environment.
Definition at line 64 of file walberla_init.cpp.
References stream, walberla_mpi_cart_comm_observer, walberla_mpi_comm, and walberla_mpi_env.
Referenced by CommunicationEnvironment::~CommunicationEnvironment().
| void walberla::mpi_init | ( | ) |
Initialize waLBerla's MPI manager and environment.
Definition at line 43 of file walberla_init.cpp.
References stream, walberla_mpi_cart_comm_observer, walberla_mpi_comm, and walberla_mpi_env.
Referenced by CommunicationEnvironment::CommunicationEnvironment().
Re-initialize waLBerla's MPI Cartesian communicator.
Definition at line 54 of file walberla_init.cpp.
References stream, walberla_mpi_cart_comm_observer, walberla_mpi_comm, and walberla_mpi_env.
Referenced by Communicator::init_comm_cart().
| std::shared_ptr< walberla::PoissonSolver > walberla::new_ek_poisson_fft | ( | std::shared_ptr< LatticeWalberla > const & | lattice, |
| double | permittivity, | ||
| bool | single_precision | ||
| ) |
Definition at line 38 of file ek_poisson_fft_init.cpp.
References stream.
Referenced by ScriptInterface::walberla::EKFFT::make_instance().
| std::shared_ptr< walberla::PoissonSolver > walberla::new_ek_poisson_fft_cuda | ( | std::shared_ptr< LatticeWalberla > const & | lattice, |
| double | permittivity, | ||
| bool | single_precision | ||
| ) |
Definition at line 49 of file ek_poisson_fft_init_cuda.cu.
References stream.
Referenced by ScriptInterface::walberla::EKFFT::make_instance().
| std::shared_ptr< walberla::PoissonSolver > walberla::new_ek_poisson_none | ( | std::shared_ptr< LatticeWalberla > const & | lattice, |
| bool | single_precision | ||
| ) |
Definition at line 30 of file ek_poisson_none_init.cpp.
References stream.
Referenced by ScriptInterface::walberla::EKNone::do_construct().
| std::shared_ptr< EKReactionBase > walberla::new_ek_reaction_bulk_cpu | ( | std::shared_ptr< LatticeWalberla > const & | lattice, |
| typename EKReactionBase::reactants_type const & | reactants, | ||
| double | coefficient | ||
| ) |
Definition at line 52 of file ek_walberla_init.cpp.
References stream.
Referenced by ScriptInterface::walberla::EKBulkReaction::do_construct().
| std::shared_ptr< EKReactionBase > walberla::new_ek_reaction_bulk_gpu | ( | std::shared_ptr< LatticeWalberla > const & | lattice, |
| typename EKReactionBase::reactants_type const & | reactants, | ||
| double | coefficient | ||
| ) |
Definition at line 83 of file ek_walberla_init.cu.
References stream.
Referenced by ScriptInterface::walberla::EKBulkReaction::do_construct().
| std::shared_ptr< EKReactionBaseIndexed > walberla::new_ek_reaction_indexed_cpu | ( | std::shared_ptr< LatticeWalberla > const & | lattice, |
| typename EKReactionBase::reactants_type const & | reactants, | ||
| double | coefficient | ||
| ) |
Definition at line 60 of file ek_walberla_init.cpp.
References stream.
Referenced by ScriptInterface::walberla::EKIndexedReaction::do_construct().
| std::shared_ptr< EKReactionBaseIndexed > walberla::new_ek_reaction_indexed_gpu | ( | std::shared_ptr< LatticeWalberla > const & | lattice, |
| typename EKReactionBase::reactants_type const & | reactants, | ||
| double | coefficient | ||
| ) |
Definition at line 95 of file ek_walberla_init.cu.
References stream.
Referenced by ScriptInterface::walberla::EKIndexedReaction::do_construct().
| std::shared_ptr< EKinWalberlaBase > walberla::new_ek_walberla_cpu | ( | std::shared_ptr< LatticeWalberla > const & | lattice, |
| double | diffusion, | ||
| double | kT, | ||
| double | valency, | ||
| Utils::Vector3d | ext_efield, | ||
| double | density, | ||
| bool | advection, | ||
| bool | friction_coupling, | ||
| bool | single_precision, | ||
| bool | thermalized, | ||
| unsigned int | seed | ||
| ) |
Definition at line 36 of file ek_walberla_init.cpp.
References density, and stream.
Referenced by ScriptInterface::walberla::EKSpecies::make_instance().
| std::shared_ptr< EKinWalberlaBase > walberla::new_ek_walberla_gpu | ( | std::shared_ptr< LatticeWalberla > const & | lattice, |
| double | diffusion, | ||
| double | kT, | ||
| double | valency, | ||
| Utils::Vector3d | ext_efield, | ||
| double | density, | ||
| bool | advection, | ||
| bool | friction_coupling, | ||
| bool | single_precision, | ||
| bool | thermalized, | ||
| unsigned int | seed | ||
| ) |
Definition at line 63 of file ek_walberla_init.cu.
References density, and stream.
Referenced by ScriptInterface::walberla::EKSpecies::make_instance().
Definition at line 96 of file PoissonSolverFFT.hpp.
Referenced by walberla::PoissonSolverFFT< FloatType, Architecture >::add_charge_to_field(), walberla::PoissonSolverFFT< FloatType, Architecture >::reset_charge_field(), walberla::PoissonSolverFFT< FloatType, Architecture >::setup_fft(), and walberla::PoissonSolverFFT< FloatType, Architecture >::solve().
| void walberla::set_boundary_from_grid | ( | BoundaryModel & | boundary, |
| LatticeWalberla const & | lattice, | ||
| std::vector< int > const & | raster_flat, | ||
| std::vector< DataType > const & | data_flat | ||
| ) |
Definition at line 81 of file boundary.hpp.
References block(), LatticeWalberla::get_block_corner(), LatticeWalberla::get_blocks(), LatticeWalberla::get_ghost_layers(), LatticeWalberla::get_grid_dimensions(), Utils::product(), and stream.
Referenced by walberla::LBWalberlaImpl< FloatType, Architecture >::update_boundary_from_shape(), walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::update_density_boundary_from_shape(), and walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::update_flux_boundary_from_shape().
| auto walberla::to_array | ( | Utils::Vector< T, N > const & | vec | ) |
Definition at line 90 of file PoissonSolverFFT.hpp.
References stream.
Referenced by walberla::PoissonSolverFFT< FloatType, Architecture >::heffte_container< ComplexType >::heffte_container().
|
inline |
Definition at line 78 of file BlockAndCell.hpp.
References stream.
Referenced by get_block_and_cell(), get_block_interval(), get_interval(), walberla::BoundaryHandling< FloatType, ValueType, BoundaryClass >::get_node_value_at_boundary(), walberla::BoundaryHandling< FloatType, ValueType, BoundaryClass >::node_is_boundary(), walberla::BoundaryHandling< FloatType, ValueType, BoundaryClass >::remove_node_from_boundary(), walberla::LBWalberlaImpl< FloatType, Architecture >::reset_boundary_handling(), walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::reset_density_boundary_handling(), walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::reset_flux_boundary_handling(), walberla::BoundaryHandling< FloatType, ValueType, BoundaryClass >::set_node_value_at_boundary(), and walberla::BoundaryHandling< FloatType, ValueType, BoundaryClass >::unpack_node().
|
noexcept |
Definition at line 62 of file types_conversion.hpp.
References stream.
Definition at line 47 of file types_conversion.hpp.
References stream.
Referenced by walberla::LBWalberlaImpl< FloatType, Architecture >::get_boundary_force(), walberla::ResetForce< PdfField, ForceField >::get_ext_force(), LatticeWalberla::get_local_domain(), walberla::LBWalberlaImpl< FloatType, Architecture >::get_momentum(), walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::get_node_flux_at_boundary(), walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::get_node_flux_vector(), walberla::LBWalberlaImpl< FloatType, Architecture >::get_node_force_to_be_applied(), walberla::LBWalberlaImpl< FloatType, Architecture >::get_node_last_applied_force(), walberla::LBWalberlaImpl< FloatType, Architecture >::get_node_velocity(), walberla::LBWalberlaImpl< FloatType, Architecture >::get_node_velocity_at_boundary(), walberla::EKinWalberlaImpl< FluxCount, FloatType, Architecture >::get_slice_flux_at_boundary(), and walberla::LBWalberlaImpl< FloatType, Architecture >::get_slice_velocity_at_boundary().
|
inlinenoexcept |
Definition at line 57 of file types_conversion.hpp.
|
inlinenoexcept |
Definition at line 52 of file types_conversion.hpp.
Referenced by copy_block_buffer().
Definition at line 67 of file types_conversion.hpp.
References stream.
Referenced by walberla::LBWalberlaImpl< FloatType, Architecture >::get_node_pressure_tensor(), and walberla::LBWalberlaImpl< FloatType, Architecture >::get_pressure_tensor().