SPHinXsys  alpha version
solid_body.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  * HU1527/12-1 and HU1527/12-4. *
14  * *
15  * Portions copyright (c) 2017-2022 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 SOLID_BODY_H
30 #define SOLID_BODY_H
31 
32 #include "base_body.h"
33 #include "base_body_part.h"
34 
35 namespace SPH
36 {
40  class SPHSystem;
41  class SolidParticles;
46  class SolidBody : public RealBody
47  {
48  public:
49  SolidBody(SPHSystem &system, SharedPtr<Shape> shape_ptr);
50  virtual ~SolidBody(){};
51  virtual SolidBody *ThisObjectPtr() override { return this; };
52  };
53 
61  {
62  protected:
63  UniquePtrKeeper<SimTK::MassProperties> mass_properties_ptr_keeper_;
64 
65  public:
66  Vec3d initial_mass_center_;
67  SimTK::MassProperties *body_part_mass_properties_;
68 
69  SolidBodyPartForSimbody(SPHBody &body, SharedPtr<Shape> shape_ptr);
70  virtual ~SolidBodyPartForSimbody(){};
71 
72  protected:
73  Real solid_body_density_;
74  SolidParticles *solid_particles_;
75  private:
76  void setMassProperties();
77  };
78 }
79 #endif //SOLID_BODY_H
This is the base classes of body parts.
A body part with the collection of particles within by a prescribed shape.
Definition: base_body_part.h:119
Declaration of solidbody which is used for Solid BCs and derived from RealBody.
Definition: solid_body.h:46
A group of particles with solid body particle data.
Definition: solid_particles.h:49
This is the base classes of SPH bodies. The real body is for that with cell linked list and the ficti...
A SolidBodyPart for coupling with Simbody. The mass, origin, and unit inertial matrix are computed...
Definition: solid_body.h:60
SPHBody is a base body with basic data and functions. Its derived class can be a real fluid body...
Definition: base_body.h:61
The SPH system managing objects in the system level.
Definition: sph_system.h:46
Derived body with inner particle configuration or inner interactions. After construction, the particle and material must be specified.
Definition: base_body.h:182
Definition: solid_body_supplementary.cpp:9