31 #ifndef FLUID_DYNAMICS_COMPLEX_H 32 #define FLUID_DYNAMICS_COMPLEX_H 41 namespace fluid_dynamics
43 typedef DataDelegateContact<FluidBody, FluidParticles, Fluid,
44 SolidBody, SolidParticles, Solid, DataDelegateEmptyBase>
46 typedef DataDelegateContact<FluidBody, FluidParticles, Fluid,
47 SPHBody, BaseParticles, BaseMaterial, DataDelegateEmptyBase>
49 typedef DataDelegateContact<FluidBody, FluidParticles, Fluid,
50 SolidBody, SolidParticles, Solid>
56 template <
class BaseRelaxationType>
60 template <
class BaseBodyRelationType>
67 StdVec<StdLargeVec<Real> *> wall_mass_, wall_Vol_;
68 StdVec<StdLargeVec<Vecd> *> wall_vel_ave_, wall_acc_ave_, wall_n_;
75 template <
class DensitySummationInnerType>
86 StdVec<StdLargeVec<Real> *> contact_mass_;
88 virtual void prepareContactData()
override;
89 virtual void Interaction(
size_t index_i, Real dt = 0.0)
override;
98 template <
class BaseViscousAccelerationType>
103 template <
class BaseBodyRelationType>
109 virtual void Interaction(
size_t index_i, Real dt = 0.0)
override;
113 template <
class BaseViscousAccelerationType>
142 StdVec<StdLargeVec<Real> *> contact_Vol_;
144 virtual void prepareContactData()
override;
145 virtual void Interaction(
size_t index_i, Real dt = 0.0)
override;
152 template <
class BasePressureRelaxationType>
157 template <
class BaseBodyRelationType>
163 virtual void Interaction(
size_t index_i, Real dt = 0.0)
override;
164 virtual Vecd computeNonConservativeAcceleration(
size_t index_i)
override;
173 template <
class BasePressureRelaxationType>
178 template <
class BaseBodyRelationType>
185 Real penalty_strength_;
188 virtual void Initialization(
size_t index_i, Real dt = 0.0)
override;
189 virtual void Interaction(
size_t index_i, Real dt = 0.0)
override;
190 virtual Vecd computeNonConservativeAcceleration(
size_t index_i)
override;
194 template <
class BasePressureRelaxationType>
208 template <
class BasePressureRelaxationType>
225 template <
class BaseDensityRelaxationType>
230 template <
class BaseBodyRelationType>
236 virtual void Interaction(
size_t index_i, Real dt = 0.0)
override;
240 template <
class BaseDensityRelaxationType>
262 fluid_wall_relation.contact_relation_){};
267 virtual void Interaction(
size_t index_i, Real dt = 0.0)
override;
279 fluid_wall_relation.contact_relation_){};
284 virtual void Interaction(
size_t index_i, Real dt = 0.0)
override;
288 #endif //FLUID_DYNAMICS_COMPLEX_H The base relation between a SPH body and its contact SPH bodies.
Definition: base_body_relation.h:136
transport velocity correction consdiering the contribution from contact bodies
Definition: fluid_dynamics_complex.h:128
Here, we define the algorithm classes for fluid dynamics within the body.
computing density by summation considering contribution from contact bodies
Definition: fluid_dynamics_complex.h:76
Definition: fluid_dynamics_complex.h:195
virtual void Interaction(size_t index_i, Real dt=0.0) override
Definition: fluid_dynamics_complex.cpp:44
template class pressure relaxation scheme with wall boundary
Definition: fluid_dynamics_complex.h:153
virtual void Interaction(size_t index_i, Real dt=0.0) override
Definition: fluid_dynamics_complex.hpp:76
Definition: fluid_dynamics_complex.h:114
template density relaxation scheme without using different Riemann solvers. The difference from the f...
Definition: fluid_dynamics_complex.h:226
virtual void Interaction(size_t index_i, Real dt=0.0) override
Definition: fluid_dynamics_complex.cpp:70
Definition: fluid_dynamics_complex.h:241
The relation combined an inner and a contact body relation. The interaction is in a inner-boundary-co...
Definition: complex_body_relation.h:42
template class for pressure relaxation scheme with wall boundary and considering non-conservative acc...
Definition: fluid_dynamics_complex.h:174
virtual void Interaction(size_t index_i, Real dt=0.0) override
Definition: fluid_dynamics_complex.hpp:215
Abstract base class for general relaxation algorithms with wall.
Definition: fluid_dynamics_complex.h:57
template class viscous acceleration with wall boundary
Definition: fluid_dynamics_complex.h:99
This is the derived class of base particles.
The abstract relation within a SPH body.
Definition: base_body_relation.h:117
first half of the pressure relaxation scheme using Riemann solver.
Definition: fluid_dynamics_complex.h:257
Definition: fluid_dynamics_complex.h:209
This is the class for bodies used for solid BCs or Elastic structure.
Definition: solid_body_supplementary.cpp:9
second half of the pressure relaxation scheme using Riemann solver.
Definition: fluid_dynamics_complex.h:274
particle dynamics by considering contribution from extra contact bodies
Definition: base_particle_dynamics.h:281