Skip to content

Commit 711ba29

Browse files
authored
Merge branch 'develop' into fix_multigrid_agglomeration
2 parents 70a0638 + f4cda52 commit 711ba29

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

45 files changed

+600
-363
lines changed

Common/include/CConfig.hpp

Lines changed: 25 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -700,6 +700,7 @@ class CConfig {
700700
unsigned long StartConv_Iter; /*!< \brief Start convergence criteria at iteration. */
701701
su2double Cauchy_Eps; /*!< \brief Epsilon used for the convergence. */
702702
bool Restart, /*!< \brief Restart solution (for direct, adjoint, and linearized problems).*/
703+
Wrt_Restart_Compact, /*!< \brief Write compact restart files with minimum nr. of variables. */
703704
Read_Binary_Restart, /*!< \brief Read binary SU2 native restart files.*/
704705
Wrt_Restart_Overwrite, /*!< \brief Overwrite restart files or append iteration number.*/
705706
Wrt_Surface_Overwrite, /*!< \brief Overwrite surface output files or append iteration number.*/
@@ -1004,7 +1005,7 @@ class CConfig {
10041005
bool ExtraOutput; /*!< \brief Check if extra output need. */
10051006
bool Wall_Functions; /*!< \brief Use wall functions with the turbulence model */
10061007
long ExtraHeatOutputZone; /*!< \brief Heat solver zone with extra screen output */
1007-
bool DeadLoad; /*!< \brief Application of dead loads to the FE analysis */
1008+
bool CentrifugalForce; /*!< \brief Application of centrifugal forces to the FE analysis */
10081009
bool PseudoStatic; /*!< \brief Application of dead loads to the FE analysis */
10091010
bool SteadyRestart; /*!< \brief Restart from a steady state for FSI problems. */
10101011
su2double Newmark_beta, /*!< \brief Parameter alpha for Newmark method. */
@@ -1013,10 +1014,13 @@ class CConfig {
10131014
su2double *Int_Coeffs; /*!< \brief Time integration coefficients for structural method. */
10141015
unsigned short nElasticityMod, /*!< \brief Number of different values for the elasticity modulus. */
10151016
nPoissonRatio, /*!< \brief Number of different values for the Poisson ratio modulus. */
1016-
nMaterialDensity; /*!< \brief Number of different values for the Material density. */
1017+
nMaterialDensity, /*!< \brief Number of different values for the Material density. */
1018+
nMaterialThermalExpansion; /*!< \brief Number of different values for thermal expansion coefficient. */
10171019
su2double *ElasticityMod, /*!< \brief Value of the elasticity moduli. */
10181020
*PoissonRatio, /*!< \brief Value of the Poisson ratios. */
1019-
*MaterialDensity; /*!< \brief Value of the Material densities. */
1021+
*MaterialDensity, /*!< \brief Value of the Material densities. */
1022+
*MaterialThermalExpansion, /*!< \brief Value of the thermal expansion coefficients. */
1023+
MaterialReferenceTemperature; /*!< \brief Value of the reference temperature for thermal expansion. */
10201024
unsigned short nElectric_Field, /*!< \brief Number of different values for the electric field in the membrane. */
10211025
nDim_Electric_Field; /*!< \brief Dimensionality of the problem. */
10221026
unsigned short nDim_RefNode; /*!< \brief Dimensionality of the vector . */
@@ -2389,6 +2393,16 @@ class CConfig {
23892393
*/
23902394
su2double GetMaterialDensity(unsigned short id_val) const { return MaterialDensity[id_val]; }
23912395

2396+
/*!
2397+
* \brief Get the thermal expansion coefficient.
2398+
*/
2399+
su2double GetMaterialThermalExpansion(unsigned short id_val) const { return MaterialThermalExpansion[id_val]; }
2400+
2401+
/*!
2402+
* \brief Temperature at which there is no stress from thermal expansion.
2403+
*/
2404+
su2double GetMaterialReferenceTemperature() const { return MaterialReferenceTemperature; }
2405+
23922406
/*!
23932407
* \brief Compressibility/incompressibility of the solids analysed using the structural solver.
23942408
* \return Compressible or incompressible.
@@ -5490,6 +5504,12 @@ class CConfig {
54905504
*/
54915505
bool GetRead_Binary_Restart(void) const { return Read_Binary_Restart; }
54925506

5507+
/*!
5508+
* \brief Flag for whether restart files contain only necessary variables.
5509+
* \return Flag <code>TRUE</code> then the code will write compact restart files.
5510+
*/
5511+
bool GetWrt_Restart_Compact(void) const { return Wrt_Restart_Compact; }
5512+
54935513
/*!
54945514
* \brief Flag for whether restart solution files are overwritten.
54955515
* \return Flag for overwriting. If Flag=false, iteration nr is appended to filename
@@ -8929,10 +8949,9 @@ class CConfig {
89298949
su2double GetAitkenDynMinInit(void) const { return AitkenDynMinInit; }
89308950

89318951
/*!
8932-
* \brief Decide whether to apply dead loads to the model.
8933-
* \return <code>TRUE</code> if the dead loads are to be applied, <code>FALSE</code> otherwise.
8952+
* \brief Decide whether to apply centrifugal forces to the model.
89348953
*/
8935-
bool GetDeadLoad(void) const { return DeadLoad; }
8954+
bool GetCentrifugalForce(void) const { return CentrifugalForce; }
89368955

89378956
/*!
89388957
* \brief Identifies if the mesh is matching or not (temporary, while implementing interpolation procedures).

Common/include/geometry/elements/CElement.hpp

Lines changed: 34 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,8 @@ class CElement {
6767
su2activematrix NodalExtrap; /*!< \brief Coordinates of the nodal points for Gaussian extrapolation. */
6868
su2activematrix NodalStress; /*!< \brief Stress at the nodes. */
6969

70+
su2activevector NodalTemperature; /*!< \brief Temperature at the nodes. */
71+
7072
/*--- Stiffness and load matrices. ---*/
7173
std::vector<su2activematrix> Kab; /*!< \brief Structure for the constitutive component of the tangent matrix. */
7274
su2activematrix Mab; /*!< \brief Structure for the nodal components of the mass matrix. */
@@ -151,7 +153,7 @@ class CElement {
151153
* \param[in] iDim - Dimension.
152154
* \param[in] val_CoordRef - Value of the coordinate.
153155
*/
154-
inline void SetRef_Coord(unsigned short iNode, unsigned short iDim, su2double val_CoordRef) {
156+
inline void SetRef_Coord(unsigned short iNode, unsigned short iDim, const su2double& val_CoordRef) {
155157
RefCoord(iNode, iDim) = val_CoordRef;
156158
}
157159

@@ -161,10 +163,22 @@ class CElement {
161163
* \param[in] iDim - Dimension.
162164
* \param[in] val_CoordRef - Value of the coordinate.
163165
*/
164-
inline void SetCurr_Coord(unsigned short iNode, unsigned short iDim, su2double val_CoordCurr) {
166+
inline void SetCurr_Coord(unsigned short iNode, unsigned short iDim, const su2double& val_CoordCurr) {
165167
CurrentCoord(iNode, iDim) = val_CoordCurr;
166168
}
167169

170+
/*!
171+
* \brief Set the value of the temperature of a node.
172+
*/
173+
inline void SetTemperature(unsigned short iNode, const su2double& val_Temperature) {
174+
NodalTemperature[iNode] = val_Temperature;
175+
}
176+
177+
/*!
178+
* \brief Set the value of the temperature of all nodes.
179+
*/
180+
inline void SetTemperature(const su2double& val_Temperature) { NodalTemperature = val_Temperature; }
181+
168182
/*!
169183
* \brief Get the value of the coordinate of the nodes in the reference configuration.
170184
* \param[in] iNode - Index of node.
@@ -181,6 +195,17 @@ class CElement {
181195
*/
182196
inline su2double GetCurr_Coord(unsigned short iNode, unsigned short iDim) const { return CurrentCoord(iNode, iDim); }
183197

198+
/*!
199+
* \brief Get the value of the temperature at a Gaussian integration point.
200+
*/
201+
inline su2double GetTemperature(unsigned short iGauss) const {
202+
su2double Temperature = 0;
203+
for (auto iNode = 0u; iNode < nNodes; ++iNode) {
204+
Temperature += GetNi(iNode, iGauss) * NodalTemperature[iNode];
205+
}
206+
return Temperature;
207+
}
208+
184209
/*!
185210
* \brief Get the weight of the corresponding Gaussian Point.
186211
* \param[in] iGauss - index of the Gaussian point.
@@ -214,7 +239,9 @@ class CElement {
214239
* \param[in] nodeB - index of Node b.
215240
* \param[in] val_Ks_ab - value of the term that will constitute the diagonal of the stress contribution.
216241
*/
217-
inline void Add_Mab(unsigned short nodeA, unsigned short nodeB, su2double val_Mab) { Mab(nodeA, nodeB) += val_Mab; }
242+
inline void Add_Mab(unsigned short nodeA, unsigned short nodeB, const su2double& val_Mab) {
243+
Mab(nodeA, nodeB) += val_Mab;
244+
}
218245

219246
/*!
220247
* \brief Add the value of a submatrix K relating nodes a and b, for the constitutive term.
@@ -243,7 +270,7 @@ class CElement {
243270
* \param[in] nodeB - index of Node b.
244271
* \param[in] val_Ks_ab - value of the term that will constitute the diagonal of the stress contribution.
245272
*/
246-
inline void Add_Ks_ab(unsigned short nodeA, unsigned short nodeB, su2double val_Ks_ab) {
273+
inline void Add_Ks_ab(unsigned short nodeA, unsigned short nodeB, const su2double& val_Ks_ab) {
247274
Ks_ab(nodeA, nodeB) += val_Ks_ab;
248275
}
249276

@@ -354,7 +381,7 @@ class CElement {
354381
* \param[in] iVar - Variable index.
355382
* \param[in] val_Stress - Value of the stress added.
356383
*/
357-
inline void Add_NodalStress(unsigned short iNode, unsigned short iVar, su2double val_Stress) {
384+
inline void Add_NodalStress(unsigned short iNode, unsigned short iVar, const su2double& val_Stress) {
358385
NodalStress(iNode, iVar) += val_Stress;
359386
}
360387

@@ -789,7 +816,7 @@ class CQUAD4 final : public CElementWithKnownSizes<4, 4, 2> {
789816
/*!
790817
* \brief Shape functions (Ni) evaluated at point Xi,Eta.
791818
*/
792-
inline static void ShapeFunctions(su2double Xi, su2double Eta, su2double* Ni) {
819+
inline static void ShapeFunctions(const su2double& Xi, const su2double& Eta, su2double* Ni) {
793820
Ni[0] = 0.25 * (1.0 - Xi) * (1.0 - Eta);
794821
Ni[1] = 0.25 * (1.0 + Xi) * (1.0 - Eta);
795822
Ni[2] = 0.25 * (1.0 + Xi) * (1.0 + Eta);
@@ -799,7 +826,7 @@ class CQUAD4 final : public CElementWithKnownSizes<4, 4, 2> {
799826
/*!
800827
* \brief Shape function Jacobian (dNi) evaluated at point Xi,Eta.
801828
*/
802-
inline static void ShapeFunctionJacobian(su2double Xi, su2double Eta, su2double dNi[][2]) {
829+
inline static void ShapeFunctionJacobian(const su2double& Xi, const su2double& Eta, su2double dNi[][2]) {
803830
dNi[0][0] = -0.25 * (1.0 - Eta);
804831
dNi[0][1] = -0.25 * (1.0 - Xi);
805832
dNi[1][0] = 0.25 * (1.0 - Eta);

Common/include/linear_algebra/CSysMatrix.hpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -805,10 +805,10 @@ class CSysMatrix {
805805
void EnforceSolutionAtNode(unsigned long node_i, const OtherType* x_i, CSysVector<OtherType>& b);
806806

807807
/*!
808-
* \brief Version of EnforceSolutionAtNode for a single degree of freedom.
808+
* \brief Similar to EnforceSolutionAtNode, but for 0 projection in a given direction.
809809
*/
810810
template <class OtherType>
811-
void EnforceSolutionAtDOF(unsigned long node_i, unsigned long iVar, OtherType x_i, CSysVector<OtherType>& b);
811+
void EnforceZeroProjection(unsigned long node_i, const OtherType* n, CSysVector<OtherType>& b);
812812

813813
/*!
814814
* \brief Sets the diagonal entries of the matrix as the sum of the blocks in the corresponding column.

Common/src/CConfig.cpp

Lines changed: 25 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -914,7 +914,10 @@ void CConfig::SetPointersNull() {
914914
Inlet_Velocity = nullptr; Inflow_Mach = nullptr; Inflow_Pressure = nullptr;
915915
Outlet_Pressure = nullptr; Isothermal_Temperature = nullptr;
916916

917-
ElasticityMod = nullptr; PoissonRatio = nullptr; MaterialDensity = nullptr;
917+
ElasticityMod = nullptr;
918+
PoissonRatio = nullptr;
919+
MaterialDensity = nullptr;
920+
MaterialThermalExpansion = nullptr;
918921

919922
Load_Dir = nullptr; Load_Dir_Value = nullptr; Load_Dir_Multiplier = nullptr;
920923
Disp_Dir = nullptr; Disp_Dir_Value = nullptr; Disp_Dir_Multiplier = nullptr;
@@ -1169,6 +1172,8 @@ void CConfig::SetConfig_Options() {
11691172

11701173
/*!\brief RESTART_SOL \n DESCRIPTION: Restart solution from native solution file \n Options: NO, YES \ingroup Config */
11711174
addBoolOption("RESTART_SOL", Restart, false);
1175+
/*!\brief WRT_RESTART_COMPACT \n DESCRIPTION: Minimize the size of restart files \n Options: NO, YES \ingroup Config */
1176+
addBoolOption("WRT_RESTART_COMPACT", Wrt_Restart_Compact, true);
11721177
/*!\brief BINARY_RESTART \n DESCRIPTION: Read binary SU2 native restart files. \n Options: YES, NO \ingroup Config */
11731178
addBoolOption("READ_BINARY_RESTART", Read_Binary_Restart, true);
11741179
/*!\brief WRT_RESTART_OVERWRITE \n DESCRIPTION: overwrite restart files or append iteration number. \n Options: YES, NO \ingroup Config */
@@ -2440,6 +2445,10 @@ void CConfig::SetConfig_Options() {
24402445
addDoubleListOption("POISSON_RATIO", nPoissonRatio, PoissonRatio);
24412446
/* DESCRIPTION: Material density */
24422447
addDoubleListOption("MATERIAL_DENSITY", nMaterialDensity, MaterialDensity);
2448+
/* DESCRIPTION: Material thermal expansion coefficient */
2449+
addDoubleListOption("MATERIAL_THERMAL_EXPANSION_COEFF", nMaterialThermalExpansion, MaterialThermalExpansion);
2450+
/* DESCRIPTION: Temperature at which there is no stress from thermal expansion */
2451+
addDoubleOption("MATERIAL_REFERENCE_TEMPERATURE", MaterialReferenceTemperature, 288.15);
24432452
/* DESCRIPTION: Knowles B constant */
24442453
addDoubleOption("KNOWLES_B", Knowles_B, 1.0);
24452454
/* DESCRIPTION: Knowles N constant */
@@ -2500,11 +2509,11 @@ void CConfig::SetConfig_Options() {
25002509
addEnumOption("NONLINEAR_FEM_SOLUTION_METHOD", Kind_SpaceIteScheme_FEA, Space_Ite_Map_FEA, STRUCT_SPACE_ITE::NEWTON);
25012510
/* DESCRIPTION: Formulation for bidimensional elasticity solver */
25022511
addEnumOption("FORMULATION_ELASTICITY_2D", Kind_2DElasForm, ElasForm_2D, STRUCT_2DFORM::PLANE_STRAIN);
2503-
/* DESCRIPTION: Apply dead loads
2504-
* Options: NO, YES \ingroup Config */
2505-
addBoolOption("DEAD_LOAD", DeadLoad, false);
2512+
/* DESCRIPTION: Apply centrifugal forces
2513+
* Options: NO, YES \ingroup Config */
2514+
addBoolOption("CENTRIFUGAL_FORCE", CentrifugalForce, false);
25062515
/* DESCRIPTION: Temporary: pseudo static analysis (no density in dynamic analysis)
2507-
* Options: NO, YES \ingroup Config */
2516+
* Options: NO, YES \ingroup Config */
25082517
addBoolOption("PSEUDO_STATIC", PseudoStatic, false);
25092518
/* DESCRIPTION: Parameter alpha for Newmark scheme (s) */
25102519
addDoubleOption("NEWMARK_BETA", Newmark_beta, 0.25);
@@ -3063,6 +3072,8 @@ void CConfig::SetConfig_Parsing(istream& config_buffer){
30633072
newString.append("DYNAMIC_ANALYSIS is deprecated. Use TIME_DOMAIN instead.\n\n");
30643073
else if (!option_name.compare("SPECIES_USE_STRONG_BC"))
30653074
newString.append("SPECIES_USE_STRONG_BC is deprecated. Use MARKER_SPECIES_STRONG_BC= (marker1, ...) instead.\n\n");
3075+
else if (!option_name.compare("DEAD_LOAD"))
3076+
newString.append("DEAD_LOAD is deprecated. Use GRAVITY_FORCE or BODY_FORCE instead.\n\n");
30663077
else {
30673078
/*--- Find the most likely candidate for the unrecognized option, based on the length
30683079
of start and end character sequences shared by candidates and the option. ---*/
@@ -4834,9 +4845,15 @@ void CConfig::SetPostprocessing(SU2_COMPONENT val_software, unsigned short val_i
48344845
MaterialDensity = new su2double[1]; MaterialDensity[0] = 7854;
48354846
}
48364847

4837-
if (nElasticityMod != nPoissonRatio || nElasticityMod != nMaterialDensity) {
4838-
SU2_MPI::Error("ELASTICITY_MODULUS, POISSON_RATIO, and MATERIAL_DENSITY need to have the same number "
4839-
"of entries (the number of materials).", CURRENT_FUNCTION);
4848+
if (nMaterialThermalExpansion == 0) {
4849+
nMaterialThermalExpansion = 1;
4850+
MaterialThermalExpansion = new su2double[1]();
4851+
}
4852+
4853+
if (nElasticityMod != nPoissonRatio || nElasticityMod != nMaterialDensity ||
4854+
nElasticityMod != nMaterialThermalExpansion) {
4855+
SU2_MPI::Error("ELASTICITY_MODULUS, POISSON_RATIO, MATERIAL_DENSITY, and THERMAL_EXPANSION_COEFF need "
4856+
"to have the same number of entries (the number of materials).", CURRENT_FUNCTION);
48404857
}
48414858

48424859
if (nElectric_Constant == 0) {

Common/src/geometry/elements/CElement.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,8 @@ CElement::CElement(unsigned short ngauss, unsigned short nnodes, unsigned short
4747

4848
NodalStress.resize(nNodes, 6) = su2double(0.0);
4949

50+
NodalTemperature.resize(nNodes) = su2double(0.0);
51+
5052
Mab.resize(nNodes, nNodes);
5153
Ks_ab.resize(nNodes, nNodes);
5254
Kab.resize(nNodes);

Common/src/geometry/elements/CQUAD4.cpp

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,6 @@ CQUAD4::CQUAD4() : CElementWithKnownSizes<NGAUSS, NNODE, NDIM>() {
6767
/*--- Store the extrapolation functions (used to compute nodal stresses) ---*/
6868

6969
su2double ExtrapCoord[4][2], sqrt3 = 1.732050807568877;
70-
;
7170

7271
ExtrapCoord[0][0] = -sqrt3;
7372
ExtrapCoord[0][1] = -sqrt3;

Common/src/linear_algebra/CSysMatrix.cpp

Lines changed: 40 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1027,36 +1027,59 @@ void CSysMatrix<ScalarType>::EnforceSolutionAtNode(const unsigned long node_i, c
10271027

10281028
template <class ScalarType>
10291029
template <class OtherType>
1030-
void CSysMatrix<ScalarType>::EnforceSolutionAtDOF(unsigned long node_i, unsigned long iVar, OtherType x_i,
1031-
CSysVector<OtherType>& b) {
1030+
void CSysMatrix<ScalarType>::EnforceZeroProjection(unsigned long node_i, const OtherType* n, CSysVector<OtherType>& b) {
10321031
for (auto index = row_ptr[node_i]; index < row_ptr[node_i + 1]; ++index) {
10331032
const auto node_j = col_ind[index];
10341033

1035-
/*--- Delete row iVar of block j on row i (bij) and ATTEMPT
1036-
* to delete column iVar block i on row j (bji). ---*/
1034+
/*--- Remove product components of block j on row i (bij) and ATTEMPT
1035+
* to remove solution components of block i on row j (bji).
1036+
* This is identical to symmetry correction applied to gradients
1037+
* but extended to the entire matrix. ---*/
10371038

10381039
auto bij = &matrix[index * nVar * nVar];
10391040
auto bji = GetBlock(node_j, node_i);
10401041

1041-
/*--- The "attempt" part. ---*/
1042+
/*--- Attempt to remove solution components. ---*/
1043+
ScalarType nbn{};
10421044
if (bji != nullptr) {
1043-
for (auto jVar = 0ul; jVar < nVar; ++jVar) {
1044-
/*--- Column product. ---*/
1045-
b[node_j * nVar + jVar] -= bji[jVar * nVar + iVar] * x_i;
1046-
/*--- Delete entries. ---*/
1047-
bji[jVar * nVar + iVar] = 0.0;
1045+
for (auto iVar = 0ul; iVar < nVar; ++iVar) {
1046+
ScalarType proj{};
1047+
for (auto jVar = 0ul; jVar < nVar; ++jVar) {
1048+
proj += bji[iVar * nVar + jVar] * PassiveAssign(n[jVar]);
1049+
}
1050+
for (auto jVar = 0ul; jVar < nVar; ++jVar) {
1051+
bji[iVar * nVar + jVar] -= proj * PassiveAssign(n[jVar]);
1052+
}
1053+
nbn += proj * PassiveAssign(n[iVar]);
10481054
}
10491055
}
10501056

1051-
/*--- Delete row. ---*/
1052-
for (auto jVar = 0ul; jVar < nVar; ++jVar) bij[iVar * nVar + jVar] = 0.0;
1057+
/*--- Product components. ---*/
1058+
for (auto jVar = 0ul; jVar < nVar; ++jVar) {
1059+
ScalarType proj{};
1060+
for (auto iVar = 0ul; iVar < nVar; ++iVar) {
1061+
proj += bij[iVar * nVar + jVar] * PassiveAssign(n[iVar]);
1062+
}
1063+
for (auto iVar = 0ul; iVar < nVar; ++iVar) {
1064+
bij[iVar * nVar + jVar] -= proj * PassiveAssign(n[iVar]);
1065+
}
1066+
}
10531067

1054-
/*--- Set the diagonal entry of the block to 1. ---*/
1055-
if (node_j == node_i) bij[iVar * (nVar + 1)] = 1.0;
1068+
/*--- This part doesn't have the "*2" factor because the product components
1069+
* were removed from the result of removing the solution components
1070+
* instead of from the original block (bji == bij). ---*/
1071+
if (node_i == node_j) {
1072+
for (auto iVar = 0ul; iVar < nVar; ++iVar) {
1073+
for (auto jVar = 0ul; jVar < nVar; ++jVar) {
1074+
bij[iVar * nVar + jVar] += PassiveAssign(n[iVar]) * nbn * PassiveAssign(n[jVar]);
1075+
}
1076+
}
1077+
}
10561078
}
10571079

1058-
/*--- Set known solution in rhs vector. ---*/
1059-
b(node_i, iVar) = x_i;
1080+
OtherType proj{};
1081+
for (auto iVar = 0ul; iVar < nVar; ++iVar) proj += b(node_i, iVar) * n[iVar];
1082+
for (auto iVar = 0ul; iVar < nVar; ++iVar) b(node_i, iVar) -= proj * n[iVar];
10601083
}
10611084

10621085
template <class ScalarType>
@@ -1203,8 +1226,7 @@ void CSysMatrix<ScalarType>::ComputePastixPreconditioner(const CSysVector<Scalar
12031226
#define INSTANTIATE_MATRIX(TYPE) \
12041227
template class CSysMatrix<TYPE>; \
12051228
template void CSysMatrix<TYPE>::EnforceSolutionAtNode(unsigned long, const su2double*, CSysVector<su2double>&); \
1206-
template void CSysMatrix<TYPE>::EnforceSolutionAtDOF(unsigned long, unsigned long, su2double, \
1207-
CSysVector<su2double>&); \
1229+
template void CSysMatrix<TYPE>::EnforceZeroProjection(unsigned long, const su2double*, CSysVector<su2double>&); \
12081230
INSTANTIATE_COMMS(TYPE)
12091231

12101232
#ifdef CODI_FORWARD_TYPE

0 commit comments

Comments
 (0)