SPHinXsys  alpha version
general_solid_dynamics.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 * --------------------------------------------------------------------------*/
30 #ifndef GENERAL_SOLID_DYNAMICS_H
31 #define GENERAL_SOLID_DYNAMICS_H
32 
33 #include "all_particle_dynamics.h"
34 #include "general_dynamics.h"
35 #include "base_kernel.h"
36 #include "all_body_relations.h"
37 #include "solid_body.h"
38 #include "solid_particles.h"
39 #include "elastic_solid.h"
40 
41 
42 
43 namespace SPH
44 {
45  namespace solid_dynamics
46  {
47  //----------------------------------------------------------------------
48  // for general solid dynamics
49  //----------------------------------------------------------------------
50  typedef DataDelegateSimple<SolidBody, SolidParticles, Solid> SolidDataSimple;
51  typedef DataDelegateInner<SolidBody, SolidParticles, Solid> SolidDataInner;
52 
59  {
60  public:
61  explicit SolidDynamicsInitialCondition(SolidBody &solid_body)
62  : ParticleDynamicsSimple(solid_body), SolidDataSimple(solid_body){};
63  virtual ~SolidDynamicsInitialCondition(){};
64  };
65 
71  {
72  public:
73  explicit CorrectConfiguration(BaseBodyRelationInner &inner_relation);
74  virtual ~CorrectConfiguration(){};
75 
76  protected:
77  StdLargeVec<Real> &Vol_;
79  virtual void Interaction(size_t index_i, Real dt = 0.0) override;
80  };
81 
82  }
83 }
84 #endif //GENERAL_SOLID_DYNAMICS_H
prepare data for inner particle dynamics
Definition: base_particle_dynamics.h:216
Simple particle dynamics without considering particle interaction.
Definition: particle_dynamics_algorithms.h:48
This is the particle dynamics aplliable for all type bodies.
obtain the corrected initial configuration in strong form
Definition: general_solid_dynamics.h:70
Declaration of solidbody which is used for Solid BCs and derived from RealBody.
Definition: solid_body.h:46
This is the class for particle interaction with other particles.
Definition: particle_dynamics_algorithms.h:115
This is the derived class of base particles.
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
This is the base classes of kernel functions. Implementation will be implemented in derived classes...
These are classes for define properties of elastic solid materials. These classes are based on isotro...
This is the class for bodies used for solid BCs or Elastic structure.
set initial condition for solid fluid body This is a abstract class to be override for case specific ...
Definition: general_solid_dynamics.h:58
Definition: solid_body_supplementary.cpp:9