Memosa-FVM  0.2
IBManager.h
Go to the documentation of this file.
1 // This file os part of FVM
2 // Copyright (c) 2012 FVM Authors
3 // See LICENSE file for terms.
4 
5 #ifndef _IBMANAGER_H_
6 #define _IBMANAGER_H_
7 
8 #include "Mesh.h"
9 #include "GeomFields.h"
10 #include <set>
11 
12 class KSearchTree;
13 class AABB;
14 
21 struct
23 {
25  mesh(0),
26  cell(-1),
27  distanceSquared(0)
28  {}
29 
30  const Mesh* mesh;
31  int cell;
33  vector<int> neighbors;
34 };
35 struct
37 {
39  mesh(0),
40  IBFace(-1),
41  distanceSquared(0)
42  {}
43 
44  const Mesh* mesh;
45  int IBFace;
47  vector<int> neighbors;
48 };
49 struct
51  double VALUE;
52  int TAG;
53 };
54 
55 
56 
57 class IBManager
58 {
59 public:
63 
64  IBManager(GeomFields& geomFields,
65  Mesh& solidBoundaryMesh,
66  const MeshList& fluidMeshes);
67 
68  void update();
69 
75 
76 private:
77 
78  void markIntersections(Mesh& fluidMesh, AABB& sMeshesAABB);
79  int markFluid(Mesh& fluidMesh);
80  int markSolid(Mesh& fluidMesh);
81  void markIBTypePlus(Mesh& fluidMesh);
82  void createIBFaces(Mesh& fluidMesh);
84  KSearchTree& fluidCellsTree,
85  KSearchTree& solidFacesTree);
86  void
88  KSearchTree& fluidCellsTree,
89  vector<NearestCell>& nearest);
90  //void
91  //indNearestIBFaceForSolidFaces(Mesh& mesh,
92  // KSearchTree& IBFacesTree,
93  // vector<NearestIBFace>& nearestIB);
94 
96  KSearchTree& IBFacesTree,
97  vector<NearestCell>& nearest);
98  // vector<NearestIBFace>& nearestIB);
99  void CRConnectivityPrintFile(const CRConnectivity& conn, const string& name, const int procID) const;
100 
103 };
104 #endif
void markIntersections(Mesh &fluidMesh, AABB &sMeshesAABB)
Definition: IBManager.cpp:203
vector< int > neighbors
Definition: IBManager.h:33
void CRConnectivityPrintFile(const CRConnectivity &conn, const string &name, const int procID) const
Definition: IBManager.cpp:1006
void createSolidInterpolationStencil(Mesh &mesh, KSearchTree &IBFacesTree, vector< NearestCell > &nearest)
Definition: IBManager.cpp:844
Vector< double, 3 > Vec3D
Definition: IBManager.h:60
double distanceSquared
Definition: IBManager.h:32
int fluidNeighborsPerIBFace
Definition: IBManager.h:70
int markSolid(Mesh &fluidMesh)
Definition: IBManager.cpp:380
Definition: Mesh.h:49
int markFluid(Mesh &fluidMesh)
Definition: IBManager.cpp:327
void update()
Definition: IBManager.cpp:32
const Mesh * mesh
Definition: IBManager.h:30
vector< int > neighbors
Definition: IBManager.h:47
void createIBInterpolationStencil(Mesh &mesh, KSearchTree &fluidCellsTree, KSearchTree &solidFacesTree)
Definition: IBManager.cpp:594
double distanceSquared
Definition: IBManager.h:46
Array< int > IntArray
Definition: IBManager.h:62
double VALUE
Definition: IBManager.h:51
IBManager(GeomFields &geomFields, Mesh &solidBoundaryMesh, const MeshList &fluidMeshes)
Definition: IBManager.cpp:20
void markIBTypePlus(Mesh &fluidMesh)
Definition: IBManager.cpp:407
Definition: AABB.h:29
void createIBFaces(Mesh &fluidMesh)
Definition: IBManager.cpp:498
int solidNeighborsPerIBFace
Definition: IBManager.h:72
Mesh & _solidBoundaryMesh
Definition: IBManager.h:74
int IBNeighborsPerSolidFace
Definition: IBManager.h:73
Definition: Array.h:14
const MeshList _fluidMeshes
Definition: IBManager.h:102
void findNearestCellForSolidFaces(Mesh &mesh, KSearchTree &fluidCellsTree, vector< NearestCell > &nearest)
Definition: IBManager.cpp:759
Array< Vec3D > Vec3DArray
Definition: IBManager.h:61
GeomFields & _geomFields
Definition: IBManager.h:101
const Mesh * mesh
Definition: IBManager.h:44
int fluidNeighborsPerSolidFace
Definition: IBManager.h:71
vector< Mesh * > MeshList
Definition: Mesh.h:439