NURBS3DVolumeCylindrical Class Reference

Calculation of adjoint based sensitivities at wall faces. More...

Inheritance diagram for NURBS3DVolumeCylindrical:
[legend]
Collaboration diagram for NURBS3DVolumeCylindrical:
[legend]

Public Member Functions

 TypeName ("cylindrical")
 Runtime type information. More...
 
 NURBS3DVolumeCylindrical (const dictionary &dict, const fvMesh &mesh, bool computeParamCoors=true)
 Construct from components. More...
 
virtual ~NURBS3DVolumeCylindrical ()=default
 Destructor. More...
 
- Public Member Functions inherited from NURBS3DVolume
 TypeName ("NURBS3DVolume")
 Runtime type information. More...
 
 declareRunTimeSelectionTable (autoPtr, NURBS3DVolume, dictionary,(const dictionary &dict, const fvMesh &mesh, bool computeParamCoors),(dict, mesh, computeParamCoors))
 
 NURBS3DVolume (const dictionary &dict, const fvMesh &mesh, bool computeParamCoors=true)
 Construct from dictionary. More...
 
 NURBS3DVolume (const NURBS3DVolume &)
 Construct as copy. More...
 
virtual ~NURBS3DVolume ()=default
 Destructor. More...
 
vector volumeDerivativeU (const scalar u, const scalar v, const scalar w) const
 Volume point derivative wrt u at point u,v,w. More...
 
vector volumeDerivativeV (const scalar u, const scalar v, const scalar w) const
 Volume point derivative wrt v at point u,v,w. More...
 
vector volumeDerivativeW (const scalar u, const scalar v, const scalar w) const
 Volume point derivative wrt w at point u,v,w. More...
 
tensor JacobianUVW (const vector &u) const
 Jacobian matrix wrt to the volume parametric coordinates. More...
 
scalar volumeDerivativeCP (const vector &u, const label cpI) const
 Volume point derivative wrt to control point cpI at point u,v,w. More...
 
vectorField computeControlPointSensitivities (const pointVectorField &pointSens, const labelList &sensitivityPatchIDs)
 
vectorField computeControlPointSensitivities (const volVectorField &faceSens, const labelList &sensitivityPatchIDs)
 
vectorField computeControlPointSensitivities (const boundaryVectorField &faceSens, const labelList &sensitivityPatchIDs)
 
vector computeControlPointSensitivities (const vectorField &faceSens, const label patchI, const label cpI)
 
tmp< tensorFielddndbBasedSensitivities (const label patchI, const label cpI, bool DimensionedNormalSens=true)
 
tmp< tensorFieldpatchDxDb (const label patchI, const label cpI)
 Get patch dx/db. More...
 
tmp< tensorFieldpatchDxDbFace (const label patchI, const label cpI)
 Get patch dx/db. More...
 
tmp< vectorFieldcoordinates (const vectorField &uVector) const
 
vector coordinates (const vector &uVector) const
 The same, for a specific point. More...
 
tmp< vectorFieldcomputeNewPoints (const vectorField &controlPointsMovement)
 Mesh movement based on given control point movement. More...
 
tmp< vectorFieldcomputeNewBoundaryPoints (const vectorField &controlPointsMovement, const labelList &patchesToBeMoved)
 Boundary mesh movement based on given control point movement. More...
 
label getCPID (const label i, const label j, const label k) const
 Get control point ID from its I-J-K coordinates. More...
 
void setControlPoints (const vectorField &newCps)
 Set new control points. More...
 
void boundControlPointMovement (vectorField &controlPointsMovement)
 
scalar computeMaxBoundaryDisplacement (const vectorField &controlPointsMovement, const labelList &patchesToBeMoved)
 Compute max. displacement at the boundary. More...
 
tmp< vectorFieldgetPointsInBox ()
 Get mesh points that reside within the control points box. More...
 
const labelListgetMap ()
 Get map of points in box to mesh points. More...
 
const labelListgetReverseMap ()
 
const pointVectorFieldgetParametricCoordinates ()
 Get parametric coordinates. More...
 
tmp< pointTensorFieldgetDxDb (const label cpI)
 Get dxCartesiandb for a certain control point. More...
 
tmp< volTensorFieldgetDxCellsDb (const label cpI)
 Get dxCartesiandb for a certain control point on cells. More...
 
label nUSymmetry () const
 Get number of variables if CPs are moved symmetrically in U. More...
 
label nVSymmetry () const
 Get number of variables if CPs are moved symmetrically in V. More...
 
label nWSymmetry () const
 Get number of variables if CPs are moved symmetrically in W. More...
 
const wordname () const
 Get box name. More...
 
const boolListgetActiveCPs () const
 Which control points are active? More...
 
const boolListgetActiveDesignVariables () const
 Which design variables are active? More...
 
const vectorFieldgetControlPoints () const
 Get control points. More...
 
vectorFieldgetControlPoints ()
 
bool confineUMovement () const
 Get confine movements. More...
 
bool confineVMovement () const
 
bool confineWMovement () const
 
const NURBSbasisbasisU () const
 Get basis functions. More...
 
const NURBSbasisbasisV () const
 
const NURBSbasisbasisW () const
 
const fvMeshmesh () const
 Get mesh. More...
 
const dictionarydict () const
 Get dictionary. More...
 
void writeCps (const fileName &="cpsFile", const bool transform=true) const
 
void writeCpsInDict () const
 Write control points on the local coordinate system. More...
 
void write () const
 Write parametric coordinates. More...
 

Protected Member Functions

vector transformPointToCartesian (const vector &localCoordinates) const
 Transform a point from its coordinate system to a cartesian system. More...
 
tensor transformationTensorDxDb (label globalPointIndex)
 
