SU2
Public Member Functions | Protected Attributes | List of all members
CVolumetricMovement Class Reference

Class for moving the volumetric numerical grid. More...

#include <grid_movement_structure.hpp>

Inheritance diagram for CVolumetricMovement:
CGridMovement

Public Member Functions

 CVolumetricMovement (CGeometry *geometry, CConfig *config)
 Constructor of the class.
 
 ~CVolumetricMovement (void)
 Destructor of the class.
 
void UpdateGridCoord (CGeometry *geometry, CConfig *config)
 Update the value of the coordinates after the grid movement. More...
 
void UpdateDualGrid (CGeometry *geometry, CConfig *config)
 Update the dual grid after the grid movement (edges and control volumes). More...
 
void UpdateMultiGrid (CGeometry **geometry, CConfig *config)
 Update the coarse multigrid levels after the grid movement. More...
 
su2double SetFEAMethodContributions_Elem (CGeometry *geometry, CConfig *config)
 Compute the stiffness matrix for grid deformation using spring analogy. More...
 
void SetFEA_StiffMatrix3D (CGeometry *geometry, CConfig *config, su2double **StiffMatrix_Elem, unsigned long PointCorners[8], su2double CoordCorners[8][3], unsigned short nNodes, su2double ElemVolume, su2double ElemDistance)
 Build the stiffness matrix for a 3-D hexahedron element. The result will be placed in StiffMatrix_Elem. More...
 
void SetFEA_StiffMatrix2D (CGeometry *geometry, CConfig *config, su2double **StiffMatrix_Elem, unsigned long PointCorners[8], su2double CoordCorners[8][3], unsigned short nNodes, su2double ElemVolume, su2double ElemDistance)
 Build the stiffness matrix for a 3-D hexahedron element. The result will be placed in StiffMatrix_Elem. More...
 
su2double ShapeFunc_Hexa (su2double Xi, su2double Eta, su2double Zeta, su2double CoordCorners[8][3], su2double DShapeFunction[8][4])
 Shape functions and derivative of the shape functions. More...
 
su2double ShapeFunc_Tetra (su2double Xi, su2double Eta, su2double Zeta, su2double CoordCorners[8][3], su2double DShapeFunction[8][4])
 Shape functions and derivative of the shape functions. More...
 
su2double ShapeFunc_Pyram (su2double Xi, su2double Eta, su2double Zeta, su2double CoordCorners[8][3], su2double DShapeFunction[8][4])
 Shape functions and derivative of the shape functions. More...
 
su2double ShapeFunc_Prism (su2double Xi, su2double Eta, su2double Zeta, su2double CoordCorners[8][3], su2double DShapeFunction[8][4])
 Shape functions and derivative of the shape functions. More...
 
su2double ShapeFunc_Triangle (su2double Xi, su2double Eta, su2double CoordCorners[8][3], su2double DShapeFunction[8][4])
 Shape functions and derivative of the shape functions. More...
 
su2double ShapeFunc_Quadrilateral (su2double Xi, su2double Eta, su2double CoordCorners[8][3], su2double DShapeFunction[8][4])
 Shape functions and derivative of the shape functions. More...
 
su2double GetHexa_Volume (su2double CoordCorners[8][3])
 Compute the shape functions for hexahedron. More...
 
su2double GetTetra_Volume (su2double CoordCorners[8][3])
 Compute the shape functions for hexahedron. More...
 
su2double GetPrism_Volume (su2double CoordCorners[8][3])
 Compute the shape functions for hexahedron. More...
 
su2double GetPyram_Volume (su2double CoordCorners[8][3])
 Compute the shape functions for hexahedron. More...
 
su2double GetTriangle_Area (su2double CoordCorners[8][3])
 Compute the shape functions for hexahedron. More...
 
su2double GetQuadrilateral_Area (su2double CoordCorners[8][3])
 Compute the shape functions for hexahedron. More...
 
void AddFEA_StiffMatrix (CGeometry *geometry, su2double **StiffMatrix_Elem, unsigned long PointCorners[8], unsigned short nNodes)
 Add the stiffness matrix for a 2-D triangular element to the global stiffness matrix for the entire mesh (node-based). More...
 
void ComputeDeforming_Element_Volume (CGeometry *geometry, su2double &MinVolume, su2double &MaxVolume)
 Check for negative volumes (all elements) after performing grid deformation. More...
 
void ComputeDeforming_Wall_Distance (CGeometry *geometry, CConfig *config, su2double &MinDistance, su2double &MaxDistance)
 Compute the minimum distance to the nearest deforming surface. More...
 
