|
|
virtual | ~ASM3D () |
| | Empty destructor.
|
| |
| ASMbase * | clone (const CharVec &nf=CharVec()) const |
| | Returns a copy of this patch with identical FE discretization. More...
|
| |
|
virtual bool | checkRightHandSystem () |
| | Checks that the patch is modelled in a right-hand-side system.
|
| |
| virtual bool | uniformRefine (int dir, int nInsert)=0 |
| | Refines the parametrization by inserting extra knots uniformly. More...
|
| |
| virtual bool | raiseOrder (int ru, int rv, int rw, bool setOrder=false)=0 |
| | Raises the order of the spline object for this patch. More...
|
| |
| virtual bool | refine (int dir, const std::vector< double > &xi)=0 |
| | Refines the parametrization by inserting extra knots. More...
|
| |
| virtual void | constrainFace (int dir, bool open, int dof, int code=0, char basis=1)=0 |
| | Constrains all DOFs on a given boundary face. More...
|
| |
| 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. More...
|
| |
| virtual void | constrainEdge (int lEdge, bool open, int dof, int code=0, char basis=1)=0 |
| | Constrains all DOFs on a given boundary edge. More...
|
| |
| 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. More...
|
| |
| 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. More...
|
| |
| 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. More...
|
| |
| virtual bool | getGridParameters (std::vector< double > &prm, int dir, int nSegSpan) const =0 |
| | Calculates parameter values for visualization nodal points. More...
|
| |
|
virtual int | getCorner (int I, int J, int K, int basis) const =0 |
| | Returns the node index for a given corner.
|
| |
| 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. More...
|
| |
Abstract interface for 3D spline patches.
This class contains an interface to methods common for structured and unstructured 3D patches, such that these methods can be invoked without the need to type-cast the patch object to the actual class type.
| virtual bool ASM3D::connectPatch |
( |
int |
face, |
|
|
ASM3D & |
neighbor, |
|
|
int |
nface, |
|
|
int |
norient, |
|
|
int |
= 0, |
|
|
bool |
coordCheck = true, |
|
|
int |
thick = 1 |
|
) |
| |
|
pure virtual |
Connects all matching nodes on two adjacent boundary faces.
- Parameters
-
| [in] | face | Local face index of this patch, in range [1,6] |
| neighbor | The neighbor patch |
| [in] | nface | Local face index of neighbor patch, in range [1,6] |
| [in] | norient | Relative face orientation flag (see below) |
| [in] | coordCheck | False to disable coordinate checks (periodic connections) |
| [in] | thick | Thickness of connection |
The face orientation flag norient must be in range [0,7]. When interpreted as a binary number, its 3 digits are decoded as follows:
- left digit = 1: The u and v parameters of the neighbor face are swapped
- middle digit = 1: Parameter u in neighbor patch face is reversed
- right digit = 1: Parameter v in neighbor patch face is reversed
Implemented in ASMu3D, ASMs3D, ASMs3DmxLag, and ASMs3Dmx.
Referenced by SIM3D::connectPatches().
| virtual void ASM3D::constrainCorner |
( |
int |
I, |
|
|
int |
J, |
|
|
int |
K, |
|
|
int |
dof = 123, |
|
|
int |
code = 0, |
|
|
char |
basis = 1 |
|
) |
| |
|
pure virtual |
Constrains a corner node identified by the three parameter indices.
- Parameters
-
| [in] | I | Parameter index in u-direction |
| [in] | J | Parameter index in v-direction |
| [in] | K | Parameter index in w-direction |
| [in] | dof | Which DOFs to constrain at the node |
| [in] | code | Inhomogeneous dirichlet condition code |
| [in] | basis | Which basis to constrain corner for |
The sign of the three indices is used to define whether we want the node at the beginning or the end of that parameter direction. The magnitude of the indices are not used.
Implemented in ASMu3D, and ASMs3D.
Referenced by SIM3D::addConstraint().
| virtual void ASM3D::constrainLine |
( |
int |
fdir, |
|
|
int |
ldir, |
|
|
double |
xi, |
|
|
int |
dof = 123, |
|
|
int |
code = 0, |
|
|
char |
basis = 1 |
|
) |
| |
|
pure virtual |
Constrains all DOFs along a line on a given boundary face.
- Parameters
-
| [in] | fdir | Parameter direction defining the face to constrain |
| [in] | ldir | Parameter direction defining the line to constrain |
| [in] | xi | Parameter value defining the line to constrain |
| [in] | dof | Which DOFs to constrain at each node along the line |
| [in] | code | Inhomogeneous dirichlet condition code |
| [in] | basis | Which basis to constrain line for |
The parameter xi 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. The line to constrain goes along the parameter direction ldir in the face with with normal in parameter direction fdir, and positioned along the third parameter direction as indicated by xi. The actual value of xi is converted to the integer value closest to xi*n, where n is the number of nodes (control points) in that parameter direction.
Implemented in ASMu3D, and ASMs3D.
| virtual void ASM3D::constrainNode |
( |
double |
xi, |
|
|
double |
eta, |
|
|
double |
zeta, |
|
|
int |
dof = 123, |
|
|
int |
code = 0 |
|
) |
| |
|
pure virtual |
Constrains a node identified by three relative parameter values.
- Parameters
-
| [in] | xi | Parameter in u-direction |
| [in] | eta | Parameter in v-direction |
| [in] | zeta | Parameter in w-direction |
| [in] | dof | Which DOFs to constrain at the node |
| [in] | code | Inhomogeneous dirichlet condition code |
The parameter values have 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 ASMu3D, and ASMs3D.
Referenced by SIM3D::parse(), and SIM3D::parseBCTag().