38 ASMs1D(
unsigned char n_s = 1,
unsigned char n_f = 1);
52 virtual bool read(std::istream&);
54 virtual bool write(std::ostream&,
int = 0)
const;
72 virtual void clear(
bool retainGeometry =
false);
75 virtual int getSize(
int = 0)
const;
97 const Go::SplineCurve* crv)
const;
125 int,
int thick,
int,
bool local)
const;
223 virtual int evalPoint(
const double* xi,
double* param,
Vec3& X)
const;
247 const IntVec& nodes)
const;
254 const int* npe,
int,
bool)
const;
263 int deriv = 0,
int = 0)
const;
270 const int* npe,
int)
const;
278 int,
double time)
const;
294 const int* npe =
nullptr,
char project = 0)
const;
315 const RealArray* gpar,
bool =
true)
const;
368 bool continuous)
const;
415 virtual bool getOrder(
int& p1,
int& p2,
int& p3)
const;
422 virtual bool getSize(
int& n1,
int& n2,
int& n3,
int basis)
const;
431 virtual size_t getNoNodes(
int basis = 0)
const;
454 std::shared_ptr<Go::SplineCurve>
curv;
455 std::shared_ptr<Go::SplineCurve>
proj;
Abstract interface for 1D patches.
std::vector< int > IntVec
General integer vector.
Definition ASMbase.h:25
std::vector< IntVec > IntMat
General 2D integer matrix.
Definition ASMbase.h:26
std::vector< Tensor > TensorVec
An array of non-symmetric tensors.
Definition ASMs1D.h:22
Base class for structured spline-based FE assembly drivers.
Abstract interface for unstructured FE assembly drivers.
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:32
std::vector< Vector > Vectors
An array of real-valued vectors with algebraic operations.
Definition MatVec.h:37
Representation of second-order tensors with some basic operations.
Abstract interface for 1D spline patches.
Definition ASM1D.h:31
const IntMat & MNPC
Matrix of Nodal Point Correspondance.
Definition ASMbase.h:1064
virtual bool evaluate(const ASMbase *basis, const Vector &locVec, RealArray &vec, int basisNum=1) const
Evaluates and interpolates a field over a given geometry.
Definition ASMbase.C:1841
Driver for assembly of structured 1D spline FE models.
Definition ASMs1D.h:35
virtual bool getNoStructElms(int &n1, int &n2, int &n3) const
Returns the number of elements in each parameter direction.
Definition ASMs1D.C:1877
const Tensor & getRotation(size_t inod) const
Returns the current rotation tensor for the given node.
Definition ASMs1D.C:624
virtual size_t getNoProjectionNodes() const
Returns the number of projection nodes for this patch.
Definition ASMs1D.C:931
virtual bool write(std::ostream &, int=0) const
Writes the geometry of the SplineCurve object to given stream.
Definition ASMs1D.C:116
virtual std::pair< size_t, double > findClosestNode(const Vec3 &X) const
Finds the node that is closest to the given point.
Definition ASMs1D.C:811
static void scatterInd(int p1, int start, IntVec &index)
Auxilliary function for computation of basis function indices.
Definition ASMs1D.C:1476
std::map< size_t, size_t > nxMap
Node index map used by getNodeID()
Definition ASMs1D.h:458
virtual int constrainNode(double xi, int dof, int code)
Constrains a node identified by a relative parameter value.
Definition ASMs1D.C:493
virtual bool evalSolution(Matrix &sField, const Vector &locSol, const int *npe, int, bool) const
Evaluates the primary solution field at all visualization points.
Definition ASMs1D.C:1505
bool connectBasis(ASMs1D &neighbor, int slave, int master, int thick=1)
Connects matching nodes on two adjacent vertices.
Definition ASMs1D.C:457
bool getGrevilleParameters(RealArray &prm) const
Calculates parameter values for the Greville points.
Definition ASMs1D.C:1425
IntVec projMLGE
Matrix of Local to Global Element numbers for projection.
Definition ASMs1D.h:461
virtual void getElmConnectivities(IntMat &neigh, int basis=ASM::INTEGRATION_BASIS) const
Calculates the matrix of element neighbour connectivities.
Definition ASMs1D.C:1919
virtual IntMat getElmNodes(int basis) const
Returns the matrix of nodal point correspondance for given basis.
Definition ASMs1D.C:1938
TensorVec prevT
Nodal rotation tensors of last converged configuration.
Definition ASMs1D.h:468
virtual int findElementContaining(const double *param) const
Returns the element that contains a specified spatial point.
Definition ASMs1D.C:1385
bool getElementNodalRotations(TensorVec &T, size_t iel) const
Returns nodal rotation matrices for an element, if any.
Definition ASMs1D.C:676
virtual void getBoundaryNodes(int lIndex, IntVec &nodes, int, int thick, int, bool local) const
Finds the global (or patch-local) node number on a patch end.
Definition ASMs1D.C:775
virtual bool generateOrientedFEModel(const Vec3 &Zaxis)
Generates a beam finite element model for the patch.
Definition ASMs1D.C:295
virtual int getSize(int=0) const
Returns the number of nodal points in the patch.
Definition ASMs1D.C:923
virtual bool tesselate(ElementBlock &grid, const int *npe) const
Creates a line element model of this patch for visualization.
Definition ASMs1D.C:1439
virtual bool getSolution(Matrix &sField, const Vector &locSol, const IntVec &nodes) const
Extract the primary solution field at the specified nodes.
Definition ASMs1D.C:1483
TensorVec myCS
The actual element coordinate systems.
Definition ASMs1D.h:466
double getKnotSpan(int i) const
Returns the parametric length on the i'th knot-span.
Definition ASMs1D.C:600
virtual bool generateFEMTopology()
Generates the finite element topology data for the patch.
Definition ASMs1D.C:281
Tensor getLocal2Global(double u) const
Returns the local-to-global transformation at a parametric point.
Definition ASMs1D.C:559
virtual size_t constrainEndLocal(int dir, int dof, int code)
Constrains all DOFs in local directions at a given end point.
Definition ASMs1D.C:507
virtual void clear(bool retainGeometry=false)
Clears the contents of the patch, making it empty.
Definition ASMs1D.C:127
virtual bool updateCoords(const Vector &displ)
Updates the nodal coordinates for this patch.
Definition ASMs1D.C:709
std::shared_ptr< Go::SplineCurve > curv
The actual spline curve object.
Definition ASMs1D.h:454
virtual bool integrate(Integrand &integrand, GlobalIntegral &glbInt, const TimeDomain &time)
Evaluates an integral over the interior patch domain.
Definition ASMs1D.C:1059
virtual Vec3 getElementCenter(int iel) const
Returns the coordinate of the element center.
Definition ASMs1D.C:762
virtual bool refine(const LR::RefineData &prm, Vectors &)
Refines the mesh adaptively.
Definition ASMs1D.C:153
static void createMNPC(const Go::SplineCurve *crv, IntMat &MNPC)
Creates matrix of nodal point correspondance for a spline curve.
Definition ASMs1D.C:1946
void updateRotations()
Updates the previous nodal rotations for this patch at convergence.
Definition ASMs1D.h:114
virtual bool getParameterDomain(Real2DMat &u, IntVec *corners) const
Returns parameter values and node numbers of the domain corners.
Definition ASMs1D.C:939
TensorVec myT
The actual nodal rotation tensors.
Definition ASMs1D.h:467
virtual bool createProjectionBasis(bool init)
Creates a separate projection basis for this patch.
Definition ASMs1D.C:266
void extractBasis(double u, Vector &N) const
Establishes the vector with basis function values.
Definition ASMs1D.C:1004
virtual bool connectPatch(int vertex, ASM1D &neighbor, int nvertex, int thick=1)
Connects matching nodes on two adjacent vertices.
Definition ASMs1D.C:441
IntMat projMNPC
Matrix of Nodal Point Correspondance for projection.
Definition ASMs1D.h:460
virtual bool getOrder(int &p1, int &p2, int &p3) const
Returns the polynomial order in each parameter direction.
Definition ASMs1D.C:905
double getElementEnds(int i, std::vector< Vec3 > &XC) const
Computes the element end coordinates.
Definition ASMs1D.C:967
virtual bool getElementCoordinates(Matrix &X, int iel, bool=false) const
Returns a matrix with nodal coordinates for an element.
Definition ASMs1D.C:634
virtual bool initLocalElementAxes(const Vec3 &Zaxis)
Initializes the local element axes for a patch of beam elements.
Definition ASMs1D.C:399
std::pair< int, double > findElement(const Vec3 &X) const
Finds the element that contains the given point.
Definition ASMs1D.C:849
virtual Fields * getProjectedFields(const Vector &coefs, size_t=0) const
Returns a field using the projection basis.
Definition ASMs1D.C:1903
virtual double findPoint(Vec3 &X, double *param) const
Searches for the specified Cartesian point in the patch.
Definition ASMs1D.C:793
virtual bool evalProjSolution(Matrix &sField, const Vector &locSol, const int *npe, int) const
Evaluates the projected solution field at all visualization points.
Definition ASMs1D.C:1575
virtual void getNodalCoordinates(Matrix &X, bool=false) const
Returns a matrix with all nodal coordinates within the patch.
Definition ASMs1D.C:700
virtual void getElementBorders(int iel, double *u) const
Computes the element border parameters.
Definition ASMs1D.C:956
std::map< size_t, size_t > xnMap
Node index map used by getCoord()
Definition ASMs1D.h:457
virtual int evalPoint(const double *xi, double *param, Vec3 &X) const
Evaluates the geometry at a specified point.
Definition ASMs1D.C:1372
Go::SplineCurve * getCurve() const
Returns the spline curve representing the geometry of this patch.
Definition ASMs1D.h:45
virtual void closeBoundaries(int, int basis, int master)
Makes the two end vertices of the curve periodic.
Definition ASMs1D.C:485
virtual void findBoundaryElms(IntVec &elms, int lIndex, int=0) const
Finds the path-local element numbers on a patch boundary.
Definition ASMs1D.C:1932
virtual bool evaluate(const FunctionBase *func, RealArray &vec, int, double time) const
Evaluates and interpolates a function over a given geometry.
Definition ASMs1D.C:1886
virtual ~ASMs1D()
Empty destructor.
Definition ASMs1D.h:42
virtual void evaluateBasis(double u, double, double, Vector &N) const
Evaluates the basis functions at the specified point.
Definition ASMs1D.C:998
const TensorVec & nodalT
Nodal rotation tensors (for 3D beams)
Definition ASMs1D.h:464
virtual bool uniformRefine(int nInsert)
Refines the parametrization by inserting extra knots uniformly.
Definition ASMs1D.C:219
bool updatedT
If true, nodal rotation matrices have been updated.
Definition ASMs1D.h:471
Go::SplineCurve * projectSolution(const IntegrandBase &integrand) const
Projects the secondary solution field onto the primary basis.
Definition ASMs1D.C:1656
virtual size_t getNoNodes(int basis=0) const
Returns the total number of nodes in this patch.
Definition ASMs1D.C:143
std::shared_ptr< Go::SplineCurve > proj
Spline curve for projection basis.
Definition ASMs1D.h:455
virtual bool raiseOrder(int ru)
Raises the order of the SplineCurve object for this patch.
Definition ASMs1D.C:244
virtual bool getGridParameters(RealArray &prm, int nSegSpan) const
Calculates parameter values for visualization nodal points.
Definition ASMs1D.C:1391
void applyTwist(const RealFunc &twist)
Applies a twist angle to the beam transformation matrices.
Definition ASMs1D.C:420
virtual bool assembleL2matrices(SystemMatrix &A, SystemVector &B, const L2Integrand &integrand, bool continuous) const
Assembles L2-projection matrices for the secondary solution.
Definition ASMs1D.C:1778
virtual bool read(std::istream &)
Creates an instance by reading the given input stream.
Definition ASMs1D.C:62
virtual Vec3 getCoord(size_t inod) const
Returns the global coordinates for the given node.
Definition ASMs1D.C:610
const TensorVec & elmCS
Element coordinate systems (for 3D beams)
Definition ASMs1D.h:463
Base class for structured spline-based FE assembly drivers.
Definition ASMstruct.h:32
Abstract interface for unstructured spline patches.
Definition ASMunstruct.h:64
Class for storage of a standard FE grid block.
Definition ElementBlock.h:27
Base class for vector fields.
Definition Fields.h:35
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:40
Scalar-valued unary function of a spatial point.
Definition Function.h:193
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 non-symmetric second-order tensor.
Definition Tensor.h:28
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
A struct of data to control the mesh refinement.
Definition ASMunstruct.h:44
Struct representing the time domain.
Definition TimeDomain.h:23