void SetBoundaryDisplacements (CGeometry *geometry, CConfig *config)
 Check the boundary vertex that are going to be moved. More...
 
void SetDomainDisplacements (CGeometry *geometry, CConfig *config)
 Check the domain points vertex that are going to be moved. More...
 
void Rigid_Rotation (CGeometry *geometry, CConfig *config, unsigned short iZone, unsigned long iter)
 Unsteady grid movement using rigid mesh rotation. More...
 
void Rigid_Pitching (CGeometry *geometry, CConfig *config, unsigned short iZone, unsigned long iter)
 Unsteady pitching grid movement using rigid mesh motion. More...
 
void Rigid_Plunging (CGeometry *geometry, CConfig *config, unsigned short iZone, unsigned long iter)
 Unsteady plunging grid movement using rigid mesh motion. More...
 
void Rigid_Translation (CGeometry *geometry, CConfig *config, unsigned short iZone, unsigned long iter)
 Unsteady translational grid movement using rigid mesh motion. More...
 
void SetVolume_Scaling (CGeometry *geometry, CConfig *config, bool UpdateGeo)
 Scale the volume grid by a multiplicative factor. More...
 
void SetVolume_Translation (CGeometry *geometry, CConfig *config, bool UpdateGeo)
 Translate the volume grid by a specified displacement vector. More...
 
void SetVolume_Rotation (CGeometry *geometry, CConfig *config, bool UpdateGeo)
 Rotate the volume grid around a specified axis and angle. More...
 
void SetVolume_Deformation (CGeometry *geometry, CConfig *config, bool UpdateGeo, bool Derivative=false)
 Grid deformation using the spring analogy method. More...
 
void SetBoundaryDerivatives (CGeometry *geometry, CConfig *config)
 Set the derivatives of the boundary nodes. More...
 
void UpdateGridCoord_Derivatives (CGeometry *geometry, CConfig *config)
 Update the derivatives of the coordinates after the grid movement. More...
 
su2double Determinant_3x3 (su2double A00, su2double A01, su2double A02, su2double A10, su2double A11, su2double A12, su2double A20, su2double A21, su2double A22)
 Compute the determinant of a 3 by 3 matrix. 3 by 3 matrix elements. More...
 
void Set_nIterMesh (unsigned long val_nIterMesh)
 Store the number of iterations when moving the mesh. More...
 
unsigned long Get_nIterMesh (void)
 Retrieve the number of iterations when moving the mesh. More...
 
- Public Member Functions inherited from CGridMovement
 CGridMovement (void)
 Constructor of the class.
 
virtual ~CGridMovement (void)
 Destructor of the class.
 
virtual void SetSurface_Deformation (CGeometry *geometry, CConfig *config)
 A pure virtual member. More...
 

Protected Attributes

unsigned short nDim
 Number of dimensions.
 
unsigned short nVar
 Number of variables.
 
unsigned long nPoint
 Number of points.
 
unsigned long nPointDomain
 Number of points in the domain.
 
unsigned long nIterMesh
 Number of iterations in the mesh update. +.
 
CSysMatrix StiffMatrix
 Matrix to store the point-to-point stiffness.
 
CSysVector LinSysSol
 
CSysVector LinSysRes
 

Detailed Description

Class for moving the volumetric numerical grid.

Author
F. Palacios, A. Bueno, T. Economon, S. Padron.
Version
5.0.0 "Raven"

Member Function Documentation

§ AddFEA_StiffMatrix()

void CVolumetricMovement::AddFEA_StiffMatrix ( CGeometry geometry,
su2double **  StiffMatrix_Elem,
unsigned long  PointCorners[8],
unsigned short  nNodes 
)

Add the stiffness matrix for a 2-D triangular element to the global stiffness matrix for the entire mesh (node-based).

Parameters
[in]geometry- Geometrical definition of the problem.
[in]StiffMatrix_Elem- Element stiffness matrix to be filled.
[in]PointCorners- Index values for element corners
[in]nNodes- Number of nodes defining the element.

§ ComputeDeforming_Element_Volume()

void CVolumetricMovement::ComputeDeforming_Element_Volume ( CGeometry geometry,
su2double &  MinVolume,
su2double &  MaxVolume 
)

Check for negative volumes (all elements) after performing grid deformation.

Parameters
[in]geometry- Geometrical definition of the problem.

§ ComputeDeforming_Wall_Distance()

