chombo-discharge
Loading...
Searching...
No Matches
CD_DataOps.H
Go to the documentation of this file.
1/* chombo-discharge
2 * Copyright © 2021 SINTEF Energy Research.
3 * Please refer to Copyright.txt and LICENSE in the chombo-discharge root directory.
4 */
5
12#ifndef CD_DataOps_H
13#define CD_DataOps_H
14
15// Our includes
16#include <CD_Average.H>
17#include <CD_EBAMRData.H>
18#include <CD_Decorations.H>
19#include <CD_MFInterfaceFAB.H>
20#include <CD_NamespaceHeader.H>
21
28{
29public:
35 template <typename T>
36 static void
38
43 template <typename T>
44 static int
45 sgn(const T a_value);
46
54 static void
58 const int a_tanGhosts);
59
67 static void
71 const int a_tanGhosts);
72
81 static void
83
97 static void
101 const int a_tanGhosts,
102 const Interval& a_faceVars,
103 const Interval& a_cellVars,
104 const Average& a_average);
105
119 static void
122 const ProblemDomain& a_domain,
123 const int a_tanGhosts,
124 const Interval& a_faceVars,
125 const Interval& a_cellVars,
126 const Average& a_average);
127
135 static void
137
145 static void
148 const ProblemDomain& a_domain);
149
158 static void
162 const Real a_a,
163 const Real a_b) noexcept;
164
171 static void
173
180 static void
182
190 static void
192
201 static void
203
211 static void
213
221 static void
223
231 static void
233
244 static void
245 filterSmooth(EBAMRCellData& a_data, const Real a_alpha, const int a_stride, const bool a_zeroEB) noexcept;
246
257 static void
258 filterSmooth(LevelData<EBCellFAB>& a_data, const Real a_alpha, const int a_stride, const bool a_zeroEB) noexcept;
259
266 static void
267 incr(MFAMRCellData& a_lhs, const MFAMRCellData& a_rhs, const Real a_scale) noexcept;
268
275 static void
277
284 static void
285 incr(EBAMRCellData& a_lhs, const EBAMRCellData& a_rhs, const Real& a_scale) noexcept;
286
293 static void
295
302 static void
304
311 static void
313
320 static void
321 incr(EBFluxFAB& a_lhs, const EBFluxFAB& a_rhs, const Real& a_scale);
322
329 static void
331
338 static void
340
347 static void
349
356 static void
358
366 static void
368
376 static void
378
386 static void
388
396 static void
398
404 static void
406
412 static void
414
420 static void
422
430 template <typename T>
431 static void
433
441 static void
442 divide(EBAMRCellData& a_lhs, const EBAMRCellData& a_rhs, const int a_lhsComp, const int a_rhsComp);
443
451 static void
453
459 static void
461
467 static void
469
476 static void
478
486 static void
488
495 static void
497
505 static void
509
516 static void
518
525 static void
527
534 static void
536
543 static void
545
552 static void
554
561 static void
563
570 static void
572
579 static void
581
588 static void
590
597 static void
599
608 static void
609 getMaxMin(Real& max, Real& min, EBAMRCellData& a_data, const int a_comp);
610
618 static void
620
629 static void
630 getMaxMin(Real& a_max, Real& a_min, EBAMRFluxData& a_data, const int a_comp) noexcept;
631
639 static void
641
649 static void
651
659 static void
661
668 static void
670
678 static void
680
687 static void
689
695 static void
697
703 static void
705
711 static void
713
720 static void
721 kappaSum(Real& a_mass, const LevelData<EBCellFAB>& a_lhs, const int a_comp = 0);
722
727 static void
729
734 static void
736
741 static void
743
748 static void
750
755 static void
757
764 static void
766
773 static void
775
782 static void
784
791 static void
793
800 static void
802
809 static void
811
818 static void
820
827 static void
829
836 static void
838
845 static void
847
855 static Real
856 norm(const LevelData<EBCellFAB>& a_data, const int a_p, const int a_comp = 0);
857
867 static void
868 plus(EBAMRCellData& a_lhs, const EBAMRCellData& a_rhs, const int a_srcComp, const int a_dstComp, const int a_numComp);
869
879 static void
882 const int a_srcComp,
883 const int a_dstComp,
884 const int a_numComp);
885
891 static void
892 scale(MFAMRCellData& a_lhs, const Real& a_scale) noexcept;
893
899 static void
900 scale(LevelData<MFCellFAB>& a_lhs, const Real& a_scale) noexcept;
901
907 static void
909
915 static void
917
923 static void
925
931 static void
932 scale(EBAMRCellData& a_lhs, const Real a_scale) noexcept;
933
939 static void
940 scale(LevelData<EBCellFAB>& a_lhs, const Real a_scale) noexcept;
941
947 static void
949
955 static void
957
963 static void
965
972 static void
974
981 static void
983
989 static void
991
997 static void
999
1006 static void
1007 setCoveredValue(EBAMRFluxData& a_lhs, const int a_comp, const Real a_value) noexcept;
1008
1015 static void
1016 setCoveredValue(LevelData<EBFluxFAB>& a_lhs, const int a_comp, const Real a_value) noexcept;
1017
1023 static void
1025
1031 static void
1033
1040 static void
1042
1052 static void
1054 const std::function<Real(const RealVect)>& a_function,
1055 const RealVect a_probLo,
1056 const Vector<Real>& a_dx,
1057 const int a_comp);
1058
1068 static void
1070 const std::function<Real(const RealVect)>& a_function,
1071 const RealVect a_probLo,
1072 const Real a_dx,
1073 const int a_comp);
1074
1084 static void
1086 const std::function<Real(const RealVect)>& a_function,
1087 const RealVect a_probLo,
1088 const Vector<Real>& a_dx,
1089 const int a_comp);
1090
1100 static void
1102 const std::function<Real(const RealVect)>& a_function,
1103 const RealVect a_probLo,
1104 const Real a_dx,
1105 const int a_comp);
1106
1116 static void
1118 const std::function<Real(const RealVect)>& a_function,
1119 const RealVect a_probLo,
1120 const Vector<Real>& a_dx,
1121 const int a_comp);
1122
1132 static void
1134 const std::function<Real(const RealVect)>& a_function,
1135 const RealVect a_probLo,
1136 const Real a_dx,
1137 const int a_comp);
1138
1148 static void
1150 const std::function<Real(const RealVect)>& a_function,
1151 const RealVect a_probLo,
1152 const Vector<Real>& a_dx,
1153 const int a_comp);
1154
1164 static void
1166 const std::function<Real(const RealVect)>& a_function,
1167 const RealVect a_probLo,
1168 const Real a_dx,
1169 const int a_comp);
1170
1180 static void
1183 const RealVect a_probLo,
1184 const Vector<Real>& a_dx);
1185
1195 static void
1198 const RealVect a_probLo,
1199 const Real a_dx);
1200
1206 static void
1208
1214 static void
1215 setValue(EBAMRCellData& a_lhs, const Real a_value, const int a_comp);
1216
1222 static void
1224
1230 static void
1232
1238 static void
1240
1246 static void
1248
1254 static void
1256
1262 static void
1264
1270 static void
1271 setValue(MFAMRCellData& a_lhs, const Real& a_value) noexcept;
1272
1278 static void
1279 setValue(LevelData<MFCellFAB>& a_lhs, const Real& a_value) noexcept;
1280
1286 static void
1288
1294 static void
1296
1302 static void
1304
1310 static void
1312
1318 static void
1320
1326 static void
1328
1333 static void
1334 sum(Real& a_value);
1335
1341 static void
1343
1349 static void
1351
1356 static void
1358
1363 static void
1365
1372 static void
1374
1381 static void
1383
1391 static void
1392 vectorLength(EBCellFAB& a_lhs, const EBCellFAB& a_rhs, const Box& box);
1393
1400 static void
1402
1409 static void
1411
1418 static void
1419 vectorLength2(EBCellFAB& a_lhs, const EBCellFAB& a_rhs, const Box& box);
1420
1428 static void
1430
1438 static bool
1440
1447 static void
1449};
1450
1451#include <CD_NamespaceFooter.H>
1452
1453#include <CD_DataOpsImplem.H>
1454
1455#endif
Declaration of averaging methods.
Average
Various averaging methods.
Definition CD_Average.H:24
Implementation of CD_DataOps.H.
Class for holding data across EBAMR hierarchies.
Declaration of a class that allocates irregular data holders over the interface between two phases.
Agglomeration of useful data operations.
Definition CD_DataOps.H:28
static void averageCellVelocityToFaceVelocity(EBAMRFluxData &a_faceData, const EBAMRCellData &a_cellData, const Vector< ProblemDomain > &a_domains, const int a_tanGhosts)
Routine which computes the average of a cell-centered quantity on faces for the normal component only...
Definition CD_DataOps.cpp:27
static void scale(MFAMRCellData &a_lhs, const Real &a_scale) noexcept
Scale data by factor.
Definition CD_DataOps.cpp:2398
static void averageFaceToCell(EBAMRCellData &a_cellData, const EBAMRFluxData &a_fluxData, const Vector< ProblemDomain > &a_domains)
Average all components of face centered data to cell centers.
Definition CD_DataOps.cpp:369
static void divideFallback(EBAMRCellData &a_numerator, const EBAMRCellData &a_denominator, const Real a_fallback)
Divide data. If the denominator is zero, set the value to a fallback option.
Definition CD_DataOps.cpp:1317
static void volumeScale(EBAMRCellData &a_data, const Vector< Real > &a_dx)
Scale data by dx^SpaceDim.
Definition CD_DataOps.cpp:2146
static void vectorLength(EBAMRCellData &a_lhs, const EBAMRCellData &a_rhs)
Compute the vector length of a data holder. Sets a_lhs = |a_rhs| where a_rhs contains SpaceDim compon...
Definition CD_DataOps.cpp:3410
static void getMaxMinNorm(Real &a_max, Real &a_min, EBAMRCellData &data)
Get maximum and minimum value of normed data.
Definition CD_DataOps.cpp:1797
static void compute(EBAMRCellData &a_data, const std::function< Real(const Real a_cellValue)> &a_func) noexcept
Compute a new value given the old cell value.
Definition CD_DataOps.cpp:480
static void floor(EBAMRCellData &a_lhs, const Real a_value)
Floor values in data holder. This sets all values below a_value to a_value.
Definition CD_DataOps.cpp:1394
static void squareRoot(EBAMRFluxData &a_lhs)
Compute the square root of the input data.
Definition CD_DataOps.cpp:3289
static int sgn(const T a_value)
Sign function. Returns +/- if the value is > 0 or < 0.
Definition CD_DataOpsImplem.H:42
static void filterSmooth(EBAMRCellData &a_data, const Real a_alpha, const int a_stride, const bool a_zeroEB) noexcept
Apply a convolved filter phi = alpha * phi_i + 0.5*(1-alpha) * [phi_(i+s) + phi_(i-s)] in each direct...
Definition CD_DataOps.cpp:660
static void divide(EBAMRCellData &a_lhs, const EBAMRCellData &a_rhs, const int a_lhsComp, const int a_rhsComp)
Divide one data holder by another. Does specified components.
Definition CD_DataOps.cpp:1174
static void max(EBAMRCellData &a_data, const EBAMRCellData &a_data1, const EBAMRCellData &a_data2)
Make a_data = max(a_data1, a_data2)
Definition CD_DataOps.cpp:1590
static void setInvalidValue(EBAMRCellData &a_lhs, const Vector< int > &a_refRat, const Real a_value)
Set value in cells that are covered by a finer grid.
Definition CD_DataOps.cpp:2663
static void computeMinValidBox(RealVect &a_lo, RealVect &a_hi, const RealVect a_normal, const RealVect a_centroid)
Compute the tightest possible valid box around a cut-cell volume.
Definition CD_DataOps.cpp:3581
static void getMaxMin(Real &max, Real &min, EBAMRCellData &a_data, const int a_comp)
Get maximum and minimum value of specified component.
Definition CD_DataOps.cpp:1651
static void shiftCorners(Vector< RealVect > &a_corners, const RealVect &a_distance)
Shift pointes by a specified distance.
Definition CD_DataOps.cpp:3665
static void divideByScalar(EBAMRCellData &a_lhs, const EBAMRCellData &a_rhs)
Divide all components in a data holder by a scalar value.
Definition CD_DataOps.cpp:1210
static void multiply(EBAMRCellData &a_lhs, const EBAMRCellData &a_rhs)
Multiply data holder by another data holder.
Definition CD_DataOps.cpp:2156
static void kappaScale(EBAMRCellData &a_data) noexcept
Scale data by volume fraction.
Definition CD_DataOps.cpp:2058
static void invert(EBFluxFAB &a_data)
Invert data.
static void sum(Real &a_value)
Compute the sum of the input value.
Definition CD_DataOps.cpp:3272
static void incr(MFAMRCellData &a_lhs, const MFAMRCellData &a_rhs, const Real a_scale) noexcept
Function which increments data in the form a_lhs = a_lhs + a_rhs*a_scale for all components.
Definition CD_DataOps.cpp:801
static void setCoveredValue(EBAMRCellData &a_lhs, const int a_comp, const Real a_value)
Set value in covered cells. Does specified component.
Definition CD_DataOps.cpp:2552
static void setValue(LevelData< MFInterfaceFAB< T > > &a_lhs, const T &a_value)
Set value in an MFInterfaceFAB data holder.
Definition CD_DataOpsImplem.H:23
static void dotProduct(MFAMRCellData &a_result, const MFAMRCellData &a_data1, const MFAMRCellData &a_data2)
Compote the cell-wise dot product between two data holders.
Definition CD_DataOps.cpp:533
static void roof(EBAMRCellData &a_lhs, const Real a_value)
Roof values in data holder. This sets all values above a_value to a_value.
Definition CD_DataOps.cpp:1492
static bool allCornersInsideEb(const Vector< RealVect > &a_corners, const RealVect a_normal, const RealVect a_centroid)
Check if all corners/points are inside an EB.
Definition CD_DataOps.cpp:3648
static void invert(EBAMRFluxData &a_data)
Invert data.
Definition CD_DataOps.cpp:1947
static Real norm(const LevelData< EBCellFAB > &a_data, const int a_p, const int a_comp=0)
Compute specified norm of data.
Definition CD_DataOps.cpp:2330
static void plus(EBAMRCellData &a_lhs, const EBAMRCellData &a_rhs, const int a_srcComp, const int a_dstComp, const int a_numComp)
General addition operator for adding together data. The user can choose which components to add.
Definition CD_DataOps.cpp:866
static void kappaSum(Real &a_mass, const LevelData< EBCellFAB > &a_lhs, const int a_comp=0)
Compute the kappa-weighted sum of the input data. Assumes one component.
Definition CD_DataOps.cpp:2014
static void averageCellToFace(EBAMRFluxData &a_faceData, const EBAMRCellData &a_cellData, const Vector< ProblemDomain > &a_domains)
Average all components of the cell-centered data to faces.
Definition CD_DataOps.cpp:153
static void vectorLength2(EBAMRCellData &a_lhs, const EBAMRCellData &a_rhs)
Compute the squared vector length of a data holder. Sets a_lhs = |a_rhs|^2 where a_rhs contains Space...
Definition CD_DataOps.cpp:3497
static void copy(MFAMRCellData &a_dst, const MFAMRCellData &a_src)
Copy data from one data holder to another.
Definition CD_DataOps.cpp:1132
static void multiplyScalar(EBAMRCellData &a_lhs, const EBAMRCellData &a_rhs)
Multiply data holder by another data holder.
Definition CD_DataOps.cpp:2253
static void axby(LevelData< EBCellFAB > &a_lhs, const LevelData< EBCellFAB > &a_x, const LevelData< EBCellFAB > &a_y, const Real a_a, const Real a_b) noexcept
Compute lhs = a * x + b * y.
Definition CD_DataOps.cpp:460
Base class for a tracer particle solver. This solver can advance particles in a pre-defined velocity ...
Definition CD_TracerParticleSolver.H:37
TracerParticleSolver()
Default constructor.
Definition CD_TracerParticleSolverImplem.H:25