30 #ifndef FLUID_SURFACE_INNER_H 31 #define FLUID_SURFACE_INNER_H 37 namespace fluid_dynamics
55 Real thereshold_by_dimensions_;
57 StdLargeVec<int> &surface_indicator_;
59 Real smoothing_length_;
61 virtual void Interaction(
size_t index_i, Real dt = 0.0)
override;
62 virtual void Update(
size_t index_i, Real dt = 0.0)
override;
69 template <
class FreeSurfaceIdentification>
73 template <
typename... ConstructorArgs>
78 StdLargeVec<int> previous_surface_indicator_;
80 virtual void Interaction(
size_t index_i, Real dt = 0.0)
override;
81 virtual void Update(
size_t index_i, Real dt = 0.0)
override;
83 void checkNearPreviousFreeSurface(
size_t index_i);
100 virtual Real ReinitializedDensity(Real rho_sum, Real rho_0, Real rho_n)
override 102 return rho_sum + SMAX(0.0, (rho_n - rho_sum)) * rho_0 / rho_n;
115 surface_indicator_(*particles_->getVariableByName<
int>(
"SurfaceIndicator")){};
119 StdLargeVec<int> &surface_indicator_;
120 virtual void Update(
size_t index_i, Real dt = 0.0)
override;
121 bool isNearSurface(
size_t index_i);
135 rho_ref_(material_->ReferenceDensity()), rho_sum(particles_->rho_sum_),
136 vel_(particles_->vel_), acc_(particles_->acc_),
137 surface_indicator_(*particles_->getVariableByName<
int>(
"SurfaceIndicator")){};
141 Real u_ref_, t_ref_, rho_ref_;
144 StdLargeVec<int> &surface_indicator_;
146 virtual void Update(
size_t index_i, Real dt = 0.0)
override;
159 pos_(particles_->pos_)
161 quantity_name_ = body_part.BodyPartName() +
"FreeSurface";
162 initial_reference_ = 0.0;
168 virtual void SetupReduce()
override{};
169 virtual Real ReduceFunction(
size_t index_i, Real dt = 0.0)
override {
return pos_[index_i][1]; };
182 Real thereshold_by_dimensions_;
184 StdLargeVec<int> &surface_indicator_;
189 virtual void Interaction(
size_t index_i, Real dt = 0.0)
override;
203 Real thereshold_by_dimensions_;
205 StdLargeVec<int> &surface_indicator_;
210 virtual void Interaction(
size_t index_i, Real dt = 0.0)
override;
228 StdLargeVec<int> &surface_indicator_;
232 virtual void Interaction(
size_t index_i, Real dt = 0.0)
override;
236 #endif //FLUID_SURFACE_INNER_H
Fluid body uses smoothing length to particle spacing 1.3 and carry out particle sorting every 100 ite...
Definition: fluid_body.h:43
virtual void Update(size_t index_i, Real dt=0.0) override
Definition: fluid_surface_inner.cpp:37
The density is smoothed if the particle is near fluid surface.
Definition: fluid_surface_inner.h:110
prepare data for inner particle dynamics
Definition: base_particle_dynamics.h:216
A body part with a collection of cell lists.
Definition: base_body_part.h:100
indicate the particles near the interface of a fluid-fluid interaction and computing norm ...
Definition: fluid_surface_inner.h:175
Simple particle dynamics without considering particle interaction.
Definition: particle_dynamics_algorithms.h:48
Abstract class for reduce operation in a Eulerian constrain region.
Definition: particle_dynamics_bodypart.h:162
indicate the particles near the free surface of a fluid body. Note that, SPHinXsys does not require t...
Definition: fluid_surface_inner.h:46
virtual void Interaction(size_t index_i, Real dt=0.0) override
Definition: fluid_surface_inner.cpp:177
using the spatial-temporal method to indicate the surface particles to avoid mis-judgement.
Definition: fluid_surface_inner.h:70
computing density by summation
Definition: fluid_dynamics_inner.h:68
computing density by summation with a re-normalization for free surface flows
Definition: fluid_surface_inner.h:92
This is the class for particle interaction with other particles.
Definition: particle_dynamics_algorithms.h:115
Probe the free surface profile for a fluid body part by reduced operation.
Definition: fluid_surface_inner.h:153
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
prepare data for simple particle dynamics.
Definition: base_particle_dynamics.h:185
the viscous force induced acceleration
Definition: fluid_surface_inner.h:217
the viscous force induced acceleration
Definition: fluid_surface_inner.h:196
this function is applied to freestream flows
Definition: fluid_surface_inner.h:129
Definition: solid_body_supplementary.cpp:9