42 typedef std::vector<unsigned char>
CharVec;
49 const CharVec& nf,
bool mixedFEM =
false);
78 virtual bool raiseOrder(
int ru,
int rv,
int rw,
bool setOrder =
false) = 0;
82 virtual bool refine(
int dir,
const std::vector<double>& xi) = 0;
91 int code = 0,
char basis = 1) = 0;
101 bool project =
false,
char T1 =
'\0') = 0;
127 int code = 0,
char basis = 1) = 0;
141 int code = 0,
char basis = 1) = 0;
155 int dof = 123,
int code = 0) = 0;
162 int dir,
int nSegSpan)
const = 0;
165 virtual int getCorner(
int I,
int J,
int K,
int basis)
const = 0;
181 int = 0,
bool coordCheck =
true,
int thick = 1) = 0;
static SystemMatrix * K
Pointer to coefficient matrix A.
Definition: EigSolver.C:91
static const double T1[2]
1-point rule coordinates.
Definition: TriangleQuadrature.C:19
Abstract interface for 3D spline patches.
Definition: ASM3D.h:33
virtual size_t constrainFaceLocal(int dir, bool open, int dof, int code=0, bool project=false, char T1='\0')=0
Constrains all DOFs in local directions on a given boundary face.
std::vector< unsigned char > CharVec
Convenience type.
Definition: ASM3D.h:42
static double getElementSize(const std::vector< Vec3 > &XC)
Returns characteristic element size based on corner coordinates.
Definition: ASM3D.C:92
virtual ~ASM3D()
Empty destructor.
Definition: ASM3D.h:40
virtual bool connectPatch(int face, ASM3D &neighbor, int nface, int norient, int=0, bool coordCheck=true, int thick=1)=0
Connects all matching nodes on two adjacent boundary faces.
ASMbase * clone(const CharVec &nf=CharVec()) const
Returns a copy of this patch with identical FE discretization.
Definition: ASM3D.C:73
virtual void constrainNode(double xi, double eta, double zeta, int dof=123, int code=0)=0
Constrains a node identified by three relative parameter values.
virtual void constrainLine(int fdir, int ldir, double xi, int dof=123, int code=0, char basis=1)=0
Constrains all DOFs along a line on a given boundary face.
virtual bool getGridParameters(std::vector< double > &prm, int dir, int nSegSpan) const =0
Calculates parameter values for visualization nodal points.
ASM3D()
The constructor is protected to allow objects of sub-classes only.
Definition: ASM3D.h:36
virtual void constrainEdge(int lEdge, bool open, int dof, int code=0, char basis=1)=0
Constrains all DOFs on a given boundary edge.
virtual bool checkRightHandSystem()
Checks that the patch is modelled in a right-hand-side system.
Definition: ASM3D.h:67
static ASMbase * create(ASM::Discretization type, const CharVec &nf, bool mixedFEM=false)
Creates a three-parametric patch of specified discretization type.
Definition: ASM3D.C:32
virtual int getCorner(int I, int J, int K, int basis) const =0
Returns the node index for a given corner.
virtual bool raiseOrder(int ru, int rv, int rw, bool setOrder=false)=0
Raises the order of the spline object for this patch.
virtual void constrainFace(int dir, bool open, int dof, int code=0, char basis=1)=0
Constrains all DOFs on a given boundary face.
virtual void constrainCorner(int I, int J, int K, int dof=123, int code=0, char basis=1)=0
Constrains a corner node identified by the three parameter indices.
virtual bool refine(int dir, const std::vector< double > &xi)=0
Refines the parametrization by inserting extra knots.
virtual bool uniformRefine(int dir, int nInsert)=0
Refines the parametrization by inserting extra knots uniformly.
Base class for spline-based finite element (FE) assembly drivers.
Definition: ASMbase.h:70
Simple class for representing a point in 3D space.
Definition: Vec3.h:27
Discretization
Enum defining the available discretization methods.
Definition: ASMenums.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