void CVolumetricMovement::ComputeDeforming_Wall_Distance ( CGeometry geometry,
CConfig config,
su2double &  MinDistance,
su2double &  MaxDistance 
)

Compute the minimum distance to the nearest deforming surface.

Parameters
[in]geometry- Geometrical definition of the problem.
[in]config- Definition of the particular problem.

§ Determinant_3x3()

su2double CVolumetricMovement::Determinant_3x3 ( su2double  A00,
su2double  A01,
su2double  A02,
su2double  A10,
su2double  A11,
su2double  A12,
su2double  A20,
su2double  A21,
su2double  A22 
)
inline

Compute the determinant of a 3 by 3 matrix. 3 by 3 matrix elements.

Parameters
[in]A00
[in]A01
[in]A02
[in]A10
[in]A11
[in]A12
[in]A20
[in]A21
[in]A22
Returns
Determinant of the matrix

§ Get_nIterMesh()

unsigned long CVolumetricMovement::Get_nIterMesh ( void  )
inline

Retrieve the number of iterations when moving the mesh.

Parameters
[out]Numberof iterations.

§ GetHexa_Volume()

su2double CVolumetricMovement::GetHexa_Volume ( su2double  CoordCorners[8][3])

Compute the shape functions for hexahedron.

Parameters
[in]CoordCorners- coordinates of the cornes of the hexahedron.

§ GetPrism_Volume()

su2double CVolumetricMovement::GetPrism_Volume ( su2double  CoordCorners[8][3])

Compute the shape functions for hexahedron.

Parameters
[in]CoordCorners- coordinates of the cornes of the hexahedron.

§ GetPyram_Volume()

su2double CVolumetricMovement::GetPyram_Volume ( su2double  CoordCorners[8][3])

Compute the shape functions for hexahedron.

Parameters
[in]CoordCorners- coordinates of the cornes of the hexahedron.

§ GetQuadrilateral_Area()

su2double CVolumetricMovement::GetQuadrilateral_Area ( su2double  CoordCorners[8][3])

Compute the shape functions for hexahedron.

Parameters
[in]CoordCorners- coordinates of the cornes of the hexahedron.

§ GetTetra_Volume()

su2double CVolumetricMovement::GetTetra_Volume ( su2double  CoordCorners[8][3])

Compute the shape functions for hexahedron.

Parameters
[in]CoordCorners- coordinates of the cornes of the hexahedron.

§ GetTriangle_Area()

su2double CVolumetricMovement::GetTriangle_Area ( su2double  CoordCorners[8][3])

Compute the shape functions for hexahedron.

Parameters
[in]CoordCorners- coordinates of the cornes of the hexahedron.

§ Rigid_Pitching()

void CVolumetricMovement::Rigid_Pitching ( CGeometry geometry,
CConfig config,
unsigned short  iZone,
unsigned long  iter 
)

Unsteady pitching grid movement using rigid mesh motion.

Parameters
[in]geometry- Geometrical definition of the problem.
[in]config- Definition of the particular problem.
[in]iZone- Zone number in the mesh.
[in]iter- Physical time iteration number.

§ Rigid_Plunging()

void CVolumetricMovement::Rigid_Plunging ( CGeometry geometry,
CConfig config,
unsigned short  iZone,
unsigned long  iter 
)

Unsteady plunging grid movement using rigid mesh motion.

Parameters
[in]geometry- Geometrical definition of the problem.
[in]config- Definition of the particular problem.
[in]iZone- Zone number in the mesh.
[in]iter- Physical time iteration number.

§ Rigid_Rotation()

void CVolumetricMovement::Rigid_Rotation ( CGeometry geometry,
CConfig config,
unsigned short  iZone,
unsigned long  iter 
)

Unsteady grid movement using rigid mesh rotation.

Parameters
[in]geometry- Geometrical definition of the problem.
[in]config- Definition of the particular problem.
[in]iZone- Zone number in the mesh.
[in]iter- Physical time iteration number.

§ Rigid_Translation()

void CVolumetricMovement::Rigid_Translation ( CGeometry geometry,
CConfig config,
unsigned short  iZone,
unsigned long  iter 
)

Unsteady translational grid movement using rigid mesh motion.

Parameters
[in]geometry- Geometrical definition of the problem.
[in]config- Definition of the particular problem.
[in]iZone- Zone number in the mesh.
[in]iter- Physical time iteration number.

§ Set_nIterMesh()

void CVolumetricMovement::Set_nIterMesh ( unsigned long  val_nIterMesh)
inline

