29 #ifndef GENERAL_DYNAMICS_H 30 #define GENERAL_DYNAMICS_H 32 #include "all_particle_dynamics.h" 41 typedef DataDelegateSimple<SPHBody, BaseParticles, BaseMaterial> GeneralDataDelegateSimple;
42 typedef DataDelegateInner<SPHBody, BaseParticles, BaseMaterial> GeneralDataDelegateInner;
43 typedef DataDelegateContact<SPHBody, BaseParticles, BaseMaterial,
44 SPHBody, BaseParticles, BaseMaterial, DataDelegateEmptyBase>
45 GeneralDataDelegateContact;
69 virtual void Update(
size_t index_i, Real dt = 0.0)
override;
86 Real randomize_scale_;
87 virtual void Update(
size_t index_i, Real dt = 0.0)
override;
94 template <
typename VariableType>
101 W0_(body_->sph_adaptation_->getKernel()->W0(Vecd(0))),
102 smoothed_(*particles_->getVariableByName<
VariableType>(variable_name))
104 particles_->registerVariable(temp_, variable_name +
"_temp");
111 StdLargeVec<VariableType> &smoothed_, temp_;
113 virtual void Interaction(
size_t index_i, Real dt = 0.0)
override 118 for (
size_t n = 0; n != inner_neighborhood.
current_size_; ++n)
120 size_t index_j = inner_neighborhood.
j_[n];
121 summation += inner_neighborhood.
W_ij_[n] * smoothed_[index_j];
122 weight += inner_neighborhood.
W_ij_[n];
124 temp_[index_i] = summation / (weight + TinyReal);
127 virtual void Update(
size_t index_i, Real dt = 0.0)
override 129 smoothed_[index_i] = temp_[index_i];
146 Real velocity_bound_;
147 bool ReduceFunction(
size_t index_i, Real dt = 0.0)
override;
163 Real ReduceFunction(
size_t index_i, Real dt = 0.0)
override;
179 Real ReduceFunction(
size_t index_i, Real dt = 0.0)
override;
195 Vecd ReduceFunction(
size_t index_i, Real dt = 0.0)
override;
211 Vecd ReduceFunction(
size_t index_i, Real dt = 0.0)
override;
218 template <
typename VariableType>
226 variable_(*particles_->getVariableByName<
VariableType>(variable_name))
233 StdLargeVec<VariableType> &variable_;
234 VariableType ReduceFunction(
size_t index_i, Real dt = 0.0)
override 236 return variable_[index_i];
244 template <
typename VariableType>
250 mass_(this->particles_->mass_){};
255 VariableType ReduceFunction(
size_t index_i, Real dt = 0.0)
override 257 return mass_[index_i] * this->variable_[index_i];
281 Real ReduceFunction(
size_t index_i, Real dt = 0.0)
override;
284 #endif // GENERAL_DYNAMICS_H A neighborhood around particle i.
Definition: neighbor_relation.h:47
Compute the total mechanical (kinematic and potential) energy.
Definition: general_dynamics.h:265
computing smoothed variable field by averaging with neighbors
Definition: general_dynamics.h:95
prepare data for inner particle dynamics
Definition: base_particle_dynamics.h:216
Get the maximum particle speed in a SPH body.
Definition: general_dynamics.h:170
virtual void setupDynamics(Real dt=0.0) override
Definition: general_dynamics.cpp:21
size_t current_size_
Definition: neighbor_relation.h:50
Simple particle dynamics without considering particle interaction.
Definition: particle_dynamics_algorithms.h:48
check whether particle velocity within a given bound
Definition: general_dynamics.h:137
initialize a time step for a body. including initialize particle acceleration induced by viscous...
Definition: general_dynamics.h:53
A wrapper to provide an ownership for a new derived object which previous often generated by new a ra...
Definition: ownership.h:90
Compute the moment of a body.
Definition: general_dynamics.h:245
This is the base classes of SPH bodies. The real body is for that with cell linked list and the ficti...
Base abstract class for reduce.
Definition: particle_dynamics_algorithms.h:69
Get the upper front In X Direction for a SPH body.
Definition: general_dynamics.h:154
VariableType initial_reference_
Definition: particle_dynamics_algorithms.h:104
StdLargeVec< Real > W_ij_
Definition: neighbor_relation.h:54
the upper bound of a body by reduced particle positions.
Definition: general_dynamics.h:202
This is the base class of SPH particles. The basic data of the particles is saved in separated large ...
Compute the summation of a particle variable in a body.
Definition: general_dynamics.h:219
SPHBody is a base body with basic data and functions. Its derived class can be a real fluid body...
Definition: base_body.h:61
Randomize the initial particle position.
Definition: general_dynamics.h:76
Here, we define the base external force class.
the lower bound of a body by reduced particle positions.
Definition: general_dynamics.h:186
This class includes an interaction and a update steps.
Definition: particle_dynamics_algorithms.h:160
The abstract relation within a SPH body.
Definition: base_body_relation.h:117
StdLargeVec< size_t > j_
Definition: neighbor_relation.h:53
ParticleConfiguration & inner_configuration_
Definition: base_particle_dynamics.h:222
The gravity force, derived class of External force.
Definition: external_force.h:55
Definition: solid_body_supplementary.cpp:9