Overture  Version 25
UnstructuredOperators.h
Go to the documentation of this file.
1 #ifndef __OV_UNSTRUCTUREDOPERATORS_H__
2 #define __OV_UNSTRUCTUREDOPERATORS_H__
3 
4 #include "MappedGrid.h"
5 #include "MappedGridOperators.h"
6 #include "UnstructuredMapping.h"
7 
9 {
10 public:
11  UnstructuredOperators() : mg(0) { }
12  UnstructuredOperators(MappedGrid &mg_) : mg(&mg_) { }
13 
14  virtual ~UnstructuredOperators() { }
15 
16  virtual int derivative(const MappedGridOperators::derivativeTypes &derivativeType,
17  const realArray &u,
18  const realArray &scalar,
19  realArray &ux,
20  const Index & I1 = nullIndex,
21  const Index & C = nullIndex);
22 
23  virtual int undividedDerivative(const MappedGridOperators::derivativeTypes &derivativeType,
24  const realArray &u,
25  const realArray &scalar,
26  realArray &ux,
27  const Index & I1 = nullIndex,
28  const Index & C = nullIndex);
29 
30  virtual int assignCoefficients(const MappedGridOperators::derivativeTypes &derivativeType,
31  realArray &coeff,
32  const realArray &scalar,
33  const Index & I1 = nullIndex,
34  const Index & E = nullIndex,
35  const Index & C = nullIndex);
36 
38  const Index & C0,
39  const BCTypes::BCNames & bcType,
40  const int & bc,
41  const real & scalarData,
42  const RealArray & arrayData,
43  const RealArray & arrayDataD_,
44  RealArray *forcinga[2][3],
45  const realMappedGridFunction & gfData,
46  const real & t,
47  const IntegerArray & uC, const IntegerArray & fC, const IntegerDistributedArray & mask,
48  const BoundaryConditionParameters & bcParameters,
49  const int bcOption,
50  const int & grid =0 );
51 
52 protected:
53 
55  const Index & Components,
56  const BCTypes::BCNames & boundaryConditionType,
57  const int & bc,
58  const real & scalarData,
59  const RealArray & arrayData,
60  const RealArray & arrayDataD,
61  const realMappedGridFunction & gfData,
62  const real & t,
63  const IntegerArray & uC, const IntegerArray & fC, const IntegerDistributedArray & mask,
64  const BoundaryConditionParameters & bcParameters,
65  const int bcOption,
66  const int & grid );
67 
68 private:
69  MappedGrid *mg;
70 
71 };
72 
73 namespace UNSTRUCTURED_OPS_FV2 {
74 
75  void divergence_uFV2(const UnstructuredMapping &umap,
76  const realArray &u,
77  const UnstructuredMapping::EntityTypeEnum u_centering,
78  const UnstructuredMapping::EntityTypeEnum surface_centering,
79  const UnstructuredMapping::EntityTypeEnum ux_centering,
80  const realArray &surfaceNormals, const realArray &surfaceAreas, const realArray &volumes,
81  const realArray &scalar, const Index &C,
82  realArray &ux);
83 
84  void xi_uFV2(int d, const UnstructuredMapping &umap,
85  const realArray &u,
86  const UnstructuredMapping::EntityTypeEnum u_centering,
87  const UnstructuredMapping::EntityTypeEnum surface_centering,
88  const UnstructuredMapping::EntityTypeEnum ux_centering,
89  const realArray &surfaceNormals, const realArray &surfaceAreas, const realArray &volumes,
90  const realArray &scalar, const Index &C,
91  realArray &ux);
92 
93  void xixj_uFV2(int d1, int d2, const UnstructuredMapping &umap,
94  const realArray &u,
95  const UnstructuredMapping::EntityTypeEnum u_centering,
96  const UnstructuredMapping::EntityTypeEnum surface_centering,
97  const UnstructuredMapping::EntityTypeEnum ux_centering,
98  const realArray &surfaceNormals, const realArray &surfaceAreas, const realArray &volumes,
99  const realArray &scalar,const Index &C,
100  realArray &uxx);
101 
102  void u_xi_uFV2(int d, const UnstructuredMapping &umap,
103  const realArray &u,
104  const UnstructuredMapping::EntityTypeEnum u_centering,
105  const UnstructuredMapping::EntityTypeEnum surface_centering,
106  const UnstructuredMapping::EntityTypeEnum ux_centering,
107  const realArray &surfaceNormals, const realArray &surfaceAreas,
108  const realArray &scalar, const Index &C,
109  realArray &ux);
110 
111  void u_xixj_uFV2(int d1, int d2, const UnstructuredMapping &umap,
112  const realArray &u,
113  const UnstructuredMapping::EntityTypeEnum u_centering,
114  const UnstructuredMapping::EntityTypeEnum surface_centering,
115  const UnstructuredMapping::EntityTypeEnum ux_centering,
116  const realArray &scalar,const Index &C,
117  realArray &uxx);
118 
119  void u_divergence_uFV2(const UnstructuredMapping &umap,
120  const realArray &u,
121  const UnstructuredMapping::EntityTypeEnum u_centering,
122  const UnstructuredMapping::EntityTypeEnum surface_centering,
123  const UnstructuredMapping::EntityTypeEnum ux_centering,
124  const realArray &surfaceNormals,
125  const realArray &scalar, const Index &C,
126  realArray &ux);
127 }
128 
129 #endif