void updateLocalCoordinateSystem (const vectorField &cartesianPoints)
 Update coordinates in the local system based on the cartesian points. More...
 
- Protected Member Functions inherited from NURBS3DVolume
void findPointsInBox (const vectorField &meshPoints)
 Find points within control points box. More...
 
void computeParametricCoordinates (const vectorField &points)
 
void computeParametricCoordinates (tmp< vectorField > tPoints)
 
bool bound (vector &vec, scalar minValue=1e-7, scalar maxValue=0.999999)
 Bound components to certain limits. More...
 
void determineActiveDesignVariablesAndPoints ()
 Create lists with active design variables and control points. More...
 
void confineBoundaryControlPoints ()
 Confine movement in boundary control points if necessary. More...
 
void continuityRealatedConfinement ()
 Confine control point movement to maintain user-defined continuity. More...
 
void confineControlPointsDirections ()
 Confine movement in all control points for user-defined directions. More...
 
void confineControlPoint (const label cpI)
 Confine all three movements for a prescribed control point. More...
 
void confineControlPoint (const label cpI, const boolVector &)
 Confine specific movements for a prescribed control point. More...
 
void makeFolders ()
 Create folders to store cps and derivatives. More...
 

Protected Attributes

vector origin_
 Translation vector. More...
 
- Protected Attributes inherited from NURBS3DVolume
const fvMeshmesh_
 
dictionary dict_
 
word name_
 
NURBSbasis basisU_
 NURBS basis functions. More...
 
NURBSbasis basisV_
 
NURBSbasis basisW_
 
label maxIter_
 Max iterations for Newton-Raphson. More...
 
scalar tolerance_
 Tolerance for Newton-Raphson. More...
 
label nMaxBound_
 
vectorField cps_
 The volumetric B-Splines control points. More...
 
autoPtr< labelListmapPtr_
 Map of points-in-box to mesh points. More...
 
autoPtr< labelListreverseMapPtr_
 Map of mesh points to points-in-box. More...
 
autoPtr< pointVectorFieldparametricCoordinatesPtr_
 Parametric coordinates of pointsInBox. More...
 
vectorField localSystemCoordinates_
 Coordinates in the local system for which CPs are defined. More...
 
label confineUMovement_
 
label confineVMovement_
 
label confineWMovement_
 
label confineBoundaryControlPoints_
 
boolVectorList confineUMinCPs_
 Which movement components to freeze in each plane. More...
 
boolVectorList confineUMaxCPs_
 
boolVectorList confineVMinCPs_
 
boolVectorList confineVMaxCPs_
 
boolVectorList confineWMinCPs_
 
boolVectorList confineWMaxCPs_
 
boolList activeControlPoints_
 Which of the cps are moved in an optimisation. More...
 
boolList activeDesignVariables_
 Which design variables are changed in an optimisation. More...
 
string cpsFolder_
 Folder to store control points. More...
 
bool readStoredData_
 Read parametric coordinates from file if present in the folder. More...
 

Additional Inherited Members

- Static Public Member Functions inherited from NURBS3DVolume
static autoPtr< NURBS3DVolumeNew (const dictionary &dict, const fvMesh &mesh, bool computeParamCoors=true)
 Return a reference to the selected NURBS model. More...
 
- Protected Types inherited from NURBS3DVolume
typedef List< boolVectorboolVectorList
 

Detailed Description

Calculation of adjoint based sensitivities at wall faces.

Source files

Definition at line 53 of file NURBS3DVolumeCylindrical.H.

Constructor & Destructor Documentation

◆ NURBS3DVolumeCylindrical()

NURBS3DVolumeCylindrical ( const dictionary dict,
const fvMesh mesh,
bool  computeParamCoors = true 
)

Construct from components.

Definition at line 126 of file NURBS3DVolumeCylindrical.C.

References mesh.

◆ ~NURBS3DVolumeCylindrical()

virtual ~NURBS3DVolumeCylindrical ( )
virtualdefault

Destructor.

Member Function Documentation

◆ transformPointToCartesian()

Foam::vector transformPointToCartesian ( const vector localCoordinates) const
protectedvirtual

Transform a point from its coordinate system to a cartesian system.

Implements NURBS3DVolume.

Definition at line 54 of file NURBS3DVolumeCylindrical.C.

References Foam::cos(), Foam::sin(), Vector< Cmpt >::x(), Vector< Cmpt >::y(), and Vector< Cmpt >::z().

Here is the call graph for this function:

◆ transformationTensorDxDb()

Foam::tensor transformationTensorDxDb ( label  globalPointIndex)
protectedvirtual

Transformation tensor for dxdb, from local coordinate system to cartesian

Implements NURBS3DVolume.

Definition at line 71 of file NURBS3DVolumeCylindrical.C.

References Foam::cos(), Foam::sin(), Vector< Cmpt >::x(), and Vector< Cmpt >::y().

Here is the call graph for this function:

◆ updateLocalCoordinateSystem()

void updateLocalCoordinateSystem ( const vectorField cartesianPoints)
protectedvirtual

Update coordinates in the local system based on the cartesian points.

Implements NURBS3DVolume.

Definition at line 88 of file NURBS3DVolumeCylindrical.C.

References Foam::atan2(), forAll, Foam::New(), GeometricField< Type, PatchField, GeoMesh >::primitiveFieldRef(), R, Foam::sqr(), Foam::sqrt(), Vector< Cmpt >::x(), Vector< Cmpt >::y(), Vector< Cmpt >::z(), and Foam::Zero.

Here is the call graph for this function:

◆ TypeName()

TypeName ( "cylindrical"  )

Runtime type information.

Member Data Documentation

◆ origin_

vector origin_
protected

Translation vector.

Definition at line 62 of file NURBS3DVolumeCylindrical.H.


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