Memosa-FVM  0.2
MeshMetricsCalculator.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 _UMESHMETRICSCALCULATOR_H_
6 #define _UMESHMETRICSCALCULATOR_H_
7 
8 #include "atype.h"
9 #include "Model.h"
10 
11 #include "NumType.h"
12 #include "Array.h"
13 #include "Vector.h"
14 #include "Field.h"
15 #include "CRConnectivity.h"
16 #include "StorageSite.h"
17 #include "GeomFields.h"
18 
19 #include "Mesh.h"
20 
21 template<class T>
23 {
24 public:
25 
27  typedef Array<T> TArray;
30 
31  MeshMetricsCalculator(GeomFields& geomFields, const MeshList& meshes, bool transient=false);
32  virtual ~MeshMetricsCalculator();
33 
34  virtual void init();
35 
37 
39 
40  void recalculate();
41 
42  void recalculate_deform();
43 
44  void computeIBInterpolationMatrices(const StorageSite& particles, const int option=0);
45 
47 
48  void eraseIBInterpolationMatrices(const StorageSite& particles);
49 
50  void computeSolidInterpolationMatrices(const StorageSite& particles);
51 
53 
54  void computeGridInterpolationMatrices(const StorageSite& grids, const StorageSite& faces );
55 
56  void updateTime();
57 
58 #ifdef USING_ATYPE_TANGENT
59  void setTangentCoords(int meshID, int faceZoneID, int dim);
60 #endif
61 private:
69  bool _transient;
70 
71  virtual void calculateNodeCoordinates(const Mesh& mesh);
72 
73  virtual void calculateFaceCentroids(const Mesh& mesh);
74 
75  virtual void calculateCellCentroids(const Mesh &mesh);
76 
77  virtual void calculateFaceAreas(const Mesh& mesh);
78 
79  virtual void calculateFaceAreaMag(const Mesh& mesh);
80 
81  virtual void calculateCellVolumes(const Mesh& mesh);
82 
83  void computeIBInterpolationMatrices(const Mesh& mesh,
84  const StorageSite& particles,
85  const int option);
86  void computeIBInterpolationMatricesCells(const Mesh& mesh);
87 
88  void computeSolidInterpolationMatrices(const Mesh& mesh,
89  const StorageSite& particles);
91  const StorageSite& particles);
92  void computeGridInterpolationMatrices(const Mesh& mesh,
93  const StorageSite& grids,
94  const StorageSite& faces );
95 
96 };
97 
98 #endif
Array< VectorT3 > VectorT3Array
virtual void calculateCellVolumes(const Mesh &mesh)
void computeGridInterpolationMatrices(const StorageSite &grids, const StorageSite &faces)
void eraseIBInterpolationMatrices(const StorageSite &particles)
Definition: Field.h:14
Definition: Mesh.h:49
virtual void calculateFaceCentroids(const Mesh &mesh)
MeshMetricsCalculator(GeomFields &geomFields, const MeshList &meshes, bool transient=false)
virtual void calculateNodeCoordinates(const Mesh &mesh)
void computeSolidInterpolationMatrices(const StorageSite &particles)
Definition: Model.h:13
virtual void calculateCellCentroids(const Mesh &mesh)
void computeIBandSolidInterpolationMatrices(const StorageSite &particles)
virtual void calculateFaceAreas(const Mesh &mesh)
virtual void calculateFaceAreaMag(const Mesh &mesh)
Definition: Array.h:14
void computeIBInterpolationMatrices(const StorageSite &particles, const int option=0)
vector< Mesh * > MeshList
Definition: Mesh.h:439