Store the number of iterations when moving the mesh.

Parameters
[in]val_nIterMesh- Number of iterations.

§ SetBoundaryDerivatives()

void CVolumetricMovement::SetBoundaryDerivatives ( CGeometry geometry,
CConfig config 
)

Set the derivatives of the boundary nodes.

Parameters
[in]geometry- Geometrical definition of the problem.
[in]config- Definition of the particular problem.

§ SetBoundaryDisplacements()

void CVolumetricMovement::SetBoundaryDisplacements ( CGeometry geometry,
CConfig config 
)

Check the boundary vertex that are going to be moved.

Parameters
[in]geometry- Geometrical definition of the problem.
[in]config- Definition of the particular problem.

§ SetDomainDisplacements()

void CVolumetricMovement::SetDomainDisplacements ( CGeometry geometry,
CConfig config 
)

Check the domain points vertex that are going to be moved.

Parameters
[in]geometry- Geometrical definition of the problem.
[in]config- Definition of the particular problem.

§ SetFEA_StiffMatrix2D()

void CVolumetricMovement::SetFEA_StiffMatrix2D ( CGeometry geometry,
CConfig config,
su2double **  StiffMatrix_Elem,
unsigned long  PointCorners[8],
su2double  CoordCorners[8][3],
unsigned short  nNodes,
su2double  ElemVolume,
su2double  ElemDistance 
)

Build the stiffness matrix for a 3-D hexahedron element. The result will be placed in StiffMatrix_Elem.

Parameters
[in]geometry- Geometrical definition of the problem.
[in]config- Definition of the particular problem.
[in]StiffMatrix_Elem- Element stiffness matrix to be filled.
[in]CoordCorners- Index value for Node 1 of the current hexahedron.
[in]PointCorners- Index values for element corners
[in]nNodes- Number of nodes defining the element.
[in]scale

§ SetFEA_StiffMatrix3D()

void CVolumetricMovement::SetFEA_StiffMatrix3D ( CGeometry geometry,
CConfig config,
su2double **  StiffMatrix_Elem,
unsigned long  PointCorners[8],
su2double  CoordCorners[8][3],
unsigned short  nNodes,
su2double  ElemVolume,
su2double  ElemDistance 
)

Build the stiffness matrix for a 3-D hexahedron element. The result will be placed in StiffMatrix_Elem.

Parameters
[in]geometry- Geometrical definition of the problem.
[in]config- Definition of the particular problem.
[in]StiffMatrix_Elem- Element stiffness matrix to be filled.
[in]CoordCorners- Index value for Node 1 of the current hexahedron.
[in]PointCorners- Index values for element corners
[in]nNodes- Number of nodes defining the element.
[in]scale

§ SetFEAMethodContributions_Elem()

su2double CVolumetricMovement::SetFEAMethodContributions_Elem ( CGeometry geometry,
CConfig config 
)

Compute the stiffness matrix for grid deformation using spring analogy.

Parameters
[in]geometry- Geometrical definition of the problem.
[in]config- Definition of the particular problem.
Returns
Value of the length of the smallest edge of the grid.

§ SetVolume_Deformation()

void CVolumetricMovement::SetVolume_Deformation ( CGeometry geometry,
CConfig config,
bool  UpdateGeo,
bool  Derivative = false 
)

Grid deformation using the spring analogy method.

Parameters
[in]geometry- Geometrical definition of the problem.
[in]config- Definition of the particular problem.
[in]UpdateGeo- Update geometry.
[in]Derivative- Compute the derivative (disabled by default). Does not actually deform the grid if enabled.

§ SetVolume_Rotation()

void CVolumetricMovement::SetVolume_Rotation ( CGeometry geometry,
CConfig config,
bool  UpdateGeo 
)

Rotate the volume grid around a specified axis and angle.

Parameters
[in]geometry- Geometrical definition of the problem.
[in]config- Definition of the particular problem.
[in]UpdateGeo- Update geometry.

§ SetVolume_Scaling()

void CVolumetricMovement::SetVolume_Scaling ( CGeometry geometry,
CConfig config,
bool  UpdateGeo 
)

Scale the volume grid by a multiplicative factor.

Parameters
[in]geometry- Geometrical definition of the problem.
[in]config- Definition of the particular problem.
[in]UpdateGeo- Update geometry.

§ SetVolume_Translation()

void CVolumetricMovement::SetVolume_Translation ( CGeometry geometry,
CConfig config,
bool  UpdateGeo 
)

