SPHinXsys  alpha version
fluid_particles.h
Go to the documentation of this file.
1 /* -------------------------------------------------------------------------*
2  * SPHinXsys *
3  * --------------------------------------------------------------------------*
4  * SPHinXsys (pronunciation: s'finksis) is an acronym from Smoothed Particle *
5  * Hydrodynamics for industrial compleX systems. It provides C++ APIs for *
6  * physical accurate simulation and aims to model coupled industrial dynamic *
7  * systems including fluid, solid, multi-body dynamics and beyond with SPH *
8  * (smoothed particle hydrodynamics), a meshless computational method using *
9  * particle discretization. *
10  * *
11  * SPHinXsys is partially funded by German Research Foundation *
12  * (Deutsche Forschungsgemeinschaft) DFG HU1527/6-1, HU1527/10-1 *
13  * and HU1527/12-1. *
14  * *
15  * Portions copyright (c) 2017-2020 Technical University of Munich and *
16  * the authors' affiliations. *
17  * *
18  * Licensed under the Apache License, Version 2.0 (the "License"); you may *
19  * not use this file except in compliance with the License. You may obtain a *
20  * copy of the License at http://www.apache.org/licenses/LICENSE-2.0. *
21  * *
22  * --------------------------------------------------------------------------*/
29 #ifndef FLUID_PARTICLES_H
30 #define FLUID_PARTICLES_H
31 
32 #include "base_particles.hpp"
34 
36 
37 namespace SPH
38 {
39  class Fluid;
40  class Oldroyd_B_Fluid;
41  class CompressibleFluid;
42 
48  {
49  public:
53  StdLargeVec<int> surface_indicator_;
55  FluidParticles(SPHBody &sph_body, Fluid *fluid);
56  virtual ~FluidParticles(){};
57 
58  virtual void initializeOtherVariables() override;
59  virtual FluidParticles *ThisObjectPtr() override { return this; };
60  };
61 
67  {
68  public:
72  ViscoelasticFluidParticles(SPHBody &sph_body, Oldroyd_B_Fluid *oldroyd_b_fluid);
73  virtual ~ViscoelasticFluidParticles(){};
74 
75  virtual void initializeOtherVariables() override;
76  virtual ViscoelasticFluidParticles *ThisObjectPtr() override { return this; };
77  };
78 
84  {
85  public:
88  StdLargeVec<Vecd> dmom_dt_prior_;
91  StdLargeVec<Real> dE_dt_prior_;
92 
93  CompressibleFluidParticles(SPHBody &sph_body, CompressibleFluid *compressible_fluid);
94  virtual ~CompressibleFluidParticles(){};
95 
96  virtual void initializeOtherVariables() override;
97  virtual CompressibleFluidParticles *ThisObjectPtr() override { return this; };
98  };
99 
105  {
106  public:
114 
115  virtual void initializeOtherVariables() override;
116  virtual WeaklyCompressibleFluidParticles *ThisObjectPtr() override { return this; };
117  };
118 }
119 #endif // FLUID_PARTICLES_H
StdLargeVec< Matd > tau_
Definition: fluid_particles.h:69
Particles with essential (geometric and kinematic) data. There are three types of particles, all par...
Definition: base_particles.h:81
linear EOS with relaxation time and polymetric viscosity.
Definition: weakly_compressible_fluid.h:113
StdLargeVec< Real > E_
Definition: fluid_particles.h:89
Compressible fluid particles.
Definition: fluid_particles.h:83
WeaklyCompressible fluid particles.
Definition: fluid_particles.h:104
StdLargeVec< Matd > dtau_dt_
Definition: fluid_particles.h:70
StdLargeVec< Real > dE_dt_
Definition: fluid_particles.h:90
virtual void initializeOtherVariables() override
Definition: fluid_particles.cpp:45
virtual void initializeOtherVariables() override
Definition: fluid_particles.cpp:85
Viscoelastic fluid particles.
Definition: fluid_particles.h:66
StdLargeVec< int > surface_indicator_
Definition: fluid_particles.h:53
Base class of all fluids.
Definition: base_material.h:89
StdLargeVec< Real > p_
Definition: fluid_particles.h:50
StdLargeVec< Real > rho_sum_
Definition: fluid_particles.h:52
StdLargeVec< Vecd > dmom_dt_
Definition: fluid_particles.h:109
Here, we define the algorithm classes for computing derived solid dynamics varabales.
This is the implementation of the template functions in base_particles.h.
SPHBody is a base body with basic data and functions. Its derived class can be a real fluid body...
Definition: base_body.h:61
StdLargeVec< Vecd > mom_
Definition: fluid_particles.h:108
This is the base class of particle generator, which generates particles with given positions and volu...
StdLargeVec< Real > dmass_dt_
Definition: fluid_particles.h:107
virtual void initializeOtherVariables() override
Definition: fluid_particles.cpp:19
StdLargeVec< Vecd > mom_
Definition: fluid_particles.h:86
Ideal gas equation of state (EOS).
Definition: compressible_fluid.h:40
StdLargeVec< Vecd > dmom_dt_prior_
Definition: fluid_particles.h:110
StdLargeVec< Vecd > dmom_dt_
Definition: fluid_particles.h:87
StdLargeVec< Real > drho_dt_
Definition: fluid_particles.h:51
virtual void initializeOtherVariables() override
Definition: fluid_particles.cpp:65
Definition: solid_body_supplementary.cpp:9
newtonian fluid particles.
Definition: fluid_particles.h:47