21 #include "LRSpline/LRSpline.h"
35 struct BasisDerivsSf2;
36 struct BasisDerivsSf3;
40 class LRSplineSurface;
101 int = -1,
int = -1)
const;
107 int* cont =
nullptr)
const;
123 ASMu2D(
unsigned char n_s = 2,
unsigned char n_f = 2);
130 virtual const LR::LRSplineSurface*
getBasis(
int basis = 1)
const;
132 virtual LR::LRSplineSurface*
getBasis(
int basis = 1);
139 virtual bool read(std::istream&);
141 virtual bool write(std::ostream&,
int)
const;
151 virtual void clear(
bool retainGeometry =
false);
159 bool forceItg =
false)
const;
191 int orient = 0,
bool local =
false)
const;
197 virtual bool getOrder(
int& p1,
int& p2,
int& p3)
const;
200 virtual size_t getNoNodes(
int basis = 0)
const;
257 size_t internalFirst)
const;
262 void copyRefinement(LR::LRSplineSurface* basis,
int multiplicity = 1)
const;
274 virtual void constrainEdge(
int dir,
bool open,
int dof,
int code,
char basis);
296 int code = 0,
char basis = 1);
308 virtual void constrainNode(
double xi,
double eta,
int dof,
int code = 0);
318 int = 0,
bool coordCheck =
true,
int thick = 1);
356 const double* param,
const Vec3& pval);
364 const std::map<int,VecFunc*>& vfunc,
double time,
365 const std::map<int,int>* g2l =
nullptr);
371 virtual int getCorner(
int I,
int J,
int basis)
const;
393 virtual int evalPoint(
const double* xi,
double* param,
Vec3& X)
const;
425 const int* npe,
int n_f,
bool piola)
const;
434 int deriv = 0,
int = 0)
const;
442 const int* npe,
int n_f)
const;
449 int,
double time)
const;
466 const int* npe,
char project =
'\0')
const;
482 virtual void storeMesh(
const std::string& fName,
int fType)
const;
493 LR::LRSplineSurface*
lr;
504 int d = 0,
int c = 0,
int offset = 1);
524 const Matrix& points,
int basis)
const;
541 const RealArray* gpar,
bool =
false)
const;
594 bool continuous)
const;
607 int basis = 1,
int slave = 0,
int master = 0,
608 bool coordCheck =
true,
int thick = 1);
618 int iel,
const double* xi,
619 const LR::LRSplineSurface* spline =
nullptr)
const;
652 Go::BasisPtsSf& bas,
int iel,
653 const LR::LRSplineSurface* spline =
nullptr)
const;
656 Go::BasisDerivsSf& bas,
int iel,
657 const LR::LRSplineSurface* spline =
nullptr)
const;
660 Go::BasisDerivsSf2& bas,
int iel,
661 const LR::LRSplineSurface* spline =
nullptr)
const;
664 Go::BasisDerivsSf3& bas,
int iel,
665 const LR::LRSplineSurface* spline =
nullptr)
const;
673 virtual int evalPoint(
int iel,
const double* param,
Vec3& X)
const;
681 bool ignoreGlobalLM);
697 const RealArray& origErr,
bool elemErrors)
const;
703 const IntSet& neighborIndices)
const;
709 static std::shared_ptr<LR::LRSplineSurface>
createLRNurbs(
const Go::SplineSurface& srf);
719 std::ostream& out,
bool close =
true,
720 int nu = 2,
int nv = 2);
723 std::ostream& out,
int nu = 2,
int nv = 2);
731 Go::BasisPtsSf& bas,
int iel,
732 const LR::LRSplineSurface& spline);
735 Go::BasisDerivsSf& bas,
int iel,
736 const LR::LRSplineSurface& spline);
739 Go::BasisDerivsSf2& bas,
int iel,
740 const LR::LRSplineSurface& spline);
743 Go::BasisDerivsSf3& bas,
int iel,
744 const LR::LRSplineSurface& spline);
756 const LR::LRSplineSurface& spline,
783 std::vector<std::unique_ptr<BasisFunctionCache>>
myCache;
Abstract interface for 2D patches.
Base class for FE assembly drivers using LR B-splines.
std::vector< int > IntVec
General integer vector.
Definition: ASMbase.h:25
std::vector< IntVec > IntMat
General 2D integer matrix.
Definition: ASMbase.h:26
std::set< int > IntSet
General integer set.
Definition: ASMunstruct.h:22
std::vector< RealArray > Real2DMat
A real-valued two-dimensional array without algebraic operations.
Definition: ImmersedBoundaries.h:34
std::vector< Real > RealArray
A real-valued array without algebraic operations.
Definition: ImmersedBoundaries.h:29
std::vector< Real2DMat > Real3DMat
A real-valued three-dimensional array without algebraic operations.
Definition: ImmersedBoundaries.h:36
Representation of domain interfaces.
std::vector< Vector > Vectors
An array of real-valued vectors with algebraic operations.
Definition: MatVec.h:37
std::vector< Matrix > Matrices
An array of real-valued matrices with algebraic operations.
Definition: MatVec.h:39
Threading group partitioning.
Abstract interface for 2D spline patches.
Definition: ASM2D.h:33
Base class for LR B-spline FE assembly drivers.
Definition: ASMLRSpline.h:76
virtual bool refine(const LR::RefineData &prm, Vectors &sol)
Refines the mesh adaptively.
Definition: ASMLRSpline.C:219
virtual bool transferCntrlPtVars(const LR::LRSpline *oldBasis, RealArray &newVar, int nGauss) const =0
Transfers control point variables from old basis to this patch.
std::shared_ptr< LR::LRSpline > geomB
Pointer to spline object of the geometry basis.
Definition: ASMLRSpline.h:213
virtual int evalPoint(const double *xi, double *param, Vec3 &X) const=0
Evaluates the geometry at a specified point.
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
virtual bool integrate(Integrand &integrand, GlobalIntegral &glbInt, const TimeDomain &time)=0
Evaluates an integral over the interior patch domain.
int nGauss
Numerical integration scheme for this patch.
Definition: ASMbase.h:1064
virtual void generateThreadGroups(const Integrand &, bool, bool)
Generates element groups for multi-threading of interior integrals.
Definition: ASMbase.h:516
unsigned char nsd
Number of space dimensions (ndim <= nsd <= 3)
Definition: ASMbase.h:1032
Implementation of basis function cache.
Definition: ASMu2D.h:54
BasisFunctionVals calculatePt(size_t el, size_t gp, bool reduced) const override
Calculates basis function info in a single integration point.
Definition: ASMu2D.C:3171
virtual ~BasisFunctionCache()=default
Empty destructor.
const ASMu2D & patch
Reference to patch cache is for.
Definition: ASMu2D.h:82
bool internalInit() override
Implementation specific initialization.
Definition: ASMu2D.C:3104
void calculateAll() override
Calculates basis function info in all integration points.
Definition: ASMu2D.C:3204
bool setupQuadrature()
Configure quadratures.
Definition: ASMu2D.C:3117
Base class that checks if an element has interface contributions.
Definition: ASMu2D.h:92
const ASMu2D & myPatch
Reference to the patch being integrated.
Definition: ASMu2D.h:110
virtual ~InterfaceChecker()
Empty destructor.
Definition: ASMu2D.h:97
virtual short int hasContribution(int iel, int=-1, int=-1, int=-1) const
Returns non-zero if the specified element have contributions.
Definition: ASMu2D.C:2779
InterfaceChecker(const ASMu2D &pch)
The constructor initialises the reference to current patch.
Definition: ASMu2D.C:2709
std::map< int, Intersection > intersections
Intersections for elements. Key: element << 4 + edge (1..4).
Definition: ASMu2D.h:119
const RealArray & getIntersections(int iel, int edge, int *cont=nullptr) const
Get intersections for a given element edge.
Definition: ASMu2D.C:2798
Driver for assembly of unstructured 2D spline FE models.
Definition: ASMu2D.h:50
virtual void extendRefinementDomain(IntSet &refineIndices, const IntSet &neighborIndices) const
Extends the refinement domain with information for neighbors.
Definition: ASMu2D.C:357
virtual void remapErrors(RealArray &errors, const RealArray &origErr, bool elemErrors) const
Remap element wise errors to basis functions.
Definition: ASMu2D.C:2682
virtual void generateThreadGroupsFromElms(const IntVec &elms)
Generate element groups from a partition.
Definition: ASMu2D.C:3006
virtual IntMat getElmNodes(int basis) const
Returns the matrix of nodal point correspondance for given basis.
Definition: ASMu2D.C:2667
virtual void findBoundaryElms(IntVec &elms, int lIndex, int orient) const
Finds the patch-local element numbers on a patch boundary.
Definition: ASMu2D.C:2982
std::shared_ptr< LR::LRSplineSurface > lrspline
The LR-spline surface object.
Definition: ASMu2D.h:760
virtual bool integrate(Integrand &integrand, GlobalIntegral &glbInt, const TimeDomain &time)=0
Evaluates an integral over the interior patch domain.
void getGaussPointParameters(RealArray &uGP, int dir, int nGauss, int iel, const double *xi, const LR::LRSplineSurface *spline=nullptr) const
Extracts parameter values of the Gauss points in one direction.
Definition: ASMu2D.C:1038
virtual size_t constrainEdgeLocal(int dir, bool open, int dof, int code, bool project=false)
Constrains all DOFs in local directions on a given boundary edge.
Definition: ASMu2D.C:815
virtual bool write(std::ostream &, int) const
Writes the geometry of the SplineSurface object to given stream.
Definition: ASMu2D.C:152
virtual bool updateCoords(const Vector &displ)
Updates the nodal coordinates for this patch.
Definition: ASMu2D.C:999
virtual void changeNumThreads()
Hook for changing number of threads.
Definition: ASMu2D.C:2675
virtual bool evaluate(const FunctionBase *func, RealArray &vec, int, double time) const
Evaluates and interpolates a function over a given geometry.
Definition: ASMu2D.C:2698
virtual bool read(std::istream &)
Creates an instance by reading the given input stream.
Definition: ASMu2D.C:97
const ASMu2D * outputMaster
Master patch to use for VTF output.
Definition: ASMu2D.h:764
virtual void extractElmRes(const Matrix &globRes, Matrix &elmRes, size_t internalFirst) const
Extracts element results for this patch from a global vector.
Definition: ASMu2D.C:3064
virtual bool refine(const LR::RefineData &prm, Vectors &sol)
Refines the mesh adaptively.
Definition: ASMLRSpline.C:219
Go::SplineSurface * tensorPrjBas
Pointer to tensor spline projection base.
Definition: ASMu2D.h:767
virtual bool transferCntrlPtVars(const LR::LRSpline *oldBasis, RealArray &newVar, int nGauss) const=0
Transfers control point variables from old basis to this patch.
virtual const LR::LRSplineSurface * getBasis(int basis=1) const
Returns the spline surface representing a basis of this patch.
Definition: ASMu2D.C:71
bool evaluateBasisNurbs(int iel, FiniteElement &fe, int derivs) const
Evaluates the NURBS basis functions and derivatives of an element.
Definition: ASMu2Dnurbs.C:26
bool connectBasis(int edge, ASMu2D &neighbor, int nedge, bool revers, int basis=1, int slave=0, int master=0, bool coordCheck=true, int thick=1)
Connects all matching nodes on two adjacent boundary edges.
Definition: ASMu2D.C:656
virtual bool transferGaussPtVars(const LR::LRSpline *old_basis, const RealArray &oldVar, RealArray &newVar, int nGauss) const
Transfers Gauss point variables from old basis to this patch.
Definition: ASMu2D.C:2500
virtual void storeMesh(const std::string &fName, int fType) const
Stores the mesh basis to encapsulated postscript files.
Definition: ASMu2D.C:3030
virtual bool raiseOrder(int ru, int rv)
Raises the order of the tensor spline object for this patch.
Definition: ASMu2D.C:407
static void computeBasisNurbs(double u, double v, Go::BasisPtsSf &bas, int iel, const LR::LRSplineSurface &spline)
Evaluate NURBS basis functions in a point.
Definition: ASMu2Dnurbs.C:129
std::vector< std::unique_ptr< BasisFunctionCache > > myCache
Basis function cache.
Definition: ASMu2D.h:783
Go::SplineSurface * tensorspline
Pointer to original tensor spline object.
Definition: ASMu2D.h:766
bool rational() const
Query whether basis is rational or not.
Definition: ASMu2D.h:747
virtual size_t getNoNodes(int basis=0) const
Returns the total number of nodes in this patch.
Definition: ASMu2D.C:2452
virtual bool tesselate(ElementBlock &grid, const int *npe) const
Creates a quad element model of this patch for visualization.
Definition: ASMu2D.C:2005
Matrices myBezierExtract
Bezier extraction matrices.
Definition: ASMu2D.h:777
virtual Fields * getProjectedFields(const Vector &coefs, size_t=0) const
Returns a field using the projection basis.
Definition: ASMu2D.C:2486
std::shared_ptr< LR::LRSplineSurface > createLRfromTensor()
Converts current tensor spline object to LR-spline.
Definition: ASMu2D.C:544
LR::LRSplineSurface * scRecovery(const IntegrandBase &integrand) const
Projects the secondary solution using a superconvergent approach.
Definition: ASMu2Drecovery.C:238
virtual bool getGridParameters(RealArray &prm, int dir, int nSegSpan) const
Calculates parameter values for visualization nodal points.
Definition: ASMu2D.C:1966
virtual void getBoundaryNodes(int lIndex, IntVec &nodes, int basis, int=1, int orient=0, bool local=false) const
Finds the global (or patch-local) node numbers on a patch boundary.
Definition: ASMu2D.C:2355
virtual bool updateDirichlet(const std::map< int, RealFunc * > &func, const std::map< int, VecFunc * > &vfunc, double time, const std::map< int, int > *g2l=nullptr)
Updates the time-dependent in-homogeneous Dirichlet coefficients.
Definition: ASMu2D.C:2398
bool edgeL2projection(const DirichletEdge &edge, const FunctionBase &values, Real2DMat &result, double time) const
Projects inhomogenuous dirichlet conditions by continuous L2-fit.
Definition: ASMu2Drecovery.C:455
virtual void generateProjThreadGroupsFromElms(const IntVec &elms)
Generate element groups from a partition.
Definition: ASMu2D.C:3024
virtual int findElementContaining(const double *param) const
Returns the element that contains a specified spatial point.
Definition: ASMu2D.C:1953
virtual Field * getProjectedField(const Vector &coefs) const
Returns a field using the projection basis.
Definition: ASMu2D.C:2473
virtual size_t getNoProjectionNodes() const
Returns the number of projection nodes for this patch.
Definition: ASMu2D.C:2461
bool is_rational
True if basis is rational.
Definition: ASMu2D.h:762
virtual bool createProjectionBasis(bool init)
Creates a separate projection basis for this patch.
Definition: ASMu2D.C:429
void generateThreadGroups(const Integrand &integrand, bool silence, bool ignoreGlobalLM)
Generates element groups for multi-threading of interior integrals.
Definition: ASMu2D.C:2646
const Matrices & bezierExtract
Bezier extraction matrices.
Definition: ASMu2D.h:776
double getElementCorners(int iel, std::vector< Vec3 > &XC, RealArray *uC=nullptr) const
Computes the element corner coordinates.
Definition: ASMu2D.C:1048
double aMin
Minimum element area for adaptive refinement.
Definition: ASMu2D.h:786
void generateBezierExtraction()
Generate bezier extraction operators.
Definition: ASMu2D.C:2855
virtual bool transferGaussPtVarsN(const LR::LRSpline *old_basis, const RealArray &oldVar, RealArray &newVar, int nGauss) const
Transfers Gauss point variables from old basis to this patch.
Definition: ASMu2D.C:2553
void generateBezierBasis()
Generate bezier basis.
Definition: ASMu2D.C:2848
LR::LRSplineSurface * regularInterpolation(const RealArray &upar, const RealArray &vpar, const Matrix &points, int basis) const
Interpolates an LR spline at a given set of parametric coordinates.
Definition: ASMu2Drecovery.C:393
void writePostscriptElementsNurbs(std::shared_ptr< LR::LRSplineSurface > mesh, std::ostream &out, bool close=true, int nu=2, int nv=2)
Write NURBS elements as postscript file.
Definition: ASMu2Dnurbs.C:289
virtual size_t getNoBoundaryElms(char lIndex, char ldim) const
Returns the number of elements on a boundary.
Definition: ASMu2D.C:1024
virtual void clear(bool retainGeometry=false)
Clears the contents of the patch, making it empty.
Definition: ASMu2D.C:165
LR::LRSplineSurface * projectSolution(const IntegrandBase &integrand) const
Projects the secondary solution field onto the primary basis.
Definition: ASMu2Drecovery.C:73
virtual double getMinimumSize(int nrefinements) const
Defines the minimum element area for adaptive refinement.
Definition: ASMu2D.C:334
Go::BsplineBasis bezier_v
Bezier basis in the v-direction.
Definition: ASMu2D.h:780
virtual int getCorner(int I, int J, int basis) const
Returns the node index for a given corner.
Definition: ASMu2D.C:822
bool evaluateBasis(int iel, FiniteElement &fe, int derivs=0) const
Evaluates the basis functions and derivatives of an element.
Definition: ASMu2D.C:443
virtual bool getOrder(int &p1, int &p2, int &p3) const
Returns the polynomial order in each parameter direction.
Definition: ASMu2D.C:2388
std::vector< DirichletEdge > dirich
Inhomogeneous Dirichlet boundary condition data.
Definition: ASMu2D.h:774
void computeBasis(double u, double v, Go::BasisPtsSf &bas, int iel, const LR::LRSplineSurface *spline=nullptr) const
Evaluate basis functions in a point.
Definition: ASMu2D.C:2875
void copyRefinement(LR::LRSplineSurface *basis, int multiplicity=1) const
Copies the refinement to another surface.
Definition: ASMu2D.C:3074
virtual bool evalProjSolution(Matrix &sField, const Vector &locSol, const int *npe, int n_f) const
Evaluates the projected solution field at all visualization points.
Definition: ASMu2D.C:2146
virtual void getElmConnectivities(IntMat &neighs, int basis=ASM::INTEGRATION_BASIS) const
Calculates the matrix of element neighbour connectivities.
Definition: ASMu2D.C:2939
void setOutputMaster(const ASMu2D *pch)
Set master patch for VTF output.
Definition: ASMu2D.h:486
static std::shared_ptr< LR::LRSplineSurface > createLRNurbs(const Go::SplineSurface &srf)
Converts a rational spline surface to a LR NURBS surface.
Definition: ASMu2D.C:533
virtual double findPoint(Vec3 &X, double *param) const
Searches for the specified Cartesian point in the patch.
Definition: ASMu2D.C:1959
virtual bool getElementCoordinates(Matrix &X, int iel, bool forceItg=false) const
Returns a matrix with nodal coordinates for an element.
Definition: ASMu2D.C:958
virtual void constrainNode(double xi, double eta, int dof, int code=0)
Constrains a node identified by two relative parameter values.
Definition: ASMu2D.C:861
void getCornerPoints(int iel, std::vector< utl::Point > &XC) const
Computes the element corner coordinates and parameters.
Definition: ASMu2D.C:1082
Go::BsplineBasis bezier_u
Bezier basis in the u-direction.
Definition: ASMu2D.h:779
virtual void constrainCorner(int I, int J, int dof, int code=0, char basis=1)
Constrains a corner node identified by the two parameter indices.
Definition: ASMu2D.C:851
virtual bool checkElementSize(int elmId, bool globalNum=true) const
Checks if the specified element is larger than the minimum size.
Definition: ASMu2D.C:345
virtual void constrainEdge(int dir, bool open, int dof, int code, char basis)
Constrains all DOFs on a given boundary edge.
Definition: ASMu2D.C:760
virtual bool connectPatch(int edge, ASM2D &neighbor, int nedge, bool revers, int=0, bool coordCheck=true, int thick=1)
Connects all matching nodes on two adjacent boundary edges.
Definition: ASMu2D.C:641
bool getGrevilleParameters(RealArray &prm, int dir, int basisNum=1) const
Calculates parameter values for the Greville points.
Definition: ASMu2Drecovery.C:33
virtual void getNodalCoordinates(Matrix &X, bool=false) const
Returns a matrix with all nodal coordinates within the patch.
Definition: ASMu2D.h:173
virtual bool generateFEMTopology()
Generates the finite element topology data for the patch.
Definition: ASMu2D.C:582
double getParametricLength(int iel, int dir) const
Returns boundary edge length in the parameter space for an element.
Definition: ASMu2D.C:885
virtual bool diracPoint(Integrand &integrand, GlobalIntegral &glbInt, const double *param, const Vec3 &pval)
Integrates a spatial dirac-delta function over a patch.
Definition: ASMu2D.C:1876
virtual bool assembleL2matrices(SystemMatrix &A, SystemVector &B, const L2Integrand &integrand, bool continuous) const
Assembles L2-projection matrices for the secondary solution.
Definition: ASMu2Drecovery.C:105
virtual bool separateProjectionBasis() const
Checks if a separate projection basis is used for this patch.
Definition: ASMu2D.C:2467
static bool getCoordinates(Matrix &X, unsigned char nsd, const LR::LRSplineSurface &spline, int iel=-1)
Returns a matrix with control point coordinates.
Definition: ASMu2D.C:918
void writePostscriptMeshWithControlPointsNurbs(std::shared_ptr< LR::LRSplineSurface > mesh, std::ostream &out, int nu=2, int nv=2)
Write NURBS elements as postscript file.
Definition: ASMu2Dnurbs.C:393
bool uniformRefine(int minBasisfunctions)
Refines the LR-spline patch uniformly.
Definition: ASMu2D.C:238
virtual ~ASMu2D()
Empty destructor.
Definition: ASMu2D.h:127
bool diagonalRefine(int minBasisfunctions)
Refines along the diagonal of the LR-spline patch.
Definition: ASMu2D.C:208
bool cornerRefine(int minBasisfunctions)
Refines the lower-left corner of the LR-spline patch.
Definition: ASMu2D.C:187
virtual Vec3 getCoord(size_t inod) const
Returns the global coordinates for the given node.
Definition: ASMu2D.C:987
virtual void setMinimumSize(double size)
Sets the minimum element area for adaptive refinement.
Definition: ASMu2D.h:243
ASMu2D(unsigned char n_s=2, unsigned char n_f=2)
Default constructor.
Definition: ASMu2D.C:47
BasisFunctionCache()
Default constructor.
Definition: BasisFunctionCache.C:22
Class for storage of a standard FE grid block.
Definition: ElementBlock.h:27
Interface class for scalar fields.
Definition: Field.h:30
Base class for vector fields.
Definition: Fields.h:35
Class representing a finite element.
Definition: FiniteElement.h:29
Base class for unary spatial functions of arbitrary result type.
Definition: Function.h:147
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
Abstract class for evaluating integrand or function.
Definition: GlbL2projector.h:39
Base class for representing a system matrix on different formats.
Definition: SystemMatrix.h:220
Base class for representing a system vector on different formats.
Definition: SystemMatrix.h:32
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
@ INTEGRATION_BASIS
Integration basis.
Definition: ASMenums.h:58
Utilities for LR-splines.
Definition: AdaptiveSetup.h:22
Go::SplineCurve * project(const Go::SplineCurve *curve, const FunctionBase &f, int nComp=1, Real time=Real(0))
Projects a spatial function onto a spline curve.
Definition: SplineUtils.C:204
General utility classes and functions.
Definition: SIMoptions.h:22
Struct representing an inhomogeneous Dirichlet boundary condition.
Definition: ASMu2D.h:492
DirichletEdge(LR::LRSplineSurface *sf, int dir, int d=0, int c=0, int offset=1)
The constructor detects the edge end points.
Definition: ASMu2D.C:711
int corners[2]
Index of the two end-points of this line.
Definition: ASMu2D.h:500
int code
Inhomogeneous Dirichlet condition code.
Definition: ASMu2D.h:499
IntMat MNPC
Matrix of Nodal-Point Correpondanse.
Definition: ASMu2D.h:497
IntVec MLGE
Local-to-Global Element numbers.
Definition: ASMu2D.h:495
IntVec MLGN
Local-to-Global Nodal numbers.
Definition: ASMu2D.h:496
int dof
Local DOF to constrain along the boundary.
Definition: ASMu2D.h:498
bool isCorner(int b) const
Returns true if basis function b is at a corner point.
Definition: ASMu2D.h:506
LR::LRSplineSurface * lr
Pointer to the right object (in case of multiple bases)
Definition: ASMu2D.h:493
LR::parameterEdge edg
Which edge is this.
Definition: ASMu2D.h:494
Struct describing an intersection of mesh lines.
Definition: ASMu2D.h:113
RealArray pts
Intersection points.
Definition: ASMu2D.h:115
int continuity
Continuity across intersection.
Definition: ASMu2D.h:114
Struct holding basis function values and derivatives.
Definition: BasisFunctionVals.h:25
A struct of data to control the mesh refinement.
Definition: ASMunstruct.h:44
Struct representing the time domain.
Definition: TimeDomain.h:23