Chombo + EB + MF  3.2
FourthOrderTensorInterp.H
Go to the documentation of this file.
1 #ifdef CH_LANG_CC
2 /*
3  * _______ __
4  * / ___/ / ___ __ _ / / ___
5  * / /__/ _ \/ _ \/ V \/ _ \/ _ \
6  * \___/_//_/\___/_/_/_/_.__/\___/
7  * Please refer to Copyright.txt, in Chombo's root directory.
8  */
9 #endif
10 
11 #ifndef _FOURTHORDERTENSORINTERP_H_
12 #define _FOURTHORDERTENSORINTERP_H_
13 
14 
15 #include <cmath>
16 #include <iomanip>
17 #include <sstream>
18 #include <string>
19 using std::string;
20 #include <iostream>
21 #include "parstream.H"
22 #include "CONSTANTS.H"
23 #include "AMRIO.H"
24 #include "SPMD.H"
25 #include "ParmParse.H"
26 #include "LoadBalance.H"
27 #include "FourthOrderOneDInterp.H"
28 #include "FArrayBox.H"
29 #include "IntVect.H"
30 #include "Vector.H"
31 #include "LAPACKMatrix.H"
32 
33 #include "NamespaceHeader.H"
34 
35 /// Class to manage coarse-to-fine spatial interpolation to all fine cells within a single particular coarse cell
36 
37 /**
38  */
40 {
41 public:
42  /// Default constructor
43  /**
44  Object requires define() to be called before all other functions.
45  */
47 
48 
49 
50  /// Destructor
51  /**
52  Destroys all objects created by define(). Passed in data references
53  of define() are left alone.
54  */
56  {
57 
58  }
59 
60  /// Actual constructor.
61  /**
62  Set up object.
63  */
64  void define(LevelData<FArrayBox> & a_fineData ,
65  const int & a_refRatio ,
66  const Box & a_fineDomain ,
67  const LevelData<FArrayBox>& a_coarseData ,
68  const Box & a_coarseDomain);
69 
70  void define(LevelData<FArrayBox> & a_fineData ,
71  const int & a_refRatio ,
72  const Box & a_fineDomain ,
73  const LevelData<FArrayBox>& a_coarseData ,
74  const Box & a_coarseDomain ,
75  const int & a_coarseGhostsFill,
76  const Interval & a_fixedDims );
77 
78 
80  const DisjointBoxLayout & a_fineDbl ,
81  const int & a_refRatio);
82 
84  const int & a_nComp ,
85  const int & a_refRatio ,
86  const IntVect & a_coarseGhostVect,
87  const Box & a_coarseDomain );
88 
89  void defineLevelDataVec(Vector <LevelData <FArrayBox>* >& a_levelDataVec,
90  const Vector< DisjointBoxLayout>& a_dblVec ,
91  const int & a_nComp ,
92  const IntVect & a_ghostVect );
93 
94  void semiCoarsenInterpLoop(Vector <LevelData <FArrayBox>* > & a_levelDataVec ,
95  const Vector < FourthOrderOneDInterp*>& a_fineInterpVec);
96 
97 
98 protected:
99 
100 public:
101 
102 protected:
103 
104  /// whether define() has been called
105  bool m_defined;
106 
107 
108 private:
109 
110  // Disallowed for all the usual reasons
111  void operator=(const FourthOrderTensorInterp& a_input)
112  {
113  MayDay::Error("invalid operator");
114  }
115 
116  // Disallowed for all the usual reasons
118  {
119  MayDay::Error("invalid operator");
120  }
121 };
122 
123 #include "NamespaceFooter.H"
124 #endif
void makeDBLVec(Vector< DisjointBoxLayout > &a_dblVec, const DisjointBoxLayout &a_fineDbl, const int &a_refRatio)
void semiCoarsenInterpLoop(Vector< LevelData< FArrayBox > * > &a_levelDataVec, const Vector< FourthOrderOneDInterp *> &a_fineInterpVec)
Structure for passing component ranges in code.
Definition: Interval.H:23
~FourthOrderTensorInterp()
Destructor.
Definition: FourthOrderTensorInterp.H:55
A BoxLayout that has a concept of disjointedness.
Definition: DisjointBoxLayout.H:30
Class to manage coarse-to-fine spatial interpolation to all fine cells within a single particular coa...
Definition: FourthOrderTensorInterp.H:39
static void Error(const char *const a_msg=m_nullString, int m_exitCode=CH_DEFAULT_ERROR_CODE)
Print out message to cerr and exit with the specified exit code.
FourthOrderTensorInterp()
Default constructor.
bool m_defined
whether define() has been called
Definition: FourthOrderTensorInterp.H:105
A Rectangular Domain on an Integer Lattice.
Definition: Box.H:469
FourthOrderTensorInterp(const FourthOrderTensorInterp &a_input)
Definition: FourthOrderTensorInterp.H:117
An integer Vector in SpaceDim-dimensional space.
Definition: CHArray.H:42
void operator=(const FourthOrderTensorInterp &a_input)
Definition: FourthOrderTensorInterp.H:111
void define(LevelData< FArrayBox > &a_fineData, const int &a_refRatio, const Box &a_fineDomain, const LevelData< FArrayBox > &a_coarseData, const Box &a_coarseDomain)
Actual constructor.
void defineLevelDataVec(Vector< LevelData< FArrayBox > * > &a_levelDataVec, const Vector< DisjointBoxLayout > &a_dblVec, const int &a_nComp, const IntVect &a_ghostVect)
void makeSemiCoarsenVec(Vector< FourthOrderOneDInterp *> &a_fineInterpVec, const int &a_nComp, const int &a_refRatio, const IntVect &a_coarseGhostVect, const Box &a_coarseDomain)