Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Discrete adjoint for deforming meshes #833

Merged
merged 135 commits into from
Apr 10, 2020
Merged
Show file tree
Hide file tree
Changes from 130 commits
Commits
Show all changes
135 commits
Select commit Hold shift + click to select a range
e825d05
Initial implementation of surface plunging with new mesh solver
cvencro Oct 13, 2019
21abcba
Attempt Surface Plunging inside CMeshSolver
cvencro Oct 14, 2019
ddc3649
Initial implementation of surface pitching, rotating, translating wit…
cvencro Oct 15, 2019
8becaa0
Merge branch 'develop' into feature_dyn_deform_adjoint
cvencro Nov 9, 2019
3fcaeaf
Add surface deformation routines to CMeshSolver
cvencro Nov 9, 2019
c18d302
Merge 'develop' into branch 'feature_dyn_deform_adjoint'
cvencro Nov 26, 2019
17f4158
Load restarts with CMeshSolver if deforming mesh
cvencro Nov 27, 2019
a29dc57
Use initial mesh to set up negative restart request in dual-time
cvencro Nov 27, 2019
b6a6bed
Revert Euler wall boundary condition
cvencro Dec 3, 2019
400e2a7
Merge 'develop' into branch 'feature_dyn_deform_adjoint' and fix mino…
cvencro Dec 8, 2019
27ec14c
tidy up
cvencro Dec 8, 2019
00536f0
if statement to swap between BCs to help debug
cvencro Dec 9, 2019
b957cdf
Fix to use z rotational rate in 2D problems
cvencro Dec 11, 2019
556d5a5
Merge 'develop' into 'feature_dyn_deform_adjoint' and fix conflicts
cvencro Jan 30, 2020
f46eb5e
roll forward on euler wall bc for this PR
cvencro Jan 31, 2020
7378563
Add missing comments
cvencro Feb 5, 2020
649f7fa
fix for fsi2d regression test
cvencro Feb 5, 2020
fe3aa02
Merge branch 'develop' into feature_dyn_deform_adjoint
cvencro Feb 5, 2020
8e01376
fix for unsteady restart reg test
cvencro Feb 5, 2020
745b26e
update mesh restart solution
cvencro Feb 5, 2020
2d521f3
Merge branch 'develop' into feature_dyn_deform_adjoint
cvencro Mar 5, 2020
01e43ed
update deform mesh check for incompressible flow
cvencro Mar 9, 2020
0ef39c4
added deforming pitching airfoil testcase
cvencro Mar 9, 2020
d77f73c
add dual time derivative
cvencro Mar 9, 2020
f50785a
general cleanup
pcarruscag Mar 11, 2020
49f7d62
cleanup RBF interpolation
pcarruscag Mar 17, 2020
ff8c57f
prune tolerance for sparse RBF interpolation matrix
pcarruscag Mar 17, 2020
8896112
RBF interpolation in parallel
pcarruscag Mar 17, 2020
47ad5d1
adjust some settings in regression case to make it closer to reference
pcarruscag Mar 17, 2020
04fff4b
move pruning to separate function
pcarruscag Mar 17, 2020
d077e55
move one more chunk of code to separate function
pcarruscag Mar 17, 2020
9185ca9
hybrid parallel nearest neighbor search
pcarruscag Mar 18, 2020
b7223b2
general cleanup of all interpolation classes
pcarruscag Mar 18, 2020
b6da6e9
strip trailing spaces
pcarruscag Mar 18, 2020
aaad242
split interpolation_structure
pcarruscag Mar 18, 2020
b32753c
cleanup interface preprocessing
pcarruscag Mar 18, 2020
e1fa6df
move CSymmetricMatrix to toolboxes
pcarruscag Mar 18, 2020
7197721
cleanup CMirror, make search hybrid parallel
pcarruscag Mar 18, 2020
fe8fcc9
generalize CNearestNeighbor for KNN
pcarruscag Mar 18, 2020
dd1cdce
more cleanup, try to recover behavior of testcase
pcarruscag Mar 18, 2020
c0504ff
fix build issues
pcarruscag Mar 18, 2020
a61f3b8
const use of CConfig in CInterpolator
pcarruscag Mar 19, 2020
02df871
more const correctness
pcarruscag Mar 19, 2020
759e8a7
more blas 3 optimization of RBF interpolation, some cleanup of CVertex
pcarruscag Mar 19, 2020
9ef625a
fix deallocation bug in C2DContainer for systems with weird aligned_a…
pcarruscag Mar 19, 2020
faafa22
more CSymmetricMatrix optimization
pcarruscag Mar 19, 2020
72da532
fix AD build
pcarruscag Mar 19, 2020
6864175
basic interpolation statistics and error checking
pcarruscag Mar 19, 2020
f48e235
cleaner computation of RBF polynomial terms
pcarruscag Mar 20, 2020
2af4b88
fix bug in pruning of coefficients, more interp stats
pcarruscag Mar 20, 2020
db7dfce
Merge branch 'develop' into feature_dyn_deform_adjoint
pcarruscag Mar 20, 2020
ceb37bc
Revert "add dual time derivative"
cvencro Mar 21, 2020
ef3071e
add regression test results
cvencro Mar 21, 2020
9207885
update vals to start of time iteration
cvencro Mar 21, 2020
d3715c4
fix reg test
cvencro Mar 21, 2020
41598d8
some indentation in CConfig
pcarruscag Mar 23, 2020
d67df29
cleanup CFEAIteration
pcarruscag Mar 23, 2020
429ff42
nearest neighbor stats
pcarruscag Mar 24, 2020
ae7fae5
simplify "initial_calc" logic of CFEASolver to avoid confusing user e…
pcarruscag Mar 24, 2020
01d8531
fix, CFL_REDUCTION_TURB had no effect
pcarruscag Mar 25, 2020
5884e98
Merge branch 'hybrid_parallel_fallback_strategies' into feature_hybri…
pcarruscag Mar 25, 2020
9e825c9
Merge branch 'multiphysics_interpolation_improvements' into feature_h…
pcarruscag Mar 25, 2020
3553116
update testcases after re-enabling option CFL_REDUCTION_TURB
pcarruscag Mar 26, 2020
40ab0d7
Merge remote-tracking branch 'upstream/develop' into multiphysics_int…
pcarruscag Mar 26, 2020
816331d
Merge remote-tracking branch 'upstream/feature_dyn_deform_adjoint' in…
pcarruscag Mar 26, 2020
51efbb4
remove legacy FSI output
pcarruscag Mar 26, 2020
c355415
remove legacy FSI transfer classes
pcarruscag Mar 26, 2020
a0f1bba
remove CDiscAdjFSIDriver
pcarruscag Mar 26, 2020
18520a6
remove CElasticityMovement
pcarruscag Mar 26, 2020
a981935
remove CVariable and CSolver cross-term handling methods
pcarruscag Mar 26, 2020
d30b31e
remove legacy FSI options
pcarruscag Mar 26, 2020
2cacc2f
fix un-init boolean
pcarruscag Mar 26, 2020
935345f
update FSI testcases
pcarruscag Mar 26, 2020
05758ff
temporarily move some surface motions to CMeshSolver to avoid duplica…
pcarruscag Mar 26, 2020
0975fd8
Merge remote-tracking branch 'upstream/develop' into multiphysics_int…
pcarruscag Mar 28, 2020
56b7c55
option to define a region of maximum mesh stiffness around deforming …
pcarruscag Mar 28, 2020
1fa58da
initialize the linear system solution of CMeshSolver
pcarruscag Mar 28, 2020
afa4154
mitigate bug affecting displacement boundary conditions caused by par…
pcarruscag Mar 30, 2020
f9aa579
small fix
pcarruscag Mar 30, 2020
bf4366b
ensure MPI-independence (consistent ordering of donor points) of RBF …
pcarruscag Mar 30, 2020
c120270
MPI-independent nearest neighbor search
pcarruscag Mar 31, 2020
259a770
simplify (and fix) FSI load integration
pcarruscag Mar 31, 2020
cf259f3
update jones turbo case from merge with develop
pcarruscag Mar 31, 2020
33fd0a9
Merge remote-tracking branch 'upstream/develop' into multiphysics_int…
pcarruscag Mar 31, 2020
96802c6
avoid residual changes for mesh deformation cases
pcarruscag Mar 31, 2020
fee22d5
re-delete files after merge with develop
pcarruscag Mar 31, 2020
123f008
update primal FSI cases due to initialized mesh deformation
pcarruscag Mar 31, 2020
83bb15d
fix for disc adj FEA problems
pcarruscag Mar 31, 2020
5e5237c
updates and fixes for testcases
pcarruscag Mar 31, 2020
2cb89b4
Merge remote-tracking branch 'upstream/develop' into multiphysics_int…
pcarruscag Mar 31, 2020
f73eec5
version update in new file
pcarruscag Mar 31, 2020
4944e2e
fix #915
pcarruscag Apr 1, 2020
0015fb5
refactor isoparametric interpolation
pcarruscag Apr 2, 2020
8fc82a5
small fixes
pcarruscag Apr 2, 2020
66cef89
tuning parameters
pcarruscag Apr 2, 2020
209c7f3
fix uninit variable
pcarruscag Apr 2, 2020
74ffc2e
small tweaks
pcarruscag Apr 2, 2020
abf5b0f
robustness improvements
pcarruscag Apr 3, 2020
79dcfae
old compiler fixes
pcarruscag Apr 3, 2020
02e96d3
Merge branch 'multiphysics_interpolation_improvements' into grid_defo…
pcarruscag Apr 4, 2020
a86857b
adding DEFORM_POISSONS_RATIO to testcases due to bug fix
pcarruscag Apr 4, 2020
c4eb4f6
cleanup and small fixes
pcarruscag Apr 4, 2020
60564a7
update RBF case residuals after changes in point ordering from #914
pcarruscag Apr 4, 2020
5fab28c
cleanup
pcarruscag Apr 4, 2020
e7e2d30
remove obsolete BGSSolution and duplication of ComputeResidualMultizone
pcarruscag Apr 4, 2020
f6bf33e
small fix
pcarruscag Apr 4, 2020
3d6cacf
cleanup
pcarruscag Apr 4, 2020
33b30f3
forgot a coma
pcarruscag Apr 4, 2020
35a3fd6
more duplication cleanup
pcarruscag Apr 4, 2020
213d4d2
fix (??) for the pitching deforming adjoint case
pcarruscag Apr 4, 2020
26a6038
CInterpolatorFactory
pcarruscag Apr 5, 2020
3414313
missing new files
pcarruscag Apr 5, 2020
b629af1
move test files
cvencro Apr 5, 2020
344200e
Merge branch 'develop' into feature_dyn_deform_adjoint
cvencro Apr 5, 2020
ed8fd35
re-add missed primal test case
cvencro Apr 5, 2020
3068862
fix fsi and cht problems
pcarruscag Apr 5, 2020
7ad760b
Merge remote-tracking branch 'upstream/feature_dyn_deform_adjoint' in…
pcarruscag Apr 5, 2020
68aa56a
keep settings backwards compatible
pcarruscag Apr 5, 2020
8ee9946
cleanup and minor fixes
pcarruscag Apr 5, 2020
af67917
fix mpi consistency issues for isoparametric interpolation
pcarruscag Apr 6, 2020
c3fe652
Merge pull request #919 from su2code/grid_deformation_legacy_cleanup
cvencro Apr 6, 2020
f41b078
improve "best donor element" search
pcarruscag Apr 6, 2020
2792f0c
handle perfect matches of vertices
pcarruscag Apr 7, 2020
fc59fa2
avoid numerical issues for triangles by solving normal equations
pcarruscag Apr 7, 2020
86a43cd
Merge remote-tracking branch 'upstream/develop' into grid_deformation…
pcarruscag Apr 7, 2020
ae4650b
Merge branch 'grid_deformation_legacy_cleanup' into feature_dyn_defor…
pcarruscag Apr 7, 2020
6df502d
improve CMirror to use less memory when interpolation matrix is dense
pcarruscag Apr 7, 2020
2983736
minor compiler warning
pcarruscag Apr 7, 2020
bf0d4d3
speedup searched in CMirror by sorting matrix by search keys
pcarruscag Apr 7, 2020
fbf40bf
Merge branch 'grid_deformation_legacy_cleanup' into feature_dyn_defor…
pcarruscag Apr 7, 2020
ff63bf4
fix #930
pcarruscag Apr 10, 2020
4007f21
Merge remote-tracking branch 'upstream/fix_multizone_walldistance' in…
pcarruscag Apr 10, 2020
c656620
Merge remote-tracking branch 'upstream/develop' into feature_dyn_defo…
pcarruscag Apr 10, 2020
a942c5b
update testcases after #930 fix
pcarruscag Apr 10, 2020
92a9cba
one more update...
pcarruscag Apr 10, 2020
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
337 changes: 179 additions & 158 deletions Common/include/CConfig.hpp

