ESPResSo
Extensible Simulation Package for Research on Soft Matter Systems
Loading...
Searching...
No Matches
walberla Namespace Reference

\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< BlockAndCellget_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::PoissonSolvernew_ek_poisson_fft (std::shared_ptr< LatticeWalberla > const &lattice, double permittivity, bool single_precision)
 
std::shared_ptr< walberla::PoissonSolvernew_ek_poisson_none (std::shared_ptr< LatticeWalberla > const &lattice, bool single_precision)
 
std::shared_ptr< EKinWalberlaBasenew_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< EKReactionBasenew_ek_reaction_bulk (std::shared_ptr< LatticeWalberla > const &lattice, typename EKReactionBase::reactants_type const &reactants, double coefficient)
 
std::shared_ptr< EKReactionBaseIndexednew_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< ResourceManagerget_vtk_dependent_resources ()
 Get a lock on waLBerla's global resources for VTK.
 
std::vector< Utils::Vector3dfill_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>
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)
 

Detailed Description

\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

Function Documentation

◆ convert_cell_corner_to_coord()

auto walberla::convert_cell_corner_to_coord ( real_vector auto const &  corner)
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().

◆ es2walberla() [1/3]

template<typename T , typename U = T>
U walberla::es2walberla ( T const &  v)
inline

Definition at line 34 of file types_conversion.hpp.

◆ es2walberla() [2/3]

template<>
Vector3< float > walberla::es2walberla ( Utils::Vector3d const &  v)
inline

Definition at line 40 of file types_conversion.hpp.

◆ es2walberla() [3/3]

template<>
Vector3< double > walberla::es2walberla ( Utils::Vector3d const &  v)
inline

Definition at line 44 of file types_conversion.hpp.

◆ fill_3D_scalar_array()

std::vector< double > walberla::fill_3D_scalar_array ( std::vector< double > const &  vec_flat,
Utils::Vector3i const &  grid_size 
)
inline

◆ fill_3D_vector_array()

std::vector< Utils::Vector3d > walberla::fill_3D_vector_array ( std::vector< double > const &  vec_flat,
Utils::Vector3i const &  grid_size 
)
inline

◆ get_block()

IBlock * walberla::get_block ( ::LatticeWalberla const &  lattice,
Utils::Vector3d const &  pos,
bool  consider_ghost_layers 
)
inline

◆ get_block_and_cell()

std::optional< BlockAndCell > walberla::get_block_and_cell ( ::LatticeWalberla const &  lattice,
Utils::Vector3i const &  node,
bool  consider_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().

◆ get_block_extended()

template<typename T >
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().

◆ get_max_corner()

auto walberla::get_max_corner ( IBlock const &  block)
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().

◆ get_min_corner()

auto walberla::get_min_corner ( IBlock const &  block)
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().

◆ get_vtk_dependent_resources()

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().

◆ interpolate_bspline_at_pos()

◆ mpi_init()

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().

◆ new_ek_poisson_fft()

std::shared_ptr< walberla::PoissonSolver > walberla::new_ek_poisson_fft ( std::shared_ptr< LatticeWalberla > const &  lattice,
double  permittivity,
bool  single_precision 
)

◆ new_ek_poisson_none()

std::shared_ptr< walberla::PoissonSolver > walberla::new_ek_poisson_none ( std::shared_ptr< LatticeWalberla > const &  lattice,
bool  single_precision 
)

◆ new_ek_reaction_bulk()

std::shared_ptr< EKReactionBase > walberla::new_ek_reaction_bulk ( std::shared_ptr< LatticeWalberla > const &  lattice,
typename EKReactionBase::reactants_type const &  reactants,
double  coefficient 
)

◆ new_ek_reaction_indexed()

std::shared_ptr< EKReactionBaseIndexed > walberla::new_ek_reaction_indexed ( std::shared_ptr< LatticeWalberla > const &  lattice,
typename EKReactionBase::reactants_type const &  reactants,
double  coefficient 
)

◆ new_ek_walberla()

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().

◆ set_boundary_from_grid()

template<class BoundaryModel , class DataType >
void walberla::set_boundary_from_grid ( BoundaryModel &  boundary,
LatticeWalberla const &  lattice,
std::vector< int > const &  raster_flat,
std::vector< DataType > const &  data_flat 
)

◆ to_cell()

◆ to_vector3()

template<typename T >
auto walberla::to_vector3 ( Utils::Vector3d const &  v)
noexcept

Definition at line 61 of file types_conversion.hpp.

◆ to_vector3d()

◆ to_vector3i() [1/2]

Utils::Vector3i walberla::to_vector3i ( Cell const &  v)
inlinenoexcept

Definition at line 57 of file types_conversion.hpp.

◆ to_vector3i() [2/2]

Utils::Vector3i walberla::to_vector3i ( Vector3< int > const &  v)
inlinenoexcept

◆ to_vector9d()

template<typename T >
auto walberla::to_vector9d ( Matrix3< T > const &  m)
noexcept