Translate the volume grid by a specified displacement vector.

Parameters
[in]geometry- Geometrical definition of the problem.
[in]config- Definition of the particular problem.
[in]UpdateGeo- Update geometry.

§ ShapeFunc_Hexa()

su2double CVolumetricMovement::ShapeFunc_Hexa ( su2double  Xi,
su2double  Eta,
su2double  Zeta,
su2double  CoordCorners[8][3],
su2double  DShapeFunction[8][4] 
)

Shape functions and derivative of the shape functions.

Parameters
[in]Xi- Local coordinates.
[in]Eta- Local coordinates.
[in]Zeta- Local coordinates.
[in]CoordCorners- Coordiantes of the corners.
[in]DShapeFunction- Shape function information

§ ShapeFunc_Prism()

su2double CVolumetricMovement::ShapeFunc_Prism ( su2double  Xi,
su2double  Eta,
su2double  Zeta,
su2double  CoordCorners[8][3],
su2double  DShapeFunction[8][4] 
)

Shape functions and derivative of the shape functions.

Parameters
[in]Xi- Local coordinates.
[in]Eta- Local coordinates.
[in]Zeta- Local coordinates.
[in]CoordCorners- Coordiantes of the corners.
[in]DShapeFunction- Shape function information

§ ShapeFunc_Pyram()

su2double CVolumetricMovement::ShapeFunc_Pyram ( su2double  Xi,
su2double  Eta,
su2double  Zeta,
su2double  CoordCorners[8][3],
su2double  DShapeFunction[8][4] 
)

Shape functions and derivative of the shape functions.

Parameters
[in]Xi- Local coordinates.
[in]Eta- Local coordinates.
[in]Zeta- Local coordinates.
[in]CoordCorners- Coordiantes of the corners.
[in]DShapeFunction- Shape function information

§ ShapeFunc_Quadrilateral()

su2double CVolumetricMovement::ShapeFunc_Quadrilateral ( su2double  Xi,
su2double  Eta,
su2double  CoordCorners[8][3],
su2double  DShapeFunction[8][4] 
)

Shape functions and derivative of the shape functions.

Parameters
[in]Xi- Local coordinates.
[in]Eta- Local coordinates.
[in]CoordCorners- Coordiantes of the corners.
[in]DShapeFunction- Shape function information

§ ShapeFunc_Tetra()

su2double CVolumetricMovement::ShapeFunc_Tetra ( su2double  Xi,
su2double  Eta,
su2double  Zeta,
su2double  CoordCorners[8][3],
su2double  DShapeFunction[8][4] 
)

Shape functions and derivative of the shape functions.

Parameters
[in]Xi- Local coordinates.
[in]Eta- Local coordinates.
[in]Zeta- Local coordinates.
[in]CoordCorners- Coordiantes of the corners.
[in]DShapeFunction- Shape function information

§ ShapeFunc_Triangle()

su2double CVolumetricMovement::ShapeFunc_Triangle ( su2double  Xi,
su2double  Eta,
su2double  CoordCorners[8][3],
su2double  DShapeFunction[8][4] 
)

Shape functions and derivative of the shape functions.

Parameters
[in]Xi- Local coordinates.
[in]Eta- Local coordinates.
[in]CoordCorners- Coordiantes of the corners.
[in]DShapeFunction- Shape function information

§ UpdateDualGrid()

void CVolumetricMovement::UpdateDualGrid ( CGeometry geometry,
CConfig config 
)

Update the dual grid after the grid movement (edges and control volumes).

Parameters
[in]geometry- Geometrical definition of the problem.
[in]config- Definition of the particular problem.

§ UpdateGridCoord()

void CVolumetricMovement::UpdateGridCoord ( CGeometry geometry,
CConfig config 
)

Update the value of the coordinates after the grid movement.

Parameters
[in]geometry- Geometrical definition of the problem.
[in]config- Definition of the particular problem.

§ UpdateGridCoord_Derivatives()

void CVolumetricMovement::UpdateGridCoord_Derivatives ( CGeometry geometry,
CConfig config 
)

Update the derivatives of the coordinates after the grid movement.

Parameters
[in]geometry- Geometrical definition of the problem.
[in]config- Definition of the particular problem.

§ UpdateMultiGrid()

void CVolumetricMovement::UpdateMultiGrid ( CGeometry **  geometry,
CConfig config 
)

Update the coarse multigrid levels after the grid movement.

Parameters
[in]geometry- Geometrical definition of the problem.
[in]config- Definition of the particular problem.

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