Large diffs are not rendered by default.

75 changes: 21 additions & 54 deletions Common/include/geometry/dual_grid/CVertex.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -37,26 +37,23 @@
*/
class CVertex : public CDualGrid {
protected:
unsigned long *Nodes; /*!< \brief Vector to store the global nodes of an element. */
su2double *Normal; /*!< \brief Normal coordinates of the element and its center of gravity. */
su2double Aux_Var; /*!< \brief Auxiliar variable defined only on the surface. */
su2double CartCoord[3]; /*!< \brief Vertex cartesians coordinates. */
su2double VarCoord[3]; /*!< \brief Used for storing the coordinate variation due to a surface modification. */
su2double *VarRot; /*!< \brief Used for storing the rotation variation due to a surface modification. */
long PeriodicPoint[5]; /*!< \brief Store the periodic point of a boundary (iProcessor, iPoint) */
bool ActDisk_Perimeter; /*!< \brief Identify nodes at the perimeter of the actuator disk */
short Rotation_Type; /*!< \brief Type of rotation associated with the vertex (MPI and periodic) */
unsigned long Nodes[1]; /*!< \brief Vector to store the global nodes of an element. */
su2double Normal[3]; /*!< \brief Normal coordinates of the element and its center of gravity. */
su2double Aux_Var; /*!< \brief Auxiliar variable defined only on the surface. */
su2double CartCoord[3]; /*!< \brief Vertex cartesians coordinates. */
su2double VarCoord[3]; /*!< \brief Used for storing the coordinate variation due to a surface modification. */
su2double *VarRot; /*!< \brief Used for storing the rotation variation due to a surface modification. */
long PeriodicPoint[5]; /*!< \brief Store the periodic point of a boundary (iProcessor, iPoint) */
bool ActDisk_Perimeter; /*!< \brief Identify nodes at the perimeter of the actuator disk */
short Rotation_Type; /*!< \brief Type of rotation associated with the vertex (MPI and periodic) */
unsigned long Normal_Neighbor; /*!< \brief Index of the closest neighbor. */
unsigned long *Donor_Points; /*!< \brief indices of donor points for interpolation across zones */
unsigned long *Donor_Proc; /*!< \brief indices of donor processor for interpolation across zones in parallel */
unsigned long Donor_Elem; /*!< \brief Store the donor element for interpolation across zones/ */
unsigned short Donor_Face; /*!<\brief Store the donor face (w/in donor element) for interpolation across zones */
su2double Basis_Function[3]; /*!< \brief Basis function values for interpolation across zones. */
su2double *Donor_Coeff; /*!\brief Store a list of coefficients corresponding to the donor points. */
unsigned short nDonor_Points; /*!\brief Number of points in Donor_Points; at least there will be one donor point (if the mesh is matching)*/
unsigned long *Donor_Points; /*!< \brief indices of donor points for interpolation across zones */
unsigned long *Donor_Proc; /*!< \brief indices of donor processor for interpolation across zones in parallel */
su2double Basis_Function[3]; /*!< \brief Basis function values for interpolation across zones. */
su2double *Donor_Coeff; /*!< \brief Store a list of coefficients corresponding to the donor points. */
unsigned short nDonor_Points; /*!< \brief Number of points in Donor_Coeff. */

public:

/*!
* \brief Constructor of the class.
* \param[in] val_point - Node of the vertex.
Expand Down Expand Up @@ -113,6 +110,11 @@ class CVertex : public CDualGrid {
*/
inline su2double *GetNormal(void) override { return Normal; }

/*!
* \brief Get the ith component of the normal.
*/
inline su2double GetNormal(unsigned short iDim) const { return Normal[iDim]; }

/*!
* \brief Initialize normal vector.
*/
Expand Down Expand Up @@ -308,30 +310,6 @@ class CVertex : public CDualGrid {
*/
inline bool GetActDisk_Perimeter(void) const { return ActDisk_Perimeter; }

/*!
* \brief Set the donor element of a vertex for interpolation across zones.
* \param[in] val_donorelem - donor element index.
*/
inline void SetDonorElem(long val_donorelem) { Donor_Elem = val_donorelem; }

/*!
* \brief Get the donor element of a vertex for interpolation across zones.
* \return Value of the donor element of a vertex.
*/
inline long GetDonorElem(void) const { return Donor_Elem; }

/*!
* \brief Set the donor face of a vertex for interpolation across zones.
* \param[in] val_donorface- donor face index (w/in donor elem).
*/
inline void SetDonorFace(unsigned short val_donorface) { Donor_Face = val_donorface; }

/*!
* \brief Get the donor face of a vertex for interpolation across zones.
* \return Value of the donor face index (w/in donor elem).
*/
inline unsigned short GetDonorFace(void) const { return Donor_Face; }

/*!
* \brief Set the finite element basis functions needed for interpolation.
* \param[in] val_node - a node index of the owner element.
Expand All @@ -358,17 +336,6 @@ class CVertex : public CDualGrid {
*/
inline unsigned long GetNormal_Neighbor(void) const { return Normal_Neighbor; }

/*!
* \brief Increment the number of donor points by 1.
*/
inline void IncrementnDonor(void) {nDonor_Points++;}

/*!
* \brief Set the value of nDonor_Points
* \param[in] nDonor - the number of donor points
*/
inline void SetnDonorPoints(unsigned short nDonor) {nDonor_Points = nDonor;}

/*!
* \brief Return the value of nDonor_Points
* \return nDonor - the number of donor points
Expand Down Expand Up @@ -419,9 +386,9 @@ class CVertex : public CDualGrid {

/*!
* \brief Allocate memory based on how many donor points need to be stored.
* Uses nDonor_Points
* \param[in] nDonor - the number of donor points
*/
void Allocate_DonorInfo(void);
void Allocate_DonorInfo(unsigned short nDonor);

/*!
* \brief Get the rotation variation
Expand Down
22 changes: 21 additions & 1 deletion Common/include/geometry/elements/CElement.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
* Copyright 2012-2020, SU2 Contributors (cf. AUTHORS.md)
Expand Down Expand Up @@ -627,6 +627,26 @@ class CQUAD4 final : public CElementWithKnownSizes<4,4,2> {
*/
CQUAD4();

/*!
* \brief Shape functions (Ni) evaluated at point Xi,Eta.
*/
inline static void ShapeFunctions(su2double Xi, su2double Eta, su2double* Ni) {
Ni[0] = 0.25*(1.0-Xi)*(1.0-Eta);
Ni[1] = 0.25*(1.0+Xi)*(1.0-Eta);
Ni[2] = 0.25*(1.0+Xi)*(1.0+Eta);
Ni[3] = 0.25*(1.0-Xi)*(1.0+Eta);
}

/*!
* \brief Shape function Jacobian (dNi) evaluated at point Xi,Eta.
*/
inline static void ShapeFunctionJacobian(su2double Xi, su2double Eta, su2double dNi[][2]) {
dNi[0][0] = -0.25*(1.0-Eta); dNi[0][1] = -0.25*(1.0-Xi);
dNi[1][0] = 0.25*(1.0-Eta); dNi[1][1] = -0.25*(1.0+Xi);
dNi[2][0] = 0.25*(1.0+Eta); dNi[2][1] = 0.25*(1.0+Xi);
dNi[3][0] = -0.25*(1.0+Eta); dNi[3][1] = 0.25*(1.0-Xi);
}

/*!
* \brief Compute the value of the area of the element.
* \param[in] mode - Type of coordinates to consider in the computation.
Expand Down
217 changes: 0 additions & 217 deletions Common/include/grid_movement_structure.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -1290,183 +1290,6 @@ class CVolumetricMovement : public CGridMovement {
virtual void Boundary_Dependencies(CGeometry **geometry, CConfig *config);
};

/*!
* \class CElasticityMovement
* \brief Class for moving the volumetric numerical grid using the new linear elasticity solver.
* \author R.Sanchez, based on CVolumetricMovement developments of F. Palacios, A. Bueno, T. Economon, S. Padron
* \version 7.0.3 "Blackbird"
*/
class CElasticityMovement : public CVolumetricMovement {
protected:

unsigned short nDim; /*!< \brief Number of dimensions. */
unsigned short nVar; /*!< \brief Number of variables. */

unsigned long nPoint; /*!< \brief Number of points. */
unsigned long nPointDomain; /*!< \brief Number of points in the domain. */

unsigned long nIterMesh; /*!< \brief Number of iterations in the mesh update. +*/
su2double valResidual;

su2double *Residual, /*!< \brief Auxiliary nDim vector. */
*Solution; /*!< \brief Auxiliary nDim vector. */

su2double **matrixZeros; /*!< \brief Submatrix to make zeros and impose boundary conditions. */
su2double **matrixId; /*!< \brief Diagonal submatrix to impose boundary conditions. */

su2double MinVolume;
su2double MaxVolume;

#ifndef CODI_FORWARD_TYPE
CSysSolve<passivedouble> System;
CSysMatrix<passivedouble> StiffMatrix; /*!< \brief Matrix to store the point-to-point stiffness. */
#else
CSysSolve<su2double> System;
CSysMatrix<su2double> StiffMatrix;
#endif
CSysVector<su2double> LinSysSol;
CSysVector<su2double> LinSysRes;

su2double E; /*!< \brief Young's modulus of elasticity. */
su2double Nu; /*!< \brief Poisson's ratio. */

su2double Mu; /*!< \brief Lame's coeficient. */
su2double Lambda; /*!< \brief Lame's coeficient. */

su2double **Jacobian_ij; /*!< \brief Submatrix to store the constitutive term for node ij. */

su2double **Ba_Mat, /*!< \brief Matrix B for node a - Auxiliary. */
**Bb_Mat; /*!< \brief Matrix B for node b - Auxiliary. */
su2double **KAux_ab; /*!< \brief Stiffness sub-term - Auxiliary. */
su2double **D_Mat; /*!< \brief Constitutive matrix - Auxiliary. */
su2double **GradNi_Ref_Mat; /*!< \brief Gradients of Ni - Auxiliary. */

public:

CElement** element_container; /*!< \brief Container which stores the element information. */

/*!
* \brief Constructor of the class.
*/
CElasticityMovement(CGeometry *geometry, CConfig *config);

/*!
* \brief Destructor of the class.
*/
~CElasticityMovement(void);

/*!
* \brief Grid deformation using the linear elasticity equations.
* \param[in] geometry - Geometrical definition of the problem.
* \param[in] config - Definition of the particular problem.
* \param[in] UpdateGeo - Update geometry.
* \param[in] Derivative - Compute the derivative (disabled by default). Does not actually deform the grid if enabled.
*/
void SetVolume_Deformation_Elas(CGeometry *geometry, CConfig *config, bool UpdateGeo, bool screen_output, bool Derivative = false);

/*!
* \brief Update the value of the coordinates after the grid movement.
* \param[in] geometry - Geometrical definition of the problem.
* \param[in] config - Definition of the particular problem.
*/
void UpdateGridCoord(CGeometry *geometry, CConfig *config);

/*!
* \brief Update the dual grid after the grid movement (edges and control volumes).
* \param[in] geometry - Geometrical definition of the problem.
* \param[in] config - Definition of the particular problem.
*/
void UpdateDualGrid(CGeometry *geometry, CConfig *config);

/*!
* \brief Update the coarse multigrid levels after the grid movement.
* \param[in] geometry - Geometrical definition of the problem.
* \param[in] config - Definition of the particular problem.
*/
void UpdateMultiGrid(CGeometry **geometry, CConfig *config);

/*!
* \brief Check the boundary vertex that are going to be moved.
* \param[in] geometry - Geometrical definition of the problem.
* \param[in] config - Definition of the particular problem.
*/
void SetBoundaryDisplacements(CGeometry *geometry, CConfig *config);

/*!
* \brief Set the boundary displacements to 0.
* \param[in] geometry - Geometrical definition of the problem.
* \param[in] config - Definition of the particular problem.
* \param[in] val_marker -
*/
void SetClamped_Boundary(CGeometry *geometry, CConfig *config, unsigned short val_marker);

/*!
* \brief Set the boundary displacements to the imposed external value.
* \param[in] geometry - Geometrical definition of the problem.
* \param[in] config - Definition of the particular problem.
*/
void SetMoving_Boundary(CGeometry *geometry, CConfig *config, unsigned short val_marker);

/*!
* \brief Compute the min and max volume for the stiffness matrix for grid deformation.
* \param[in] geometry - Geometrical definition of the problem.
* \param[in] config - Definition of the particular problem.
* \return Value of the length of the smallest edge of the grid.
*/
void SetMinMaxVolume(CGeometry *geometry, CConfig *config);

/*!
* \brief Compute the min and max volume for the stiffness matrix for grid deformation.
* \param[in] geometry - Geometrical definition of the problem.
* \param[in] config - Definition of the particular problem.
* \return Value of the length of the smallest edge of the grid.
*/
void SetStiffnessMatrix(CGeometry *geometry, CConfig *config);

/*!
* \brief Store the number of iterations when moving the mesh.
* \param[in] val_nIterMesh - Number of iterations.
*/
void Set_nIterMesh(unsigned long val_nIterMesh);

/*!
* \brief Retrieve the number of iterations when moving the mesh.
* \param[out] Number of iterations.
*/
unsigned long Get_nIterMesh(void);

/*!
* \brief Compute the stiffness of the element and the parameters Lambda and Mu
*/
void Set_Element_Stiffness(su2double ElemVolume, CConfig *config);

/*!
* \brief Compute the stiffness of the element and the parameters Lambda and Mu
*/
void Compute_Element_Contribution(CElement *element, CConfig *config);

/*!
* \brief Compute the constitutive matrix in an element for mesh deformation problems
* \param[in] element_container - Element structure for the particular element integrated.
*/
void Compute_Constitutive_Matrix(void);

/*!
* \brief Set the boundary displacements in the mesh side of the problem
* \param[in] geometry - Geometrical definition of the problem.
* \param[in] config - Definition of the particular problem.
*/
void Transfer_Boundary_Displacements(CGeometry *geometry, CConfig *config, unsigned short val_marker);

/*!
* \brief Set the boundary displacements in the mesh side of the problem
* \param[in] geometry - Geometrical definition of the problem.
* \param[in] config - Definition of the particular problem.
*/
void Boundary_Dependencies(CGeometry **geometry, CConfig *config);

};

/*!
* \class CSurfaceMovement
* \brief Class for moving the surface numerical grid.
Expand Down Expand Up @@ -1571,46 +1394,6 @@ class CSurfaceMovement : public CGridMovement {
*/
void Moving_Walls(CGeometry *geometry, CConfig *config, unsigned short iZone, unsigned long iter);

/*!
* \brief Computes the displacement of a translating surface for a dynamic mesh simulation.
* \param[in] geometry - Geometrical definition of the problem.
* \param[in] config - Definition of the particular problem.
* \param[in] iter - Current physical time iteration.
* \param[in] iZone - Zone number in the mesh.
*/
void Surface_Translating(CGeometry *geometry, CConfig *config,
unsigned long iter, unsigned short iZone);

/*!
* \brief Computes the displacement of a plunging surface for a dynamic mesh simulation.
* \param[in] geometry - Geometrical definition of the problem.
* \param[in] config - Definition of the particular problem.
* \param[in] iter - Current physical time iteration.
* \param[in] iZone - Zone number in the mesh.
*/
void Surface_Plunging(CGeometry *geometry, CConfig *config,
unsigned long iter, unsigned short iZone);

/*!
* \brief Computes the displacement of a pitching surface for a dynamic mesh simulation.
* \param[in] geometry - Geometrical definition of the problem.
* \param[in] config - Definition of the particular problem.
* \param[in] iter - Current physical time iteration.
* \param[in] iZone - Zone number in the mesh.
*/
void Surface_Pitching(CGeometry *geometry, CConfig *config,
unsigned long iter, unsigned short iZone);

/*!
* \brief Computes the displacement of a rotating surface for a dynamic mesh simulation.
* \param[in] geometry - Geometrical definition of the problem.
* \param[in] config - Definition of the particular problem.
* \param[in] iter - Current physical time iteration.
* \param[in] iZone - Zone number in the mesh.
*/
void Surface_Rotating(CGeometry *geometry, CConfig *config,
unsigned long iter, unsigned short iZone);

/*!
* \brief Computes the displacement of a rotating surface for a dynamic mesh simulation.
* \param[in] geometry - Geometrical definition of the problem.
Expand Down
4 changes: 0 additions & 4 deletions Common/include/grid_movement_structure.inl
Original file line number Diff line number Diff line change
Expand Up @@ -216,10 +216,6 @@ inline void CVolumetricMovement::SetVolume_Deformation_Elas(CGeometry *geometry,

inline void CVolumetricMovement::Boundary_Dependencies(CGeometry **geometry, CConfig *config) { }

inline void CElasticityMovement::Set_nIterMesh(unsigned long val_nIterMesh) { nIterMesh = val_nIterMesh; }

inline unsigned long CElasticityMovement::Get_nIterMesh() { return nIterMesh; }

inline bool CSurfaceMovement::CheckFFDBoxDefinition(CConfig *config, unsigned short iDV) {
for (unsigned short iFFDBox = 0; iFFDBox < GetnFFDBox(); iFFDBox++) {
if (FFDBox[iFFDBox]->GetTag() == config->GetFFDTag(iDV)) { return true;}
Expand Down
Loading