LagrangianmDdt.H
Go to the documentation of this file.
1 /*---------------------------------------------------------------------------*\
2  ========= |
3  \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
4  \\ / O peration | Website: https://openfoam.org
5  \\ / A nd | Copyright (C) 2025 OpenFOAM Foundation
6  \\/ M anipulation |
7 -------------------------------------------------------------------------------
8 License
9  This file is part of OpenFOAM.
10 
11  OpenFOAM is free software: you can redistribute it and/or modify it
12  under the terms of the GNU General Public License as published by
13  the Free Software Foundation, either version 3 of the License, or
14  (at your option) any later version.
15 
16  OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
17  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
18  FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
19  for more details.
20 
21  You should have received a copy of the GNU General Public License
22  along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
23 
24 InNamespace
25  Foam::Lagrangianm
26 
27 Description
28  Functions for calculating the time derivative for a Lagrangian equation
29 
30 SourceFiles
31  LagrangianmDdt.C
32 
33 \*---------------------------------------------------------------------------*/
34 
35 #ifndef LagrangianmDdt_H
36 #define LagrangianmDdt_H
37 
38 #include "LagrangianFieldsFwd.H"
39 #include "LagrangianSubFieldsFwd.H"
40 #include "dimensionSet.H"
41 
42 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
43 
44 namespace Foam
45 {
46 
47 template<class Type>
48 class LagrangianEqn;
49 
50 /*---------------------------------------------------------------------------*\
51  Namespace Lagrangianm functions Declaration
52 \*---------------------------------------------------------------------------*/
53 
54 namespace Lagrangianm
55 {
56  //- Initialise time-derivative information. Registers fields used to
57  // construct for higher-order schemes and to evaluate instantaneous
58  // time derivatives.
59  template<class Type>
60  bool initDdt
61  (
62  const dimensionSet& mDims,
64  const bool instantaneousDdt = false
65  );
66 
67  //- Initialise time-derivative information. Registers fields used to
68  // construct for higher-order schemes and to evaluate instantaneous
69  // time derivatives.
70  template<class Type, template<class> class PrimitiveField>
71  bool initDdt
72  (
73  const dimensionSet& mDims,
75  const bool instantaneousDdt = false
76  );
77 
78  //- Return the no-time-derivative matrix containing higher-order
79  // modifications to source terms
80  template<class Type>
82  (
83  const LagrangianSubScalarField& deltaT,
84  const dimensionSet& mDims,
86  );
87 
88  //- Return the no-time-derivative matrix containing higher-order
89  // modifications to source terms
90  template<class Type, template<class> class PrimitiveField>
92  (
93  const LagrangianSubScalarField& deltaT,
94  const dimensionSet& mDims,
96  );
97 
98  //- Return the time-derivative matrix
99  template<class Type>
101  (
102  const LagrangianSubScalarField& deltaT,
104  );
105 
106  //- Return the time-derivative matrix
107  template<class Type>
109  (
110  const LagrangianSubScalarField& deltaT,
113  );
114 
115  //- Return a Euler implicit time derivative matrix
116  template<class Type>
118  (
120  );
121 
122  //- Return a Euler implicit time derivative matrix
123  template<class Type>
125  (
128  );
129 
130  //- Return a Euler explicit/forward time derivative matrix
131  template<class Type>
133  (
135  );
136 
137  //- Return a Euler explicit/forward time derivative matrix
138  template<class Type>
140  (
143  );
144 }
145 
146 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
147 
148 } // End namespace Foam
149 
150 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
151 
152 #ifdef NoRepository
153  #include "LagrangianmDdt.C"
154 #endif
155 
156 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
157 
158 #endif
159 
160 // ************************************************************************* //
Field with dimensions and associated with geometry type GeoMesh which is used to size the field and a...
Dimension set for the base types.
Definition: dimensionSet.H:125
A class for managing temporary objects.
Definition: tmp.H:55
const volScalarField & psi
tmp< LagrangianEqn< Type > > Ddt(const LagrangianSubScalarField &deltaT, LagrangianSubSubField< Type > &psi)
Return the time-derivative matrix.
tmp< LagrangianEqn< Type > > ddt0(const LagrangianSubSubField< Type > &psi)
Return a Euler explicit/forward time derivative matrix.
tmp< LagrangianEqn< Type > > ddt(const LagrangianSubSubField< Type > &psi)
Return a Euler implicit time derivative matrix.
bool initDdt(const dimensionSet &mDims, const LagrangianSubSubField< Type > &psi, const bool instantaneousDdt=false)
Initialise time-derivative information. Registers fields used to.
tmp< LagrangianEqn< Type > > noDdt(const LagrangianSubScalarField &deltaT, const dimensionSet &mDims, const LagrangianSubSubField< Type > &psi)
Return the no-time-derivative matrix containing higher-order.
Namespace for OpenFOAM.