33 * \brief All the information about the definition of the physical problem.
44 * The subroutines and functions are in the <i>CConfig.cpp</i> file.
55 * \author F. Palacios, T. Economon, B. Tracey
6- * \version 7.1.0 "Blackbird"
6+ * \version 7.1.1 "Blackbird"
77 *
88 * SU2 Project Website: https://su2code.github.io
99 *
2828
2929#pragma once
3030
31- #include " ./ parallelization/mpi_structure.hpp"
31+ #include " parallelization/mpi_structure.hpp"
3232
3333#include < iostream>
3434#include < cstdlib>
@@ -416,6 +416,9 @@ class CConfig {
416416
417417 unsigned short nQuasiNewtonSamples; /* !< \brief Number of samples used in quasi-Newton solution methods. */
418418 bool UseVectorization; /* !< \brief Whether to use vectorized numerics schemes. */
419+ bool NewtonKrylov; /* !< \brief Use a coupled Newton method to solve the flow equations. */
420+ array<unsigned short ,3 > NK_IntParam{{20 , 3 , 2 }}; /* !< \brief Integer parameters for NK method. */
421+ array<su2double,4 > NK_DblParam{{-2.0 , 0.1 , -3.0 , 1e-4 }}; /* !< \brief Floating-point parameters for NK method. */
419422
420423 unsigned short nMGLevels; /* !< \brief Number of multigrid levels (coarse levels). */
421424 unsigned short nCFL; /* !< \brief Number of CFL, one for each multigrid level. */
@@ -713,6 +716,7 @@ class CConfig {
713716 unsigned short Geo_Description; /* !< \brief Description of the geometry. */
714717 unsigned short Mesh_FileFormat; /* !< \brief Mesh input format. */
715718 unsigned short Tab_FileFormat; /* !< \brief Format of the output files. */
719+ unsigned short output_precision; /* !< \brief <ofstream>.precision(value) for SU2_DOT and HISTORY output */
716720 unsigned short ActDisk_Jump; /* !< \brief Format of the output files. */
717721 unsigned long StartWindowIteration; /* !< \brief Starting Iteration for long time Windowing apporach . */
718722 unsigned short nCFL_AdaptParam; /* !< \brief Number of CFL parameters provided in config. */
@@ -991,6 +995,13 @@ class CConfig {
991995 array<su2double, N_POLY_COEFFS> mu_polycoeffs{{0.0 }}; /* !< \brief Array for viscosity polynomial coefficients. */
992996 array<su2double, N_POLY_COEFFS> kt_polycoeffs{{0.0 }}; /* !< \brief Array for thermal conductivity polynomial coefficients. */
993997 bool Body_Force; /* !< \brief Flag to know if a body force is included in the formulation. */
998+
999+ unsigned short Kind_Streamwise_Periodic; /* !< \brief Kind of Streamwise periodic flow (pressure drop or massflow) */
1000+ bool Streamwise_Periodic_Temperature; /* !< \brief Use real periodicity for Energy equation or otherwise outlet source term. */
1001+ su2double Streamwise_Periodic_PressureDrop; /* !< \brief Value of prescribed pressure drop [Pa] which results in an artificial body force vector. */
1002+ su2double Streamwise_Periodic_TargetMassFlow; /* !< \brief Value of prescribed massflow [kg/s] which results in an delta p and therefore an artificial body force vector. */
1003+ su2double Streamwise_Periodic_OutletHeat; /* !< /brief Heatflux boundary [W/m^2] imposed at streamwise periodic outlet. */
1004+
9941005 su2double *FreeStreamTurboNormal; /* !< \brief Direction to initialize the flow in turbomachinery computation */
9951006 su2double Restart_Bandwidth_Agg; /* !< \brief The aggregate of the bandwidth for writing binary restarts (to be averaged later). */
9961007 su2double Max_Vel2; /* !< \brief The maximum velocity^2 in the domain for the incompressible preconditioner. */
@@ -1185,6 +1196,8 @@ class CConfig {
11851196
11861197 void addDoubleArrayOption (const string name, const int size, su2double* option_field);
11871198
1199+ void addUShortArrayOption (const string name, const int size, unsigned short * option_field);
1200+
11881201 void addDoubleListOption (const string name, unsigned short & size, su2double * & option_field);
11891202
11901203 void addShortListOption (const string name, unsigned short & size, short * & option_field);
@@ -2781,7 +2794,7 @@ class CConfig {
27812794 const su2double *GetWeightsIntegrationADER_DG (void ) const { return WeightsIntegrationADER_DG; }
27822795
27832796 /* !
2784- * \brief Get the total number of boundary markers including send/receive domains.
2797+ * \brief Get the total number of boundary markers of the local process including send/receive domains.
27852798 * \return Total number of boundary markers.
27862799 */
27872800 unsigned short GetnMarker_All (void ) const { return nMarker_All; }
@@ -2805,7 +2818,7 @@ class CConfig {
28052818 unsigned short GetnMarker_SymWall (void ) const { return nMarker_SymWall; }
28062819
28072820 /* !
2808- * \brief Get the total number of boundary markers.
2821+ * \brief Get the total number of boundary markers in the cfg plus the possible send/receive domains .
28092822 * \return Total number of boundary markers.
28102823 */
28112824 unsigned short GetnMarker_Max (void ) const { return nMarker_Max; }
@@ -2901,7 +2914,7 @@ class CConfig {
29012914 unsigned short GetnMarker_Periodic (void ) const { return nMarker_PerBound; }
29022915
29032916 /* !
2904- * \brief Get the total number of heat flux markers.
2917+ * \brief Get the total (local) number of heat flux markers.
29052918 * \return Total number of heat flux markers.
29062919 */
29072920 unsigned short GetnMarker_HeatFlux (void ) const { return nMarker_HeatFlux; }
@@ -3970,6 +3983,21 @@ class CConfig {
39703983 */
39713984 bool GetUseVectorization (void ) const { return UseVectorization; }
39723985
3986+ /* !
3987+ * \brief Get whether to use a Newton-Krylov method.
3988+ */
3989+ bool GetNewtonKrylov (void ) const { return NewtonKrylov; }
3990+
3991+ /* !
3992+ * \brief Get Newton-Krylov integer parameters.
3993+ */
3994+ array<unsigned short ,3 > GetNewtonKrylovIntParam (void ) const { return NK_IntParam; }
3995+
3996+ /* !
3997+ * \brief Get Newton-Krylov floating-point parameters.
3998+ */
3999+ array<su2double,4 > GetNewtonKrylovDblParam (void ) const { return NK_DblParam; }
4000+
39734001 /* !
39744002 * \brief Get the relaxation coefficient of the linear solver for the implicit formulation.
39754003 * \return relaxation coefficient of the linear solver for the implicit formulation.
@@ -5150,6 +5178,12 @@ class CConfig {
51505178 */
51515179 unsigned short GetTabular_FileFormat (void ) const { return Tab_FileFormat; }
51525180
5181+ /* !
5182+ * \brief Get the output precision to be used in <ofstream>.precision(value) for history and SU2_DOT output.
5183+ * \return Output precision.
5184+ */
5185+ unsigned short GetOutput_Precision (void ) const { return output_precision; }
5186+
51535187 /* !
51545188 * \brief Get the format of the output solution.
51555189 * \return Format of the output solution.
@@ -5709,6 +5743,36 @@ class CConfig {
57095743 */
57105744 const su2double* GetBody_Force_Vector (void ) const { return body_force; }
57115745
5746+ /* !
5747+ * \brief Get information about the streamwise periodicity (None, Pressure_Drop, Massflow).
5748+ * \return Driving force identification.
5749+ */
5750+ unsigned short GetKind_Streamwise_Periodic (void ) const { return Kind_Streamwise_Periodic; }
5751+
5752+ /* !
5753+ * \brief Get information about the streamwise periodicity Energy equation handling.
5754+ * \return Real periodic treatment of energy equation.
5755+ */
5756+ bool GetStreamwise_Periodic_Temperature (void ) const { return Streamwise_Periodic_Temperature; }
5757+
5758+ /* !
5759+ * \brief Get the value of the artificial periodic outlet heat.
5760+ * \return Heat value.
5761+ */
5762+ su2double GetStreamwise_Periodic_OutletHeat (void ) const { return Streamwise_Periodic_OutletHeat; }
5763+
5764+ /* !
5765+ * \brief Get the value of the pressure delta from which body force vector is computed.
5766+ * \return Delta Pressure for body force computation.
5767+ */
5768+ su2double GetStreamwise_Periodic_PressureDrop (void ) const { return Streamwise_Periodic_PressureDrop; }
5769+
5770+ /* !
5771+ * \brief Get the value of the massflow from which body force vector is computed.
5772+ * \return Massflow for body force computation.
5773+ */
5774+ su2double GetStreamwise_Periodic_TargetMassFlow (void ) const { return Streamwise_Periodic_TargetMassFlow; }
5775+
57125776 /* !
57135777 * \brief Get information about the volumetric heat source.
57145778 * \return <code>TRUE</code> if it uses a volumetric heat source; otherwise <code>FALSE</code>.
@@ -6127,10 +6191,17 @@ class CConfig {
61276191 const su2double *GetPeriodicRotAngles (string val_marker) const ;
61286192
61296193 /* !
6130- * \brief Translation vector for a rotational periodic boundary.
6194+ * \brief Translation vector for a translational periodic boundary.
61316195 */
61326196 const su2double *GetPeriodicTranslation (string val_marker) const ;
61336197
6198+ /* !
6199+ * \brief Get the translation vector for a periodic transformation.
6200+ * \param[in] val_index - Index corresponding to the periodic transformation.
6201+ * \return The translation vector.
6202+ */
6203+ const su2double* GetPeriodic_Translation (unsigned short val_index ) const { return Periodic_Translation[val_index]; }
6204+
61346205 /* !
61356206 * \brief Get the rotationally periodic donor marker for boundary <i>val_marker</i>.
61366207 * \return Periodic donor marker from the config information for the marker <i>val_marker</i>.
0 commit comments