Particles.h File Reference
#include <cereal/cereal.hpp>
#include <ParticleHandler.h>
#include <Particles/BaseParticle.h>

Go to the source code of this file.

Functions

template<class Archive >
void load (Archive &ar, ParticleHandler &handl)
 
template<class Archive >
void save (Archive &ar, const ParticleHandler &handl)
 
template<class Archive >
void load (Archive &ar, BaseParticle &p)
 
template<class Archive >
void save (Archive &ar, const BaseParticle &p)
 

Function Documentation

◆ load() [1/2]

template<class Archive >
void load ( Archive &  ar,
BaseParticle p 
)
43  {
44  Vec3D position;
47 
48  ar( CEREAL_NVP(position),
49  CEREAL_NVP(velocity),
50  CEREAL_NVP(radius));
51 
52  p.setPosition(position);
53  p.setRadius(radius);
54  p.setVelocity(velocity);
55 }
float * p
Definition: Tutorial_Map_using.cpp:9
Definition: Kernel/Math/Vector.h:30
double velocity(const double &t)
Angular velocity as function of time t.
Definition: jeffery_orbit.cc:107
radius
Definition: UniformPSDSelfTest.py:15

References p, UniformPSDSelfTest::radius, and Jeffery_Solution::velocity().

◆ load() [2/2]

template<class Archive >
void load ( Archive &  ar,
ParticleHandler handl 
)
21  {
22  cereal::size_type size;
23  ar ( cereal::make_size_tag(size) );
24 
26 
27  for (int i = 0; i < size; i++) {
28  ar(p);
29  logger(INFO, "Particle: \n\tPOS: % \n\tVEL: % \n\tRAD: %", p.getPosition(), p.getVelocity(), p.getRadius());
30  handl.copyAndAddObject(p);
31  }
32 }
int i
Definition: BiCGSTAB_step_by_step.cpp:9
Logger< MERCURYDPM_LOGLEVEL > logger("MercuryKernel")
Definition of different loggers with certain modules. A user can define its own custom logger here.
Scalar Scalar int size
Definition: benchVecAdd.cpp:17
std::enable_if<!std::is_pointer< U >::value, U * >::type copyAndAddObject(const U &object)
Creates a copy of a Object and adds it to the BaseHandler.
Definition: BaseHandler.h:360
A spherical particle is the most simple particle used in MercuryDPM.
Definition: SphericalParticle.h:16
#define INFO(i)
Definition: mumps_solver.h:54

References BaseHandler< T >::copyAndAddObject(), i, INFO, logger, p, and size.

Referenced by RefineableFishPoissonProblem< ELEMENT >::doc_solution(), GeomObjectAsGeneralisedElementProblem::doc_solution(), ElasticFishBackElement::fill_in_generic_residual_contribution(), oomph::FSIWallElement::fluid_load_vector(), oomph::FSIAxisymmetricQTaylorHoodElement::get_load(), oomph::GeneralisedNewtonianNavierStokesEquations< DIM >::get_load(), oomph::NavierStokesEquations< DIM >::get_load(), oomph::SpaceTimeNavierStokesEquations< DIM >::get_load(), oomph::SpaceTimeNavierStokesMixedOrderEquations< DIM >::get_load(), oomph::SphericalNavierStokesEquations::get_load(), oomph::PolarNavierStokesEquations::get_load(), oomph::KirchhoffLoveShellEquations::load_rate_of_work(), oomph::KirchhoffLoveBeamEquations::load_vector(), oomph::FSIHermiteBeamElement::load_vector(), oomph::KirchhoffLoveShellEquations::load_vector(), oomph::FSIDiagHermiteShellElement::load_vector(), oomph::KirchhoffLoveShellEquations::load_vector_for_rate_of_work_computation(), oomph::FSIDiagHermiteShellElement::load_vector_for_rate_of_work_computation(), Eigen::ThreadLocal< T, Initialize, Release >::local(), main(), Global_Physical_Variables::pcos_load(), Eigen::internal::pload_partial_common(), Eigen::internal::ploadu_partial_common(), Global_Physical_Variables::press_load(), Global_Parameters::press_load(), Global_Physical_Variables::spring_load(), Global_Physical_Variables::spring_load_lower(), oomph::AxisymmetricPoroelasticityTractionElementHelper::Zero_pressure_fct(), oomph::DarcyFaceElementHelper::Zero_pressure_fct(), oomph::PoroelasticityFaceElementHelper::Zero_pressure_fct(), oomph::AxisymmetricLinearElasticityTractionElementHelper::Zero_traction_fct(), oomph::AxisymmetricNavierStokesTractionElementHelper::Zero_traction_fct(), oomph::AxisymmetricPoroelasticityTractionElementHelper::Zero_traction_fct(), oomph::LinearElasticityTractionElementHelper::Zero_traction_fct(), oomph::PoroelasticityFaceElementHelper::Zero_traction_fct(), oomph::PMLTimeHarmonicLinearElasticityTractionElementHelper::Zero_traction_fct(), oomph::TimeHarmonicFourierDecomposedLinearElasticityTractionElementHelper::Zero_traction_fct(), oomph::TimeHarmonicLinearElasticityTractionElementHelper::Zero_traction_fct(), oomph::KirchhoffLoveBeamEquations::Zero_traction_fct(), oomph::KirchhoffLoveShellEquations::Zero_traction_fct(), and oomph::SolidTractionElementHelper::Zero_traction_fct().

◆ save() [1/2]

template<class Archive >
void save ( Archive &  ar,
const BaseParticle p 
)
58  {
59  ar( cereal::make_nvp("position", p.getPosition()),
60  cereal::make_nvp("velocity", p.getVelocity()),
61  cereal::make_nvp("radius", p.getRadius()));
62 }

References p.

◆ save() [2/2]

template<class Archive >
void save ( Archive &  ar,
const ParticleHandler handl 
)
35  {
36  ar ( cereal::make_size_tag( handl.getNumberOfObjects() ));
37  for (const auto& p : handl) {
38  ar ( p );
39  }
40 }
unsigned int getNumberOfObjects() const override
Returns the number of objects in the container. In parallel code this practice is forbidden to avoid ...
Definition: ParticleHandler.cc:1323

References ParticleHandler::getNumberOfObjects(), and p.