24 namespace tinyxml2 {
class XMLElement; }
67 AnaSol(std::istream& is,
const int nlines,
bool scalarSol =
true);
72 explicit AnaSol(
const tinyxml2::XMLElement* elem,
bool scalarSol =
true);
133 template<
class Scalar>
Class for analytical solution fields (primary and secondary solution).
Definition: AnaSol.h:32
VecFunc * vecSol
Primary vector solution field.
Definition: AnaSol.h:145
void parseFieldFunctions(const tinyxml2::XMLElement *elem, bool scalarSol)
Parses field functions from XML definition.
Definition: AnaSol.C:306
std::vector< RealFunc * > scalSol
Primary scalar solution fields.
Definition: AnaSol.h:142
STensorFunc * stressSol
Secondary solution field (stress field)
Definition: AnaSol.h:147
VecFunc * getScalarSecSol(size_t idx=0) const
Returns the secondary scalar solution, if any.
Definition: AnaSol.h:111
TensorFunc * getVectorSecSol() const
Returns the secondary vector solution, if any.
Definition: AnaSol.h:118
void initPatch(size_t pIdx)
Sets the patch to use.
Definition: AnaSol.C:157
virtual void setupSecondarySolutions()
Make sure we have a secondary solution.
Definition: AnaSol.C:369
AnaSol(VecFunc *v, STensorFunc *sigma)
Constructor initializing the primary and secondary solution fields.
Definition: AnaSol.h:55
void parseExpressionFunctions(const tinyxml2::XMLElement *elem, bool scalarSol)
Parses expression functions from XML definition.
Definition: AnaSol.C:177
AnaSol(STensorFunc *sigma)
Constructor initializing the symmetric stress tensor field only.
Definition: AnaSol.h:60
virtual ~AnaSol()
The destructor frees the analytical solution fields.
Definition: AnaSol.C:145
std::vector< VecFunc * > scalSecSol
Secondary scalar solution fields.
Definition: AnaSol.h:143
AnaSol(const AnaSol &)=delete
No copying of this class.
char hasVectorSol() const
Checks whether a vector solution is defined.
Definition: AnaSol.h:94
TensorFunc * vecSecSol
Secondary solution field (vector gradient field)
Definition: AnaSol.h:146
bool symmetric
True to use symmetric secondary solution.
Definition: AnaSol.h:140
char hasScalarSol() const
Checks whether a scalar solution is defined.
Definition: AnaSol.h:81
VecFunc * getVectorSol() const
Returns the vector solution, if any.
Definition: AnaSol.h:115
RealFunc * getScalarSol(size_t idx=0) const
Returns the scalar solution, if any.
Definition: AnaSol.h:107
STensorFunc * getStressSol() const
Returns the stress solution, if any.
Definition: AnaSol.h:121
AnaSol(RealFunc *s1=nullptr, VecFunc *s2=nullptr, VecFunc *v1=nullptr, TensorFunc *v2=nullptr, STensorFunc *v3=nullptr)
Default constructor initializing all solution fields.
Definition: AnaSol.C:65
Scalar-valued unary function of a spatial point.
Definition: Function.h:193
Symmetric tensor-valued unary function of a spatial point.
Definition: TensorFunction.h:71
Tensor-valued unary function of a spatial point.
Definition: TensorFunction.h:27
Vector-valued unary function of a spatial point.
Definition: Function.h:242