DAInputFieldUnsteady.H
Go to the documentation of this file.
1 /*---------------------------------------------------------------------------*\
2 
3  DAFoam : Discrete Adjoint with OpenFOAM
4  Version : v4
5 
6  Description:
7  Child class for field variable input that change for each time step
8  (unsteady)
9 
10 \*---------------------------------------------------------------------------*/
11 
12 #ifndef DAInputFieldUnsteady_H
13 #define DAInputFieldUnsteady_H
14 
15 #include "DAInput.H"
16 #include "addToRunTimeSelectionTable.H"
17 #include "mixedFvPatchFields.H"
18 #include "DAGlobalVar.H"
19 
20 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
21 
22 namespace Foam
23 {
24 
25 /*---------------------------------------------------------------------------*\
26  Class DAInputFieldUnsteady Declaration
27 \*---------------------------------------------------------------------------*/
28 
30  : public DAInput
31 {
32 
33 protected:
35  word fieldName_;
36 
38  word fieldType_;
39 
41  label stepInterval_ = 1;
42 
44  label nParameters_ = -1;
45 
47  word interpolationMethod_ = "linear";
48 
49 public:
50  TypeName("fieldUnsteady");
51  // Constructors
52 
53  //- Construct from components
55  const word inputName,
56  const word inputType,
57  fvMesh& mesh,
58  const DAOption& daOption,
59  const DAModel& daModel,
60  const DAIndex& daIndex);
61 
62  //- Destructor
64  {
65  }
66 
67  virtual void run(const scalarList& input);
68 
69  virtual label size()
70  {
71  if (fieldType_ == "scalar")
72  {
73  if (this->distributed())
74  {
76  }
77  else
78  {
80  }
81  }
82  else
83  {
84  FatalErrorIn("DAInputFieldUnsteady::size") << "fieldType not valid" << exit(FatalError);
85  return -1;
86  }
87  }
88 
89  virtual label distributed()
90  {
91  label distributed = daOption_.getAllOptions().subDict("inputInfo").subDict(inputName_).getLabel("distributed");
92  return distributed;
93  }
94 };
95 
96 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
97 
98 } // End namespace Foam
99 
100 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
101 
102 #endif
103 
104 // ************************************************************************* //
Foam::DAInput::daIndex_
const DAIndex & daIndex_
DAIndex object.
Definition: DAInput.H:57
Foam::DAInputFieldUnsteady
Definition: DAInputFieldUnsteady.H:29
Foam::DAInputFieldUnsteady::fieldType_
word fieldType_
field type, can be either scalar or vector
Definition: DAInputFieldUnsteady.H:38
Foam::DAInput::inputName_
const word inputName_
name of the input
Definition: DAInput.H:42
Foam::DAOption
Definition: DAOption.H:29
DAGlobalVar.H
Foam::DAIndex::nLocalCells
label nLocalCells
local cell size
Definition: DAIndex.H:83
Foam::DAOption::getAllOptions
const dictionary & getAllOptions() const
return a reference of allOptions_ dictionary
Definition: DAOption.H:56
mesh
fvMesh & mesh
Definition: createRefsHeatTransfer.H:4
Foam::DAInputFieldUnsteady::DAInputFieldUnsteady
DAInputFieldUnsteady(const word inputName, const word inputType, fvMesh &mesh, const DAOption &daOption, const DAModel &daModel, const DAIndex &daIndex)
Definition: DAInputFieldUnsteady.C:19
Foam::DAIndex
Definition: DAIndex.H:32
DAInput.H
Foam::DAInput::daOption_
const DAOption & daOption_
DAOption object.
Definition: DAInput.H:51
Foam::DAIndex::nGlobalCells
label nGlobalCells
global cell size
Definition: DAIndex.H:129
Foam::DAModel
Definition: DAModel.H:57
Foam::DAInputFieldUnsteady::nParameters_
label nParameters_
how many parameters to interpolate along the time, they could be the field it self
Definition: DAInputFieldUnsteady.H:44
Foam::DAInputFieldUnsteady::TypeName
TypeName("fieldUnsteady")
Foam
Definition: checkGeometry.C:32
Foam::DAInputFieldUnsteady::interpolationMethod_
word interpolationMethod_
interpolation method
Definition: DAInputFieldUnsteady.H:47
Foam::DAInputFieldUnsteady::stepInterval_
label stepInterval_
how many time step interval to use, 1 means updating the field every time step
Definition: DAInputFieldUnsteady.H:41
Foam::DAInputFieldUnsteady::size
virtual label size()
Definition: DAInputFieldUnsteady.H:69
Foam::DAInput
Definition: DAInput.H:30
Foam::DAInputFieldUnsteady::distributed
virtual label distributed()
Definition: DAInputFieldUnsteady.H:89
Foam::DAInputFieldUnsteady::run
virtual void run(const scalarList &input)
Definition: DAInputFieldUnsteady.C:62
Foam::DAInputFieldUnsteady::~DAInputFieldUnsteady
virtual ~DAInputFieldUnsteady()
Definition: DAInputFieldUnsteady.H:63
Foam::DAInputFieldUnsteady::fieldName_
word fieldName_
name of the field
Definition: DAInputFieldUnsteady.H:35