SPHinXsys  alpha version
fluid_surface_complex.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 * --------------------------------------------------------------------------*/
31 #ifndef FLUID_SURFACE_COMPLEX_H
32 #define FLUID_SURFACE_COMPLEX_H
33 
34 #include "fluid_surface_inner.hpp"
36 
37 namespace SPH
38 {
39  namespace fluid_dynamics
40  {
46  {
47  public:
49  BaseBodyRelationContact &contact_relation, Real thereshold = 0.75);
50  explicit FreeSurfaceIndicationComplex(ComplexBodyRelation &complex_relation, Real thereshold = 0.75);
51  virtual ~FreeSurfaceIndicationComplex(){};
52 
53  protected:
54  StdVec<Real> contact_inv_rho0_;
55  StdVec<StdLargeVec<Real> *> contact_mass_;
56 
57  virtual void Interaction(size_t index_i, Real dt = 0.0) override;
58  };
61 
66 
72  {
73  public:
76  virtual ~ColorFunctionGradientComplex(){};
77 
78  protected:
79  StdVec<StdLargeVec<Real> *> contact_Vol_;
80 
81  virtual void Interaction(size_t index_i, Real dt = 0.0) override;
82  };
83 
89  {
90  public:
91  SurfaceNormWithWall(BaseBodyRelationContact &contact_relation, Real contact_angle);
92  virtual ~SurfaceNormWithWall(){};
93 
94  protected:
95  Real contact_angle_;
96  Real smoothing_length_;
97  Real particle_spacing_;
98  StdLargeVec<int> &surface_indicator_;
99  StdLargeVec<Vecd> &surface_norm_;
100  StdLargeVec<Real> &pos_div_;
101  StdVec<StdLargeVec<Vecd> *> wall_n_;
102 
103  virtual void Interaction(size_t index_i, Real dt = 0.0) override;
104  };
105  }
106 }
107 #endif //FLUID_SURFACE_COMPLEX_H
The base relation between a SPH body and its contact SPH bodies.
Definition: base_body_relation.h:136
indicate the particles near the interface of a fluid-fluid interaction and computing norm ...
Definition: fluid_surface_inner.h:175
indicate the particles near the free fluid surface.
Definition: fluid_surface_complex.h:45
computing density by summation considering contribution from contact bodies
Definition: fluid_dynamics_complex.h:76
indicate the particles near the free surface of a fluid body. Note that, SPHinXsys does not require t...
Definition: fluid_surface_inner.h:46
using the spatial-temporal method to indicate the surface particles to avoid mis-judgement.
Definition: fluid_surface_inner.h:70
Modify surface norm when contact with wall.
Definition: fluid_surface_complex.h:88
virtual void Interaction(size_t index_i, Real dt=0.0) override
Definition: fluid_surface_complex.cpp:102
prepare data for contact particle dynamics
Definition: base_particle_dynamics.h:240
The relation combined an inner and a contact body relation. The interaction is in a inner-boundary-co...
Definition: complex_body_relation.h:42
This is the class for particle interaction with other particles.
Definition: particle_dynamics_algorithms.h:115
The abstract relation within a SPH body.
Definition: base_body_relation.h:117
indicate the particles near the free fluid surface.
Definition: fluid_surface_complex.h:71
Definition: solid_body_supplementary.cpp:9