33 template<
class Type,
class DType,
class LUType>
47 template<
class Type,
class DType,
class LUType>
66 upperPtr_ =
new Field<LUType>(*(
A.upperPtr_));
71 lowerPtr_ =
new Field<LUType>(*(
A.lowerPtr_));
76 sourcePtr_ =
new Field<Type>(*(
A.sourcePtr_));
81 template<
class Type,
class DType,
class LUType>
97 diagPtr_ =
A.diagPtr_;
103 upperPtr_ =
A.upperPtr_;
104 A.upperPtr_ =
nullptr;
109 lowerPtr_ =
A.lowerPtr_;
110 A.lowerPtr_ =
nullptr;
115 sourcePtr_ =
A.sourcePtr_;
116 A.sourcePtr_ =
nullptr;
123 diagPtr_ =
new Field<DType>(*(
A.diagPtr_));
128 upperPtr_ =
new Field<LUType>(*(
A.upperPtr_));
133 lowerPtr_ =
new Field<LUType>(*(
A.lowerPtr_));
138 sourcePtr_ =
new Field<Type>(*(
A.sourcePtr_));
144 template<
class Type,
class DType,
class LUType>
152 diagPtr_(new Field<DType>(is)),
153 upperPtr_(new Field<LUType>(is)),
154 lowerPtr_(new Field<LUType>(is)),
155 sourcePtr_(new Field<Type>(is)),
164 template<
class Type,
class DType,
class LUType>
191 template<
class Type,
class DType,
class LUType>
196 diagPtr_ =
new Field<DType>(lduAddr().size(),
Zero);
203 template<
class Type,
class DType,
class LUType>
210 upperPtr_ =
new Field<LUType>(*lowerPtr_);
214 upperPtr_ =
new Field<LUType>
216 lduAddr().lowerAddr().size(),
226 template<
class Type,
class DType,
class LUType>
233 lowerPtr_ =
new Field<LUType>(*upperPtr_);
237 lowerPtr_ =
new Field<LUType>
239 lduAddr().lowerAddr().size(),
249 template<
class Type,
class DType,
class LUType>
254 sourcePtr_ =
new Field<Type>(lduAddr().size(),
Zero);
261 template<
class Type,
class DType,
class LUType>
267 <<
"diagPtr_ unallocated" 275 template<
class Type,
class DType,
class LUType>
278 if (!lowerPtr_ && !upperPtr_)
281 <<
"lowerPtr_ or upperPtr_ unallocated" 296 template<
class Type,
class DType,
class LUType>
299 if (!lowerPtr_ && !upperPtr_)
302 <<
"lowerPtr_ or upperPtr_ unallocated" 317 template<
class Type,
class DType,
class LUType>
323 <<
"sourcePtr_ unallocated" 333 template<
class Type,
class DType,
class LUType>
337 const LduMatrix<Type, DType, LUType>& ldum
349 os <<
"Upper triangle = " 356 os <<
"Lower triangle = "
error FatalError
Error stream (stdout output on all processes), with additional 'FOAM FATAL ERROR' header text and sta...
#define FatalErrorInFunction
Report an error message using Foam::FatalError.
virtual bool check(const char *operation) const
Check IOstream status for given operation.
LduMatrix(const lduMesh &)
Construct given an LDU addressed mesh.
Ostream & endl(Ostream &os)
Add newline and flush stream.
Abstract base class for meshes which provide LDU addressing for the construction of lduMatrix and LDU...
Field< LUType > & lower()
Useful combination of include files which define Sin, Sout and Serr and the use of IO streams general...
Field< LUType > & upper()
errorManip< error > abort(error &err)
An Ostream is an abstract base class for all output systems (streams, files, token lists...
OBJstream os(runTime.globalPath()/outputName)
LduMatrix is a general matrix class in which the coefficients are stored as three arrays...
static const Foam::dimensionedScalar A("", Foam::dimPressure, 611.21)
static constexpr const zero Zero
Global zero (0)