42 virtual const LR::LRSplineSurface*
getBasis(
int basis = 1)
const;
44 virtual LR::LRSplineSurface*
getBasis(
int basis = 1);
50 virtual bool readBasis(std::istream& is,
size_t basis);
60 virtual void clear(
bool retainGeometry);
79 virtual void initMADOF(
const int* sysMadof);
118 const IntVec& nodes)
const;
135 int deriv,
int nf)
const;
149 const RealArray* gpar,
bool regular)
const;
171 unsigned char,
int basis)
const;
178 unsigned char,
int basis)
const;
195 virtual void storeMesh(
const std::string& fName,
int fType)
const;
206 int basis,
bool coordCheck,
int thick);
216 int basis,
int thick,
int orient,
bool local)
const;
223 const RealArray& origErr,
bool elemErrors)
const;
237 std::vector<int>& elms,
238 std::vector<size_t>* sizes =
nullptr)
const;
247 bool ignoreGlobalLM);
std::vector< int > IntVec
General integer vector.
Definition: ASMbase.h:25
Base class for spline-based mixed finite element assembly drivers.
Driver for assembly of unstructured 2D spline FE models.
std::vector< Real > RealArray
A real-valued array without algebraic operations.
Definition: ImmersedBoundaries.h:29
std::vector< Vector > Vectors
An array of real-valued vectors with algebraic operations.
Definition: MatVec.h:37
Abstract interface for 2D spline patches.
Definition: ASM2D.h:33
std::vector< unsigned char > CharVec
Convenience type.
Definition: ASM2D.h:42
virtual bool evalSolution(Matrix &sField, const Vector &locSol, const int *npe, int n_f=0, bool piola=false) const
Evaluates the primary solution field at all visualization points.
Definition: ASMbase.C:1735
Base class to check for internal boundary integrand contributions.
Definition: Interface.h:40
unsigned char nf
Number of primary solution fields (1 or larger)
Definition: ASMbase.h:1033
Base class for spline-based mixed finite element assembly drivers.
Definition: ASMmxBase.h:35
bool piola
True if last used integrand was Piola mapped.
Definition: ASMmxBase.h:81
Driver for assembly of unstructured 2D spline FE models.
Definition: ASMu2D.h:50
virtual bool integrate(Integrand &integrand, GlobalIntegral &glbInt, const TimeDomain &time)=0
Evaluates an integral over the interior patch domain.
virtual bool refine(const LR::RefineData &prm, Vectors &sol)
Refines the mesh adaptively.
Definition: ASMLRSpline.C:219
void generateThreadGroups(const Integrand &integrand, bool silence, bool ignoreGlobalLM)
Generates element groups for multi-threading of interior integrals.
Definition: ASMu2D.C:2646
Driver for assembly of unstructured 2D spline mixed FE models.
Definition: ASMu2Dmx.h:32
virtual bool separateProjectionBasis() const
Checks if a separate projection basis is used for this patch.
Definition: ASMu2Dmx.C:1369
virtual void getBoundaryNodes(int lIndex, IntVec &nodes, int basis, int thick, int orient, bool local) const
Finds the global (or patch-local) node numbers on a patch boundary.
Definition: ASMu2Dmx.C:1267
bool usePiola() const
Returns true if the last passed integrand used Piola mapping.
Definition: ASMu2Dmx.h:229
virtual bool generateFEMTopology()
Generates the finite element topology data for the patch.
Definition: ASMu2Dmx.C:187
virtual bool refine(int dir, const RealArray &xi, double scale)
Refines the parametrization by inserting extra tensor knots.
Definition: ASMu2D.C:303
virtual bool connectPatch(int edge, ASM2D &neighbor, int nedge, bool revers, int basis, bool coordCheck, int thick)
Connects all matching nodes on two adjacent boundary edges.
Definition: ASMu2Dmx.C:1251
virtual void extractNodeVec(const RealArray &globVec, RealArray &nodeVec, unsigned char, int basis) const
Extracts nodal results for this patch from the global vector.
Definition: ASMu2Dmx.C:165
virtual unsigned char getNoFields(int basis) const
Returns the number of solution fields.
Definition: ASMu2Dmx.C:120
virtual void clear(bool retainGeometry)
Clears the contents of the patch, making it empty.
Definition: ASMu2Dmx.C:96
virtual Vec3 getCoord(size_t inod) const
Returns the global coordinates for the given node.
Definition: ASMu2Dmx.C:1180
std::shared_ptr< LR::LRSplineSurface > SplinePtr
Pointer to spline.
Definition: ASMu2Dmx.h:250
virtual void remapErrors(RealArray &errors, const RealArray &origErr, bool elemErrors) const
Remaps element-wise errors from geometry mesh to refinement mesh.
Definition: ASMu2Dmx.C:1278
virtual bool getSolution(Matrix &sField, const Vector &locSol, const IntVec &nodes) const
Extracts the primary solution field at the specified nodes.
Definition: ASMu2Dmx.C:180
virtual size_t getNoRefineElms() const
Returns the number of refinement elements for this patch.
Definition: ASMu2Dmx.C:1299
virtual void storeMesh(const std::string &fName, int fType) const
Stores the mesh basis to encapsulated postscript files.
Definition: ASMu2Dmx.C:1305
void generateThreadGroups(const Integrand &integrand, bool silence, bool ignoreGlobalLM)
Generates element groups for multi-threading of interior integrals.
Definition: ASMu2D.C:2646
virtual void initMADOF(const int *sysMadof)
Initializes the patch level MADOF array for mixed problems.
Definition: ASMu2Dmx.C:159
virtual bool evalSolutionPiola(Matrix &sField, const Vector &locSol, const RealArray *gpar, bool regular) const
Evaluates the primary solution field at the given points with Piola mapping.
Definition: ASMu2Dmx.C:914
virtual bool readBasis(std::istream &is, size_t basis)
Reads a basis from the given input stream.
Definition: ASMu2Dmx.C:76
virtual bool evalSolution(Matrix &sField, const Vector &locSol, const int *npe, int n_f, bool piola) const
Evaluates the primary solution field at all visualization points.
Definition: ASMu2D.C:2052
virtual size_t getNoRefineNodes() const
Returns the number of refinement nodes for this patch.
Definition: ASMu2Dmx.C:1293
virtual char getNodeType(size_t inod) const
Returns the classification of a node.
Definition: ASMu2Dmx.C:144
virtual bool injectNodeVec(const RealArray &nodeVec, RealArray &globVec, unsigned char, int basis) const
Injects nodal results for this patch into a global vector.
Definition: ASMu2Dmx.C:172
virtual ~ASMu2Dmx()
Empty destructor.
Definition: ASMu2Dmx.h:39
virtual size_t getNoNodes(int basis) const
Returns the total number of nodes in this patch.
Definition: ASMu2Dmx.C:111
std::vector< SplinePtr > m_basis
All bases.
Definition: ASMu2Dmx.h:252
virtual size_t getNoBasis() const
Returns the number of bases.
Definition: ASMu2Dmx.h:63
virtual unsigned char getNodalDOFs(size_t inod) const
Returns the number of DOFs per node.
Definition: ASMu2Dmx.C:132
LR::LRSplineSurface * threadBasis
Basis for thread groups.
Definition: ASMu2Dmx.h:253
ASMu2Dmx(unsigned char n_s, const CharVec &n_f)
The constructor initializes the dimension of each basis.
Definition: ASMu2Dmx.C:41
void getElementsAt(const RealArray ¶m, std::vector< int > &elms, std::vector< size_t > *sizes=nullptr) const
Finds the elements and associted sizes at given parametric point.
Definition: ASMu2Dmx.C:1346
virtual const LR::LRSplineSurface * getBasis(int basis=1) const
Returns the spline surface representing a basis of this patch.
Definition: ASMu2Dmx.C:58
Abstract base class representing a system level integrated quantity.
Definition: GlobalIntegral.h:29
Base class representing a system level integrated quantity.
Definition: IntegrandBase.h:42
Abstract base class representing a system level integrated quantity.
Definition: Integrand.h:44
Simple class for representing a point in 3D space.
Definition: Vec3.h:27
A vector class with some added algebraic operations.
Definition: matrix.h:64
A struct of data to control the mesh refinement.
Definition: ASMunstruct.h:44
Struct representing the time domain.
Definition: TimeDomain.h:23