ESPResSo
Extensible Simulation Package for Research on Soft Matter Systems
|
\file PackInfoPdfDoublePrecision.cpp \author pystencils More...
Namespaces | |
namespace | blockforest |
namespace | domain_decomposition |
namespace | field |
namespace | lbm |
namespace | pystencils |
namespace | vtk |
Classes | |
struct | BlockAndCell |
class | BoundaryHandling |
Boundary class optimized for sparse data. More... | |
class | EKinWalberlaImpl |
Class that runs and controls the EK on waLBerla. More... | |
class | EKReactant |
class | EKReactionBase |
class | EKReactionBaseIndexed |
class | EKReactionImplBulk |
class | EKReactionImplIndexed |
class | FFT |
class | InterpolateAndShiftAtBoundary |
Lees-Edwards sweep. More... | |
class | LBWalberlaImpl |
Class that runs and controls the LB on waLBerla. More... | |
class | None |
class | PoissonSolver |
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... | |
Functions | |
Cell | to_cell (Utils::Vector3i const &xyz) |
template<typename T > | |
IBlock * | get_block_extended (LatticeWalberla const &lattice, Utils::Vector< T, 3 > const &pos, unsigned int n_ghost_layers) |
std::optional< BlockAndCell > | get_block_and_cell (::LatticeWalberla const &lattice, Utils::Vector3i const &node, bool consider_ghost_layers) |
IBlock * | get_block (::LatticeWalberla const &lattice, Utils::Vector3d const &pos, bool consider_ghost_layers) |
auto | convert_cell_corner_to_coord (real_vector auto const &corner) |
Get the block-local coordinates of a block corner. | |
auto | get_min_corner (IBlock const &block) |
Get the block-local coordinates of the lower corner of a block. | |
auto | get_max_corner (IBlock const &block) |
Get the block-local coordinates of the upper corner of a block. | |
std::shared_ptr< walberla::PoissonSolver > | new_ek_poisson_fft (std::shared_ptr< LatticeWalberla > const &lattice, double permittivity, bool single_precision) |
std::shared_ptr< walberla::PoissonSolver > | new_ek_poisson_none (std::shared_ptr< LatticeWalberla > const &lattice, bool single_precision) |
std::shared_ptr< EKinWalberlaBase > | new_ek_walberla (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) |
std::shared_ptr< EKReactionBase > | new_ek_reaction_bulk (std::shared_ptr< LatticeWalberla > const &lattice, typename EKReactionBase::reactants_type const &reactants, double coefficient) |
std::shared_ptr< EKReactionBaseIndexed > | new_ek_reaction_indexed (std::shared_ptr< LatticeWalberla > const &lattice, typename EKReactionBase::reactants_type const &reactants, double coefficient) |
void | mpi_init () |
Initialize waLBerla's MPI manager. | |
std::unique_ptr< ResourceManager > | get_vtk_dependent_resources () |
Get a lock on waLBerla's global resources for VTK. | |
std::vector< Utils::Vector3d > | fill_3D_vector_array (std::vector< double > const &vec_flat, Utils::Vector3i const &grid_size) |
std::vector< double > | fill_3D_scalar_array (std::vector< double > const &vec_flat, Utils::Vector3i const &grid_size) |
template<class BoundaryModel , class DataType > | |
void | set_boundary_from_grid (BoundaryModel &boundary, LatticeWalberla const &lattice, std::vector< int > const &raster_flat, std::vector< DataType > const &data_flat) |
template<typename T , typename U = T> | |
U | es2walberla (T const &v) |
template<> | |
Vector3< float > | es2walberla (Utils::Vector3d const &v) |
template<> | |
Vector3< double > | es2walberla (Utils::Vector3d const &v) |
template<typename T > | |
auto | to_vector3d (Vector3< T > const &v) noexcept |
Utils::Vector3i | to_vector3i (Vector3< int > const &v) noexcept |
Utils::Vector3i | to_vector3i (Cell const &v) noexcept |
template<typename T > | |
auto | to_vector3 (Utils::Vector3d const &v) noexcept |
template<typename T > | |
auto | to_vector9d (Matrix3< T > const &m) noexcept |
template<typename Function > | |
void | interpolate_bspline_at_pos (Utils::Vector3d const &pos, Function const &f) |
\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 118 of file BlockAndCell.hpp.
Referenced by LatticeWalberla::get_local_grid_range(), get_max_corner(), and get_min_corner().
|
inline |
Definition at line 34 of file types_conversion.hpp.
|
inline |
Definition at line 40 of file types_conversion.hpp.
|
inline |
Definition at line 44 of file types_conversion.hpp.
|
inline |
Definition at line 60 of file boundary.hpp.
References Utils::product().
Referenced by walberla::EKinWalberlaImpl< FluxCount, FloatType >::update_density_boundary_from_shape().
|
inline |
Definition at line 36 of file boundary.hpp.
References Utils::product().
Referenced by walberla::LBWalberlaImpl< FloatType, Architecture >::update_boundary_from_shape(), and walberla::EKinWalberlaImpl< FluxCount, FloatType >::update_flux_boundary_from_shape().
|
inline |
Definition at line 100 of file BlockAndCell.hpp.
References block(), get_block_extended(), LatticeWalberla::get_blocks(), and LatticeWalberla::get_ghost_layers().
|
inline |
Definition at line 80 of file BlockAndCell.hpp.
References block(), get_block_extended(), LatticeWalberla::get_blocks(), LatticeWalberla::get_ghost_layers(), and to_cell().
Referenced by walberla::LBWalberlaImpl< FloatType, Architecture >::add_force_at_pos(), walberla::EKinWalberlaImpl< FluxCount, FloatType >::get_interval(), walberla::LBWalberlaImpl< FloatType, Architecture >::get_interval(), walberla::LBWalberlaImpl< FloatType, Architecture >::get_node_boundary_force(), walberla::EKinWalberlaImpl< FluxCount, FloatType >::get_node_density(), walberla::LBWalberlaImpl< FloatType, Architecture >::get_node_density(), walberla::EKinWalberlaImpl< FluxCount, FloatType >::get_node_density_at_boundary(), walberla::EKinWalberlaImpl< FluxCount, FloatType >::get_node_flux_at_boundary(), walberla::LBWalberlaImpl< FloatType, Architecture >::get_node_force_to_be_applied(), walberla::EKReactionImplIndexed::get_node_is_boundary(), walberla::EKinWalberlaImpl< FluxCount, FloatType >::get_node_is_boundary(), walberla::LBWalberlaImpl< FloatType, Architecture >::get_node_is_boundary(), walberla::EKinWalberlaImpl< FluxCount, FloatType >::get_node_is_density_boundary(), walberla::EKinWalberlaImpl< FluxCount, FloatType >::get_node_is_flux_boundary(), walberla::LBWalberlaImpl< FloatType, Architecture >::get_node_last_applied_force(), walberla::LBWalberlaImpl< FloatType, Architecture >::get_node_population(), 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 >::remove_node_from_density_boundary(), walberla::EKinWalberlaImpl< FluxCount, FloatType >::remove_node_from_flux_boundary(), walberla::EKinWalberlaImpl< FluxCount, FloatType >::set_node_density(), walberla::LBWalberlaImpl< FloatType, Architecture >::set_node_density(), walberla::EKinWalberlaImpl< FluxCount, FloatType >::set_node_density_boundary(), walberla::EKinWalberlaImpl< FluxCount, FloatType >::set_node_flux_boundary(), walberla::EKReactionImplIndexed::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 >::set_slice_density_boundary(), walberla::EKinWalberlaImpl< FluxCount, FloatType >::set_slice_flux_boundary(), and walberla::LBWalberlaImpl< FloatType, Architecture >::set_slice_velocity_at_boundary().
IBlock * walberla::get_block_extended | ( | LatticeWalberla const & | lattice, |
Utils::Vector< T, 3 > const & | pos, | ||
unsigned int | n_ghost_layers | ||
) |
Definition at line 64 of file BlockAndCell.hpp.
References block(), and LatticeWalberla::get_cached_blocks().
Referenced by get_block(), and get_block_and_cell().
|
inline |
Get the block-local coordinates of the upper corner of a block.
Definition at line 130 of file BlockAndCell.hpp.
References block(), and convert_cell_corner_to_coord().
Referenced by LatticeWalberla::get_block_corner().
|
inline |
Get the block-local coordinates of the lower corner of a block.
Definition at line 125 of file BlockAndCell.hpp.
References block(), and convert_cell_corner_to_coord().
Referenced by LatticeWalberla::get_block_corner(), and walberla::LBWalberlaImpl< FloatType, Architecture >::get_interval().
std::unique_ptr< ResourceManager > walberla::get_vtk_dependent_resources | ( | ) |
Get a lock on waLBerla's global resources for VTK.
Definition at line 45 of file walberla_init.cpp.
References walberla_mpi_comm, and walberla_mpi_env.
Referenced by VTKHandle::VTKHandle().
void walberla::interpolate_bspline_at_pos | ( | Utils::Vector3d const & | pos, |
Function const & | f | ||
) |
Definition at line 74 of file types_conversion.hpp.
References Utils::Vector< T, N >::broadcast().
Referenced by walberla::LBWalberlaImpl< FloatType, Architecture >::add_force_at_pos(), walberla::LBWalberlaImpl< FloatType, Architecture >::get_density_at_pos(), and walberla::LBWalberlaImpl< FloatType, Architecture >::get_velocity_at_pos().
void walberla::mpi_init | ( | ) |
Initialize waLBerla's MPI manager.
Definition at line 36 of file walberla_init.cpp.
References walberla_mpi_comm, and walberla_mpi_env.
Referenced by Communication::init().
std::shared_ptr< walberla::PoissonSolver > walberla::new_ek_poisson_fft | ( | std::shared_ptr< LatticeWalberla > const & | lattice, |
double | permittivity, | ||
bool | single_precision | ||
) |
Definition at line 29 of file ek_poisson_fft_init.cpp.
Referenced by ScriptInterface::walberla::EKFFT::do_construct().
std::shared_ptr< walberla::PoissonSolver > walberla::new_ek_poisson_none | ( | std::shared_ptr< LatticeWalberla > const & | lattice, |
bool | single_precision | ||
) |
Definition at line 29 of file ek_poisson_none_init.cpp.
Referenced by ScriptInterface::walberla::EKNone::do_construct().
std::shared_ptr< EKReactionBase > walberla::new_ek_reaction_bulk | ( | std::shared_ptr< LatticeWalberla > const & | lattice, |
typename EKReactionBase::reactants_type const & | reactants, | ||
double | coefficient | ||
) |
Definition at line 53 of file ek_walberla_init.cpp.
Referenced by ScriptInterface::walberla::EKBulkReaction::do_construct().
std::shared_ptr< EKReactionBaseIndexed > walberla::new_ek_reaction_indexed | ( | std::shared_ptr< LatticeWalberla > const & | lattice, |
typename EKReactionBase::reactants_type const & | reactants, | ||
double | coefficient | ||
) |
Definition at line 59 of file ek_walberla_init.cpp.
Referenced by ScriptInterface::walberla::EKIndexedReaction::do_construct().
std::shared_ptr< EKinWalberlaBase > walberla::new_ek_walberla | ( | 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.
Referenced by ScriptInterface::walberla::EKSpecies::make_instance().
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(), and Utils::product().
Referenced by walberla::LBWalberlaImpl< FloatType, Architecture >::update_boundary_from_shape(), walberla::EKinWalberlaImpl< FluxCount, FloatType >::update_density_boundary_from_shape(), and walberla::EKinWalberlaImpl< FluxCount, FloatType >::update_flux_boundary_from_shape().
|
inline |
Definition at line 54 of file BlockAndCell.hpp.
Referenced by get_block_and_cell(), walberla::LBWalberlaImpl< FloatType, Architecture >::get_block_interval(), and walberla::LBWalberlaImpl< FloatType, Architecture >::get_interval().
|
noexcept |
Definition at line 61 of file types_conversion.hpp.
|
noexcept |
Definition at line 48 of file types_conversion.hpp.
Referenced by walberla::ResetForce< PdfField, ForceField >::get_ext_force(), LatticeWalberla::get_local_domain(), walberla::LBWalberlaImpl< FloatType, Architecture >::get_momentum(), walberla::EKinWalberlaImpl< FluxCount, FloatType >::get_node_flux_at_boundary(), 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 >::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 53 of file types_conversion.hpp.
Referenced by walberla::LBWalberlaImpl< FloatType, Architecture >::copy_block_buffer().
|
noexcept |
Definition at line 66 of file types_conversion.hpp.
Referenced by walberla::LBWalberlaImpl< FloatType, Architecture >::get_node_pressure_tensor(), and walberla::LBWalberlaImpl< FloatType, Architecture >::get_pressure_tensor().