IFEM  90A354
Public Member Functions | Static Public Member Functions | Protected Member Functions | List of all members
ASM1D Class Referenceabstract

Abstract interface for 1D spline patches. More...

#include <ASM1D.h>

Inheritance diagram for ASM1D:
Inheritance graph
[legend]

Public Member Functions

virtual ~ASM1D ()
 Empty destructor.
 
ASMbaseclone (unsigned char *nf=nullptr) const
 Returns a copy of this patch with identical FE discretization. More...
 
virtual bool uniformRefine (int nInsert)=0
 Refines the parametrization by inserting extra knots uniformly. More...
 
virtual bool raiseOrder (int ru)=0
 Raises the order of the spline object for this patch. More...
 
virtual bool refine (const std::vector< double > &xi)=0
 Refines the parametrization by inserting extra knots. More...
 
virtual int constrainNode (double xi, int dof, int code=0)=0
 Constrains a node identified by two relative parameter values. More...
 
virtual size_t constrainEndLocal (int dir, int dof, int code=0)=0
 Constrains all DOFs in local directions at a given end point. More...
 
virtual bool getGridParameters (std::vector< double > &prm, int nSegSpan) const =0
 Calculates parameter values for visualization nodal points. More...
 
virtual bool connectPatch (int vertex, ASM1D &neighbor, int nvertex, int thick=1)=0
 Connects matching nodes on two adjacent vertices. More...
 

Static Public Member Functions

static ASMbasecreate (ASM::Discretization type, unsigned char nd, unsigned char nf)
 Creates a one-parametric patch of specified discretization type. More...
 
static ASMbasecreate (ASM::Discretization type, unsigned char nf=1)
 Creates a one-parametric patch of specified discretization type. More...
 
static double getElementSize (const std::vector< Vec3 > &XC)
 Returns characteristic element size based on end point coordinates.
 

Protected Member Functions

 ASM1D ()
 The constructor is protected to allow objects of sub-classes only.
 

Detailed Description

Abstract interface for 1D spline patches.

This class contains an interface to methods common for 1D patches.

Member Function Documentation

◆ clone()

ASMbase * ASM1D::clone ( unsigned char *  nf = nullptr) const

Returns a copy of this patch with identical FE discretization.

Parameters
[in]nfNumber of unknown per basis function in the patch
Note
The copied patch shares the FE data structures with the copy, in order to save memory. Thus, the copy cannot be read from file, refined, or changed in other ways that affect the FE geometry and/or topology. The other properties of the patch (boundary conditions, constraints, loads, etc.) are however not copied.

◆ connectPatch()

virtual bool ASM1D::connectPatch ( int  vertex,
ASM1D neighbor,
int  nvertex,
int  thick = 1 
)
pure virtual

Connects matching nodes on two adjacent vertices.

Parameters
[in]vertexLocal vertex index of this patch, in range [1,2]
neighborThe neighbor patch
[in]nvertexLocal vertex index of neighbor patch, in range [1,2]
[in]thickThickness of connection

Implemented in ASMs1D.

Referenced by SIM1D::connectPatches().

◆ constrainEndLocal()

virtual size_t ASM1D::constrainEndLocal ( int  dir,
int  dof,
int  code = 0 
)
pure virtual

Constrains all DOFs in local directions at a given end point.

Parameters
[in]dirParameter direction defining the end to constrain
[in]dofWhich local DOFs to constrain at the end point
[in]codeInhomogeneous dirichlet condition code

Implemented in ASMs1DC1, and ASMs1D.

Referenced by SIM1D::addConstraint().

◆ constrainNode()

virtual int ASM1D::constrainNode ( double  xi,
int  dof,
int  code = 0 
)
pure virtual

Constrains a node identified by two relative parameter values.

Parameters
[in]xiParameter value along the curve
[in]dofWhich DOFs to constrain at the node
[in]codeInhomogeneous dirichlet condition code
Returns
1-based index of the constrained node

The parameter value has to be in the domain [0.0,1.0], where 0.0 means the beginning of the domain and 1.0 means the end. For values in between, the actual index is taken as the integer value closest to r*n, where r denotes the given relative parameter value, and n is the number of nodes along that parameter direction.

Implemented in ASMs1DC1, and ASMs1D.

Referenced by SIM1D::addConstraint(), SIM1D::parse(), and SIM1D::parseBCTag().

◆ create() [1/2]

ASMbase * ASM1D::create ( ASM::Discretization  type,
unsigned char  nd,
unsigned char  nf 
)
static

Creates a one-parametric patch of specified discretization type.

Parameters
[in]typeThe discretization method to use
[in]ndNumber of spatial dimensions
[in]nfNumber of unknowns per basis function in the patch

Referenced by create(), SIM1D::parseGeometryTag(), and SIM1D::readPatch().

◆ create() [2/2]

ASMbase * ASM1D::create ( ASM::Discretization  type,
unsigned char  nf = 1 
)
static

Creates a one-parametric patch of specified discretization type.

Parameters
[in]typeThe discretization method to use
[in]nfNumber of unknowns per basis function in the patch

References create().

◆ getGridParameters()

virtual bool ASM1D::getGridParameters ( std::vector< double > &  prm,
int  nSegSpan 
) const
pure virtual

Calculates parameter values for visualization nodal points.

Parameters
[out]prmParameter values for all points
[in]nSegSpanNumber of visualization segments over each knot-span

◆ raiseOrder()

virtual bool ASM1D::raiseOrder ( int  ru)
pure virtual

Raises the order of the spline object for this patch.

Parameters
[in]ruNumber of times to raise the order in u-direction

Implemented in ASMs1D.

Referenced by SIM1D::parseGeometryTag().

◆ refine()

virtual bool ASM1D::refine ( const std::vector< double > &  xi)
pure virtual

Refines the parametrization by inserting extra knots.

Parameters
[in]xiRelative positions of added knots in each existing knot span

Referenced by SIM1D::parseGeometryTag().

◆ uniformRefine()

virtual bool ASM1D::uniformRefine ( int  nInsert)
pure virtual

Refines the parametrization by inserting extra knots uniformly.

Parameters
[in]nInsertNumber of extra knots to insert in each knot-span

Implemented in ASMs1D.

Referenced by SIM1D::parseGeometryTag().


The documentation for this class was generated from the following files: