diff --git a/.clang-format b/.clang-format index cb363900eb6..211546de046 100644 --- a/.clang-format +++ b/.clang-format @@ -2,4 +2,4 @@ BasedOnStyle: Google PointerAlignment: Left DerivePointerAlignment: false ColumnLimit: 120 -SortIncludes: Never +SortIncludes: false diff --git a/.github/workflows/code-style.yml b/.github/workflows/code-style.yml index a0080f08981..a7e38bd6d1d 100644 --- a/.github/workflows/code-style.yml +++ b/.github/workflows/code-style.yml @@ -12,7 +12,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Setup python uses: actions/setup-python@v4 with: diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index 5d2607bab67..7403ae5062b 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -24,7 +24,7 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Install Packages (cpp) if: ${{ matrix.language == 'cpp' }} diff --git a/.github/workflows/require-labels.yml b/.github/workflows/require-labels.yml index 5e00e21e4ef..cc3ddada18b 100644 --- a/.github/workflows/require-labels.yml +++ b/.github/workflows/require-labels.yml @@ -6,7 +6,7 @@ jobs: label: runs-on: ubuntu-latest steps: - - uses: mheap/github-action-required-labels@v3 + - uses: mheap/github-action-required-labels@v5 with: mode: exactly count: 1 diff --git a/AUTHORS.md b/AUTHORS.md index c4392afcab7..f8c364f411b 100644 --- a/AUTHORS.md +++ b/AUTHORS.md @@ -71,6 +71,7 @@ Eduardo Molina Edwin van der Weide Ethan Alan Hereth Florian Dittmann +Filip Hahs Francesco Poli Francisco D. Palacios Gaurav Bansal @@ -98,6 +99,7 @@ Kedar Naik Kürşat Yurt LaSerpe Lennaert Tol +Liang Cheng Lisa Kusch Matteo Pini Max Aehle @@ -137,6 +139,7 @@ VivaanKhatri Wally Maier Y. Chandukrishna Zan Xu +Zcaic aaronyicongfu aeroamit anilvar diff --git a/Common/include/CConfig.hpp b/Common/include/CConfig.hpp index 563d477a696..c28c3aaef54 100644 --- a/Common/include/CConfig.hpp +++ b/Common/include/CConfig.hpp @@ -3,14 +3,14 @@ * \brief All the information about the definition of the physical problem. * The subroutines and functions are in the CConfig.cpp file. * \author F. Palacios, T. Economon, B. Tracey - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -71,7 +71,6 @@ class CConfig { unsigned short Kind_PerformanceAverageProcess; /*!< \brief Kind of mixing process.*/ unsigned short Kind_MixingPlaneInterface; /*!< \brief Kind of mixing process.*/ unsigned short Kind_SpanWise; /*!< \brief Kind of span-wise section computation.*/ - unsigned short *Kind_TurboMachinery; /*!< \brief Kind of turbomachynery architecture.*/ unsigned short iZone, nZone; /*!< \brief Number of zones in the mesh. */ unsigned short nZoneSpecified; /*!< \brief Number of zones that are specified in config file. */ su2double Highlite_Area; /*!< \brief Highlite area. */ @@ -184,6 +183,10 @@ class CConfig { nMarker_NearFieldBound, /*!< \brief Number of near field boundary markers. */ nMarker_ActDiskInlet, /*!< \brief Number of actuator disk inlet markers. */ nMarker_ActDiskOutlet, /*!< \brief Number of actuator disk outlet markers. */ + nMarker_ActDiskBemInlet_CG, /*!< \brief Number of actuator disk BEM inlet markers passed to MARKER_ACTDISK_BEM_CG. */ + nMarker_ActDiskBemOutlet_CG, /*!< \brief Number of actuator disk BEM outlet markers passed to MARKER_ACTDISK_BEM_CG. */ + nMarker_ActDiskBemInlet_Axis, /*!< \brief Number of actuator disk BEM inlet markers passed to MARKER_ACTDISK_BEM_AXIS. */ + nMarker_ActDiskBemOutlet_Axis, /*!< \brief Number of actuator disk BEM outlet markers passed to MARKER_ACTDISK_BEM_AXIS. */ nMarker_Deform_Mesh_Sym_Plane, /*!< \brief Number of markers with symmetric deformation */ nMarker_Deform_Mesh, /*!< \brief Number of deformable markers at the boundary. */ nMarker_Fluid_Load, /*!< \brief Number of markers in which the flow load is computed/employed. */ @@ -212,8 +215,6 @@ class CConfig { nMarker_Damper, /*!< \brief Number of damper surface markers. */ nMarker_Load_Dir, /*!< \brief Number of load surface markers defined by magnitude and direction. */ nMarker_Disp_Dir, /*!< \brief Number of load surface markers defined by magnitude and direction. */ - nMarker_Load_Sine, /*!< \brief Number of load surface markers defined by magnitude and direction. */ - nMarker_FlowLoad, /*!< \brief Number of load surface markers. */ nMarker_Internal, /*!< \brief Number of internal flow markers. */ nMarker_All, /*!< \brief Total number of markers using the grid information. */ nMarker_Max, /*!< \brief Max number of number of markers using the grid information. */ @@ -242,6 +243,10 @@ class CConfig { *Marker_CHTInterface, /*!< \brief Conjugate heat transfer interface markers. */ *Marker_ActDiskInlet, /*!< \brief Actuator disk inlet markers. */ *Marker_ActDiskOutlet, /*!< \brief Actuator disk outlet markers. */ + *Marker_ActDiskBemInlet_CG, /*!< \brief Actuator disk BEM inlet markers passed to MARKER_ACTDISK_BEM_CG. */ + *Marker_ActDiskBemOutlet_CG, /*!< \brief Actuator disk BEM outlet markers passed to MARKER_ACTDISK_BEM_CG. */ + *Marker_ActDiskBemInlet_Axis, /*!< \brief Actuator disk BEM inlet markers passed to MARKER_ACTDISK_BEM_AXIS. */ + *Marker_ActDiskBemOutlet_Axis, /*!< \brief Actuator disk BEM outlet markers passed to MARKER_ACTDISK_BEM_AXIS. */ *Marker_Inlet, /*!< \brief Inlet flow markers. */ *Marker_Inlet_Species, /*!< \brief Inlet species markers. */ *Marker_Inlet_Turb, /*!< \brief Inlet turbulent markers. */ @@ -265,7 +270,6 @@ class CConfig { *Marker_Load_Dir, /*!< \brief Load markers defined in cartesian coordinates. */ *Marker_Disp_Dir, /*!< \brief Load markers defined in cartesian coordinates. */ *Marker_Load_Sine, /*!< \brief Sine-wave loaded markers defined in cartesian coordinates. */ - *Marker_FlowLoad, /*!< \brief Flow Load markers. */ *Marker_Internal, /*!< \brief Internal flow markers. */ *Marker_All_TagBound; /*!< \brief Global index for markers using grid information. */ @@ -324,10 +328,6 @@ class CConfig { su2double *Disp_Dir_Multiplier; /*!< \brief Specified multiplier for load boundaries defined in cartesian coordinates. */ su2double **Load_Dir; /*!< \brief Specified flow direction vector (unit vector) for inlet boundaries. */ su2double **Disp_Dir; /*!< \brief Specified structural displacement direction (unit vector). */ - su2double *Load_Sine_Amplitude; /*!< \brief Specified amplitude for a sine-wave load. */ - su2double *Load_Sine_Frequency; /*!< \brief Specified multiplier for load boundaries defined in cartesian coordinates. */ - su2double **Load_Sine_Dir; /*!< \brief Specified flow direction vector (unit vector) for inlet boundaries. */ - su2double *FlowLoad_Value; /*!< \brief Specified force for flow load boundaries. */ su2double *ActDiskInlet_MassFlow; /*!< \brief Specified inlet mass flow for actuator disk. */ su2double *ActDiskInlet_Temperature; /*!< \brief Specified inlet temperature for actuator disk. */ su2double *ActDiskInlet_TotalTemperature; /*!< \brief Specified inlet total temperature for actuator disk. */ @@ -344,8 +344,16 @@ class CConfig { su2double *ActDiskOutlet_GrossThrust; /*!< \brief Specified outlet gross thrust for actuator disk. */ su2double *ActDiskOutlet_Force; /*!< \brief Specified outlet force for actuator disk. */ su2double *ActDiskOutlet_Power; /*!< \brief Specified outlet power for actuator disk. */ + su2double *ActDiskOutlet_Thrust_BEM; /*!< \brief Specified outlet thrust for actuator disk. */ + su2double *ActDiskOutlet_Torque_BEM; /*!< \brief Specified outlet torque for actuator disk. */ su2double **ActDisk_PressJump, **ActDisk_TempJump, **ActDisk_Omega; /*!< \brief Specified deltas for actuator disk.*/ + su2double **ActDiskBem_CG[3]; /*!< \brief Specified center for actuator disk BEM.*/ + su2double **ActDiskBem_Axis[3]; /*!< \brief Specified axis for actuator disk BEM.*/ + su2double BEM_blade_angle; /*!< \brief Propeller blade angle.*/ + string BEM_prop_filename; /*!< \brief Propeller filename.*/ + unsigned short ActDiskBem_Frequency; /*!< \brief Frequency of updating actuator disk with BEM. */ + bool History_File_Append_Flag; /*!< \brief Flag to append history file.*/ su2double *ActDisk_DeltaPress; /*!< \brief Specified pressure delta for actuator disk. */ su2double *ActDisk_DeltaTemp; /*!< \brief Specified temperature delta for actuator disk. */ su2double *ActDisk_TotalPressRatio; /*!< \brief Specified tot. pres. ratio for actuator disk. */ @@ -430,6 +438,9 @@ class CConfig { Max_DeltaTime, /*!< \brief Max delta time. */ Unst_CFL; /*!< \brief Unsteady CFL number. */ + TURBO_PERF_KIND *Kind_TurboPerf; /*!< \brief Kind of turbomachynery architecture.*/ + TURBOMACHINERY_TYPE *Kind_TurboMachinery; + /* Gradient smoothing options */ su2double SmoothingEps1; /*!< \brief Parameter for the identity part in gradient smoothing. */ su2double SmoothingEps2; /*!< \brief Parameter for the Laplace part in gradient smoothing. */ @@ -506,8 +517,6 @@ class CConfig { Kind_Deform_Linear_Solver_Prec, /*!< \brief Preconditioner of the linear solver. */ Kind_Linear_Solver, /*!< \brief Numerical solver for the implicit scheme. */ Kind_Linear_Solver_Prec, /*!< \brief Preconditioner of the linear solver. */ - Kind_AdjTurb_Linear_Solver, /*!< \brief Numerical solver for the turbulent adjoint implicit scheme. */ - Kind_AdjTurb_Linear_Prec, /*!< \brief Preconditioner of the turbulent adjoint linear solver. */ Kind_DiscAdj_Linear_Solver, /*!< \brief Linear solver for the discrete adjoint system. */ Kind_DiscAdj_Linear_Prec, /*!< \brief Preconditioner of the discrete adjoint linear solver. */ Kind_TimeNumScheme, /*!< \brief Global explicit or implicit time integration. */ @@ -620,9 +629,7 @@ class CConfig { su2double Roe_Kappa; /*!< \brief Relaxation of the Roe scheme. */ su2double Relaxation_Factor_Adjoint; /*!< \brief Relaxation coefficient for variable updates of adjoint solvers. */ su2double Relaxation_Factor_CHT; /*!< \brief Relaxation coefficient for the update of conjugate heat variables. */ - su2double AdjTurb_Linear_Error; /*!< \brief Min error of the turbulent adjoint linear solver for the implicit formulation. */ su2double EntropyFix_Coeff; /*!< \brief Entropy fix coefficient. */ - unsigned short AdjTurb_Linear_Iter; /*!< \brief Min error of the turbulent adjoint linear solver for the implicit formulation. */ unsigned short nLocationStations, /*!< \brief Number of section cuts to make when outputting mesh and cp . */ nWingStations; /*!< \brief Number of section cuts to make when calculating internal volume. */ su2double Kappa_1st_AdjFlow, /*!< \brief Lax 1st order dissipation coefficient for adjoint flow equations (coarse multigrid levels). */ @@ -666,7 +673,6 @@ class CConfig { su2double Total_CM; /*!< \brief Specify a Total CM instead of AoA (external flow only). */ su2double Total_CD; /*!< \brief Specify a target CD instead of AoA (external flow only). */ su2double dCL_dAlpha; /*!< \brief value of dCl/dAlpha. */ - su2double dCM_diH; /*!< \brief value of dCM/dHi. */ unsigned long Iter_Fixed_CM; /*!< \brief Iterations to re-evaluate the angle of attack (external flow only). */ unsigned long Iter_Fixed_NetThrust; /*!< \brief Iterations to re-evaluate the angle of attack (external flow only). */ unsigned long Iter_dCL_dAlpha; /*!< \brief Number of iterations to evaluate dCL_dAlpha. */ @@ -928,8 +934,6 @@ class CConfig { bool RampAndRelease; /*!< \brief option for ramp load and release */ bool Sine_Load; /*!< \brief option for sine load */ su2double Thermal_Diffusivity; /*!< \brief Thermal diffusivity used in the heat solver. */ - su2double Cyclic_Pitch, /*!< \brief Cyclic pitch for rotorcraft simulations. */ - Collective_Pitch; /*!< \brief Collective pitch for rotorcraft simulations. */ su2double Mach_Motion; /*!< \brief Mach number based on mesh velocity and freestream quantities. */ su2double Motion_Origin[3] = {0.0}, /*!< \brief Mesh motion origin. */ @@ -1111,7 +1115,6 @@ class CConfig { distortion[2], /*!< \brief SU2_GEO section locations array for the COption class. */ ea_lim[3], /*!< \brief equivalent area limit array for the COption class. */ grid_fix[6], /*!< \brief fixed grid (non-deforming region) array for the COption class. */ - htp_axis[2], /*!< \brief HTP axis for the COption class. */ ffd_axis[3], /*!< \brief FFD axis for the COption class. */ inc_crit[3], /*!< \brief incremental criteria array for the COption class. */ extrarelfac[2], /*!< \brief extra relaxation factor for Giles BC in the COption class. */ @@ -1176,6 +1179,7 @@ class CConfig { string caseName; /*!< \brief Name of the current case */ unsigned long edgeColorGroupSize; /*!< \brief Size of the edge groups colored for OpenMP parallelization of edge loops. */ + bool edgeColoringRelaxDiscAdj; /*!< \brief Allow fallback to smaller edge color group sizes and use more colors for the discrete adjoint. */ INLET_SPANWISE_INTERP Kind_InletInterpolationFunction; /*!brief type of spanwise interpolation function to use for the inlet face. */ INLET_INTERP_TYPE Kind_Inlet_InterpolationType; /*!brief type of spanwise interpolation data to use for the inlet face. */ @@ -1365,6 +1369,10 @@ class CConfig { unsigned short & nMarker_ActDiskInlet, unsigned short & nMarker_ActDiskOutlet, string* & Marker_ActDiskInlet, string* & Marker_ActDiskOutlet, su2double** & ActDisk_PressJump, su2double** & ActDisk_TempJump, su2double** & ActDisk_Omega); + void addActDiskBemOption(const string& name, + unsigned short& nMarker_ActDiskBemInlet, unsigned short& nMarker_ActDiskBemOutlet, string*& Marker_ActDiskBemInlet, string*& Marker_ActDiskBemOutlet, + su2double**& ActDiskBem_X, su2double**& ActDiskBem_Y, su2double**& ActDiskBem_Z); + void addWallFunctionOption(const string &name, unsigned short &list_size, string* &string_field, WALL_FUNCTIONS* &val_Kind_WF, unsigned short** &val_IntInfo_WF, su2double** &val_DoubleInfo_WF); @@ -4279,18 +4287,6 @@ class CConfig { */ su2double GetSemiSpan(void) const { return SemiSpan; } - /*! - * \brief Get the kind of solver for the implicit solver. - * \return Numerical solver for implicit formulation (solving the linear system). - */ - unsigned short GetKind_AdjTurb_Linear_Solver(void) const { return Kind_AdjTurb_Linear_Solver; } - - /*! - * \brief Get the kind of preconditioner for the implicit solver. - * \return Numerical preconditioner for implicit formulation (solving the linear system). - */ - unsigned short GetKind_AdjTurb_Linear_Prec(void) const { return Kind_AdjTurb_Linear_Prec; } - /*! * \brief Get the kind of solver for the implicit solver. * \return Numerical solver for implicit formulation (solving the linear system). @@ -4309,30 +4305,12 @@ class CConfig { */ unsigned short GetKind_Deform_Linear_Solver_Prec(void) const { return Kind_Deform_Linear_Solver_Prec; } - /*! - * \brief Set the kind of preconditioner for the implicit solver. - * \return Numerical preconditioner for implicit formulation (solving the linear system). - */ - void SetKind_AdjTurb_Linear_Prec(unsigned short val_kind_prec) { Kind_AdjTurb_Linear_Prec = val_kind_prec; } - - /*! - * \brief Get min error of the linear solver for the implicit formulation. - * \return Min error of the linear solver for the implicit formulation. - */ - su2double GetAdjTurb_Linear_Error(void) const { return AdjTurb_Linear_Error; } - /*! * \brief Get the entropy fix. * \return Vaule of the entropy fix. */ su2double GetEntropyFix_Coeff(void) const { return EntropyFix_Coeff; } - /*! - * \brief Get max number of iterations of the linear solver for the implicit formulation. - * \return Max number of iterations of the linear solver for the implicit formulation. - */ - unsigned short GetAdjTurb_Linear_Iter(void) const { return AdjTurb_Linear_Iter; } - /*! * \brief Get CFL reduction factor for adjoint turbulence model. * \return CFL reduction factor. @@ -5146,7 +5124,7 @@ class CConfig { * \brief Get the kind of turbomachinery architecture. * \return Kind of turbomachinery architecture. */ - unsigned short GetKind_TurboMachinery(unsigned short val_iZone) const { return Kind_TurboMachinery[val_iZone]; } + TURBOMACHINERY_TYPE GetKind_TurboMachinery(unsigned short val_iZone) const { return Kind_TurboMachinery[val_iZone]; } /*! * \brief Get the kind of turbomachinery architecture. @@ -5261,7 +5239,7 @@ class CConfig { void SetnSpanWiseSections(unsigned short nSpan) { nSpanWiseSections = nSpan;} /*! - * \brief set number span-wise sections to compute 3D BC and performance for turbomachinery. + * \brief get number span-wise sections to compute 3D BC and performance for turbomachinery. */ unsigned short GetnSpan_iZones(unsigned short iZone) const { return nSpan_iZones[iZone];} @@ -5286,7 +5264,7 @@ class CConfig { * \brief get marker kind for Turbomachinery performance calculation. * \return kind index. */ - unsigned short GetKind_TurboPerf(unsigned short index); + TURBO_PERF_KIND GetKind_TurboPerf(unsigned short val_iZone) const { return Kind_TurboPerf[val_iZone]; }; /*! * \brief get outlet bounds name for Turbomachinery performance calculation. @@ -5939,6 +5917,15 @@ class CConfig { */ su2double GetMarkerTranslationRate(unsigned short iMarkerMoving, unsigned short iDim) const { return MarkerTranslation_Rate[3*iMarkerMoving + iDim];} + /*! + * \brief Set the translation rate of the marker. + * \param[in] iDim - spatial component + * \param[in] val - translational velocity + */ + void SetMarkerTranslationRate(unsigned short iMarkerMoving, unsigned short iDim, su2double val) { + MarkerTranslation_Rate[3 * iMarkerMoving + iDim] = val; + } + /*! * \brief Get the rotation rate of the mesh. * \param[in] iDim - spatial component @@ -5962,6 +5949,16 @@ class CConfig { */ su2double GetMarkerRotationRate(unsigned short iMarkerMoving, unsigned short iDim) const { return MarkerRotation_Rate[3*iMarkerMoving + iDim];} + /*! + * \brief Set the rotation rate of the marker. + * \param[in] iMarkerMoving - Index of the moving marker (as specified in Marker_Moving) + * \param[in] iDim - spatial component + * \param[in] val - Rotational velocity + */ + void SetMarkerRotationRate(unsigned short iMarkerMoving, unsigned short iDim, su2double val) { + MarkerRotation_Rate[3 * iMarkerMoving + iDim] = val; + } + /*! * \brief Get the pitching rate of the mesh. * \param[in] iDim - spatial component @@ -6487,8 +6484,8 @@ class CConfig { su2double GetWeightCd(void) const { return WeightCd; } /*! - * \brief Value of the weight of the CD, CL, CM optimization. - * \return Value of the weight of the CD, CL, CM optimization. + * \brief Value of the damping factor for the Thrust BC (actuator disk). + * \return Value of the damping factor. */ void SetdNetThrust_dBCThrust(su2double val_dnetthrust_dbcthrust); @@ -6552,12 +6549,6 @@ class CConfig { */ void SetdCL_dAlpha(su2double val_dcl_dalpha) { dCL_dAlpha = val_dcl_dalpha; } - /*! - * \brief Value of the weight of the CD, CL, CM optimization. - * \return Value of the weight of the CD, CL, CM optimization. - */ - void SetdCM_diH(su2double val_dcm_dhi) { dCM_diH = val_dcm_dhi; } - /*! * \brief Value of the weight of the CD, CL, CM optimization. * \return Value of the weight of the CD, CL, CM optimization. @@ -6659,6 +6650,31 @@ class CConfig { */ su2double GetActDisk_Omega(const string& val_marker, unsigned short val_index) const; + /*! + * \brief Get the Center of the actuator disk with BEM. + */ + su2double GetActDiskBem_CG(unsigned short iDim, string val_marker, unsigned short val_index) const; + + /*! + * \brief Get the axis of the actuator disk with BEM. + */ + su2double GetActDiskBem_Axis(unsigned short iDim, string val_marker, unsigned short val_index) const; + + /*! + * \brief Get the frequency of updating the actuator disk with BEM. + */ + const unsigned short& GetActDiskBem_Frequency(void) const { return ActDiskBem_Frequency; } + + /*! + * \brief Get the blade angle of the propeller. + */ + su2double GetBEM_blade_angle(void) const { return BEM_blade_angle; } + + /*! + * \brief Get the filename of the propeller. + */ + const string& GetBEM_prop_filename(void) const { return BEM_prop_filename; } + /*! * \brief Get Actuator Disk Outlet for boundary val_marker (actuator disk inlet). * \return Actuator Disk Outlet from the config information for the marker val_marker. @@ -8191,6 +8207,20 @@ class CConfig { */ su2double GetActDiskOutlet_Power(const string& val_marker) const; + /*! + * \brief Get the thrust at the actuator disk outlet boundary. + * \param[in] val_marker - Marker corresponding to the outlet (actuator disk) boundary. + * \return The outlet (actuator disk) thrust. + */ + su2double GetActDiskOutlet_Thrust_BEM(string val_marker) const; + + /*! + * \brief Get the torque at the actuator disk outlet boundary. + * \param[in] val_marker - Marker corresponding to the outlet boundary. + * \return The outlet (actuator disk) torque. + */ + su2double GetActDiskOutlet_Torque_BEM(string val_marker) const; + /*! * \brief Get the back pressure (static) at an outlet boundary. * \param[in] val_index - Index corresponding to the outlet boundary. @@ -8226,6 +8256,24 @@ class CConfig { */ void SetActDiskOutlet_Power(unsigned short val_marker, su2double val_actdisk_power) { ActDiskOutlet_Power[val_marker] = val_actdisk_power; } + /*! + * \brief Set the thrust at the outlet (actuator disk) boundary. + * \param[in] val_marker - Marker corresponding to the outlet (actuator disk) boundary. + * \param[in] val_actdisk_thrust_bem - Value of the actuator disk thrust. + */ + void SetActDiskOutlet_Thrust_BEM(unsigned short val_marker, su2double val_actdisk_thrust_bem) { + ActDiskOutlet_Thrust_BEM[val_marker] = val_actdisk_thrust_bem; + } + + /*! + * \brief Get the back pressure (static) at an outlet boundary. + * \param[in] val_marker - Marker corresponding to the outlet boundary. + * \param[in] val_actdisk_torque_bem - Value of the actuator disk torque. + */ + void SetActDiskOutlet_Torque_BEM(unsigned short val_marker, su2double val_actdisk_torque_bem) { + ActDiskOutlet_Torque_BEM[val_marker] = val_actdisk_torque_bem; + } + /*! * \brief Get the displacement value at an displacement boundary. * \param[in] val_index - Index corresponding to the displacement boundary. @@ -8289,46 +8337,6 @@ class CConfig { */ const su2double* GetDisp_Dir(const string& val_index) const; - /*! - * \brief Get the amplitude of the sine-wave at a load boundary defined in cartesian coordinates. - * \param[in] val_index - Index corresponding to the load boundary. - * \return The load value. - */ - su2double GetLoad_Sine_Amplitude(const string& val_index) const; - - /*! - * \brief Get the frequency of the sine-wave at a load boundary in cartesian coordinates. - * \param[in] val_index - Index corresponding to the load boundary. - * \return The load frequency. - */ - su2double GetLoad_Sine_Frequency(const string& val_index) const; - - /*! - * \brief Get the force direction at a sine-wave loaded boundary in cartesian coordinates. - * \param[in] val_index - Index corresponding to the load boundary. - * \return The load direction. - */ - const su2double* GetLoad_Sine_Dir(const string& val_index) const; - - /*! - * \brief Get the force value at an load boundary. - * \param[in] val_index - Index corresponding to the load boundary. - * \return The load value. - */ - su2double GetFlowLoad_Value(const string& val_index) const; - - /*! - * \brief Cyclic pitch amplitude for rotor blades. - * \return The specified cyclic pitch amplitude. - */ - su2double GetCyclic_Pitch(void) const { return Cyclic_Pitch; } - - /*! - * \brief Collective pitch setting for rotor blades. - * \return The specified collective pitch setting. - */ - su2double GetCollective_Pitch(void) const { return Collective_Pitch; } - /*! * \brief Get name of the arbitrary mesh motion input file. * \return File name of the arbitrary mesh motion input file. @@ -8631,12 +8639,6 @@ class CConfig { */ unsigned long GetIter_dCL_dAlpha(void) const { return Iter_dCL_dAlpha; } - /*! - * \brief Get the value of the damping coefficient for fixed CL mode. - * \return Damping coefficient for fixed CL mode. - */ - su2double GetdCM_diH(void) const { return dCM_diH; } - /*! * \brief Get the value of iterations to re-evaluate the angle of attack. * \return Number of iterations. @@ -8644,8 +8646,8 @@ class CConfig { unsigned long GetIter_Fixed_NetThrust(void) const { return Iter_Fixed_NetThrust; } /*! - * \brief Get the value of the damping coefficient for fixed CL mode. - * \return Damping coefficient for fixed CL mode. + * \brief Get the value of NetThrust_dBCThrust. + * \return Value NetThrust_dBCThrust. */ su2double GetdNetThrust_dBCThrust(void) const { return dNetThrust_dBCThrust; } @@ -9665,6 +9667,11 @@ class CConfig { */ unsigned long GetEdgeColoringGroupSize(void) const { return edgeColorGroupSize; } + /*! + * \brief Check if the discrete adjoint is allowed to relax the coloring, that is, allow smaller edge color group sizes and allow more colors. + */ + bool GetEdgeColoringRelaxDiscAdj() const { return edgeColoringRelaxDiscAdj; } + /*! * \brief Get the ParMETIS load balancing tolerance. */ diff --git a/Common/include/adt/CADTBaseClass.hpp b/Common/include/adt/CADTBaseClass.hpp index 996a11a8edf..fa0623c000f 100644 --- a/Common/include/adt/CADTBaseClass.hpp +++ b/Common/include/adt/CADTBaseClass.hpp @@ -2,14 +2,14 @@ * \file CADTBaseClass.hpp * \brief Base class for storing an ADT in an arbitrary number of dimensions. * \author E. van der Weide - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/include/adt/CADTComparePointClass.hpp b/Common/include/adt/CADTComparePointClass.hpp index ca6655f40f5..2e6f0a144dd 100644 --- a/Common/include/adt/CADTComparePointClass.hpp +++ b/Common/include/adt/CADTComparePointClass.hpp @@ -2,14 +2,14 @@ * \file CADTComparePointClass.hpp * \brief subroutines for comparing two points in an alternating digital tree (ADT). * \author E. van der Weide - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/include/adt/CADTElemClass.hpp b/Common/include/adt/CADTElemClass.hpp index 2f8855aeb68..f20fabc982d 100644 --- a/Common/include/adt/CADTElemClass.hpp +++ b/Common/include/adt/CADTElemClass.hpp @@ -2,14 +2,14 @@ * \file CADTElemClass.hpp * \brief Class for storing an ADT of (linear) elements in an arbitrary number of dimensions. * \author E. van der Weide - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -36,7 +36,7 @@ * \ingroup ADT * \brief Class for storing an ADT of (linear) elements in an arbitrary number of dimensions. * \author E. van der Weide - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" */ class CADTElemClass : public CADTBaseClass { private: diff --git a/Common/include/adt/CADTNodeClass.hpp b/Common/include/adt/CADTNodeClass.hpp index c09dda7799d..21cdfefde36 100644 --- a/Common/include/adt/CADTNodeClass.hpp +++ b/Common/include/adt/CADTNodeClass.hpp @@ -2,14 +2,14 @@ * \file CADTNodeClass.hpp * \brief Class for storing the information needed in a node of an ADT. * \author E. van der Weide - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/include/adt/CADTPointsOnlyClass.hpp b/Common/include/adt/CADTPointsOnlyClass.hpp index 721c09398b1..0d24ed38d63 100644 --- a/Common/include/adt/CADTPointsOnlyClass.hpp +++ b/Common/include/adt/CADTPointsOnlyClass.hpp @@ -2,14 +2,14 @@ * \file CADTPointsOnlyClass.hpp * \brief Class for storing an ADT of only points in an arbitrary number of dimensions. * \author E. van der Weide - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/include/adt/CBBoxTargetClass.hpp b/Common/include/adt/CBBoxTargetClass.hpp index 3ff32c169a2..b772affb35d 100644 --- a/Common/include/adt/CBBoxTargetClass.hpp +++ b/Common/include/adt/CBBoxTargetClass.hpp @@ -3,14 +3,14 @@ * \brief Class for storing the information of a possible bounding box candidate during a minimum distance search. * \author E. van der Weide - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -35,7 +35,7 @@ * \brief Class for storing the information of a possible bounding box candidate during a minimum distance search. * \author E. van der Weide - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" */ struct CBBoxTargetClass { unsigned long boundingBoxID; /*!< \brief Corresponding bounding box ID. */ diff --git a/Common/include/basic_types/ad_structure.hpp b/Common/include/basic_types/ad_structure.hpp index 8cf72344258..bdb13365056 100644 --- a/Common/include/basic_types/ad_structure.hpp +++ b/Common/include/basic_types/ad_structure.hpp @@ -2,14 +2,14 @@ * \file ad_structure.hpp * \brief Main routines for the algorithmic differentiation (AD) structure. * \author T. Albring, J. Blühdorn - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -78,6 +78,19 @@ inline void RegisterOutput(su2double& data) {} */ inline void ResizeAdjoints() {} +/*! + * \brief Declare that the adjoints are being used, to protect against resizing. + * + * Should be used together with AD::EndUseAdjoints() to protect AD::SetDerivative() and AD::GetDerivative() calls, + * multiple at once if possible. + */ +inline void BeginUseAdjoints() {} + +/*! + * \brief Declare that the adjoints are no longer being used. + */ +inline void EndUseAdjoints() {} + /*! * \brief Sets the adjoint value at index to val * \param[in] index - Position in the adjoint vector. @@ -344,6 +357,9 @@ FORCEINLINE void ComputeAdjoint() { opdi::logic->prepareEvaluate(); #endif AD::getTape().evaluate(); +#if defined(HAVE_OPDI) + opdi::logic->postEvaluate(); +#endif } FORCEINLINE void ComputeAdjoint(unsigned short enter, unsigned short leave) { @@ -375,10 +391,16 @@ FORCEINLINE void Reset() { FORCEINLINE void ResizeAdjoints() { AD::getTape().resizeAdjointVector(); } +FORCEINLINE void BeginUseAdjoints() { AD::getTape().beginUseAdjointVector(); } + +FORCEINLINE void EndUseAdjoints() { AD::getTape().endUseAdjointVector(); } + FORCEINLINE void SetIndex(int& index, const su2double& data) { index = data.getIdentifier(); } // WARNING: For performance reasons, this method does not perform bounds checking. // When using it, please ensure sufficient adjoint vector size by a call to AD::ResizeAdjoints(). +// This method does not perform locking either. +// It should be safeguarded by calls to AD::BeginUseAdjoints() and AD::EndUseAdjoints(). FORCEINLINE void SetDerivative(int index, const double val) { if (index == 0) // Allow multiple threads to "set the derivative" of passive variables without causing data races. return; @@ -389,6 +411,8 @@ FORCEINLINE void SetDerivative(int index, const double val) { // WARNING: For performance reasons, this method does not perform bounds checking. // If called after tape evaluations, the adjoints should exist. // Otherwise, please ensure sufficient adjoint vector size by a call to AD::ResizeAdjoints(). +// This method does not perform locking either. +// It should be safeguarded by calls to AD::BeginUseAdjoints() and AD::EndUseAdjoints(). FORCEINLINE double GetDerivative(int index) { return AD::getTape().getGradient(index, codi::AdjointsManagement::Manual); } diff --git a/Common/include/basic_types/datatype_structure.hpp b/Common/include/basic_types/datatype_structure.hpp index 54d8d5fbd64..729181a0b92 100644 --- a/Common/include/basic_types/datatype_structure.hpp +++ b/Common/include/basic_types/datatype_structure.hpp @@ -2,14 +2,14 @@ * \file datatype_structure.hpp * \brief Headers for generalized datatypes, defines an interface for AD types. * \author T. Albring - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/include/code_config.hpp b/Common/include/code_config.hpp index 447c1a5fb5f..53e18639950 100644 --- a/Common/include/code_config.hpp +++ b/Common/include/code_config.hpp @@ -2,14 +2,14 @@ * \file code_config.hpp * \brief Header file for collecting common macros, definitions and type configurations. * \author T. Albring, P. Gomes, J. Blühdorn - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/include/containers/C2DContainer.hpp b/Common/include/containers/C2DContainer.hpp index d53be8ddcd8..633c6b7defe 100644 --- a/Common/include/containers/C2DContainer.hpp +++ b/Common/include/containers/C2DContainer.hpp @@ -2,14 +2,14 @@ * \file C2DContainer.hpp * \brief A templated vector/matrix object. * \author P. Gomes - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/include/containers/CFastFindAndEraseQueue.hpp b/Common/include/containers/CFastFindAndEraseQueue.hpp index cd4a528d883..7bcc3afbe32 100644 --- a/Common/include/containers/CFastFindAndEraseQueue.hpp +++ b/Common/include/containers/CFastFindAndEraseQueue.hpp @@ -3,14 +3,14 @@ * \brief A queue-type container (push back, pop front), but with * fast deletion of arbitrary items (possibly in the middle). * \author P. Gomes - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/include/containers/CFileReaderLUT.hpp b/Common/include/containers/CFileReaderLUT.hpp index bd1c64d2844..f673b064c01 100644 --- a/Common/include/containers/CFileReaderLUT.hpp +++ b/Common/include/containers/CFileReaderLUT.hpp @@ -2,14 +2,14 @@ * \file CFileReaderLUT.hpp * \brief reading lookup table for tabulated fluid properties * \author D. Mayer, T. Economon - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/include/containers/CLookUpTable.hpp b/Common/include/containers/CLookUpTable.hpp index 102f69d1db1..50add943c1f 100644 --- a/Common/include/containers/CLookUpTable.hpp +++ b/Common/include/containers/CLookUpTable.hpp @@ -2,14 +2,14 @@ * \file CLookupTable.hpp * \brief tabulation of fluid properties * \author D. Mayer, T. Economon - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/include/containers/CPyWrapperMatrixView.hpp b/Common/include/containers/CPyWrapperMatrixView.hpp index 67562065978..fe72265eab2 100644 --- a/Common/include/containers/CPyWrapperMatrixView.hpp +++ b/Common/include/containers/CPyWrapperMatrixView.hpp @@ -2,14 +2,14 @@ * \file CPyWrapperMatrixView.hpp * \brief Simple matrix views to use with the python wrapper. * \author P. Gomes - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/include/containers/CTrapezoidalMap.hpp b/Common/include/containers/CTrapezoidalMap.hpp index c5f99f1bb3f..c82d0281a2c 100644 --- a/Common/include/containers/CTrapezoidalMap.hpp +++ b/Common/include/containers/CTrapezoidalMap.hpp @@ -2,14 +2,14 @@ * \file CTrapezoidalMap.hpp * \brief Implementation of the trapezoidal map for tabulation and lookup of fluid properties * \author D. Mayer, T. Economon - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -38,7 +38,7 @@ * \ingroup LookUpInterp * \brief Construction of trapezoidal map for tabulated lookup * \author: D. Mayer, T. Economon - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" */ class CTrapezoidalMap { protected: diff --git a/Common/include/containers/CVertexMap.hpp b/Common/include/containers/CVertexMap.hpp index e02bf7a4a25..d7efec6e6db 100644 --- a/Common/include/containers/CVertexMap.hpp +++ b/Common/include/containers/CVertexMap.hpp @@ -2,14 +2,14 @@ * \file CVertexMap.hpp * \brief An index to index lookup vector. * \author P. Gomes - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/include/containers/container_decorators.hpp b/Common/include/containers/container_decorators.hpp index 3bcbf705217..fc0ec3a1dc1 100644 --- a/Common/include/containers/container_decorators.hpp +++ b/Common/include/containers/container_decorators.hpp @@ -3,14 +3,14 @@ * \brief Collection of small classes that decorate C2DContainer to * augment its functionality, e.g. give it extra dimensions. * \author P. Gomes - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/include/fem/fem_cgns_elements.hpp b/Common/include/fem/fem_cgns_elements.hpp index 43bcfb0b6fb..5c4420f445d 100644 --- a/Common/include/fem/fem_cgns_elements.hpp +++ b/Common/include/fem/fem_cgns_elements.hpp @@ -4,14 +4,14 @@ * with high order elements. * The functions are in the cgns_elements.cpp file. * \author E. van der Weide - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/include/fem/fem_gauss_jacobi_quadrature.hpp b/Common/include/fem/fem_gauss_jacobi_quadrature.hpp index 03ed52eab78..8f240bccda1 100644 --- a/Common/include/fem/fem_gauss_jacobi_quadrature.hpp +++ b/Common/include/fem/fem_gauss_jacobi_quadrature.hpp @@ -6,14 +6,14 @@ All the functions in this class are based on the program JACOBI_RULE of John Burkardt. * \author E. van der Weide - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -95,7 +95,7 @@ using namespace std; * \brief Class used to determine the quadrature points of the Gauss Jacobi integration rules. * \author E. van der Weide - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" */ class CGaussJacobiQuadrature { public: diff --git a/Common/include/fem/fem_geometry_structure.hpp b/Common/include/fem/fem_geometry_structure.hpp index 3ea11dedb01..1454352b3f0 100644 --- a/Common/include/fem/fem_geometry_structure.hpp +++ b/Common/include/fem/fem_geometry_structure.hpp @@ -3,14 +3,14 @@ * \brief Headers of the main subroutines for creating the geometrical structure for the FEM solver. * The subroutines and functions are in the fem_geometry_structure.cpp file. * \author E. van der Weide - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -41,7 +41,7 @@ using namespace std; /*! * \class CLong3T * \brief Help class used to store three longs as one entity. - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" */ struct CLong3T { long long0 = 0; /*!< \brief First long to store in this class. */ @@ -63,7 +63,7 @@ struct CLong3T { * \class CReorderElements * \brief Class, used to reorder the owned elements after the partitioning. * \author E. van der Weide - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" */ class CReorderElements { private: @@ -131,7 +131,7 @@ class CReorderElements { * \brief Functor, used for a different sorting of the faces than the < operator * of CFaceOfElement. * \author E. van der Weide - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" */ class CVolumeElementFEM; // Forward declaration to avoid problems. class CSortFaces { @@ -169,7 +169,7 @@ class CSortFaces { * \brief Functor, used for a different sorting of the faces than the < operator * of CSurfaceElementFEM. * \author E. van der Weide - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" */ struct CSurfaceElementFEM; // Forward declaration to avoid problems. struct CSortBoundaryFaces { @@ -185,7 +185,7 @@ struct CSortBoundaryFaces { * \class CVolumeElementFEM * \brief Class to store a volume element for the FEM solver. * \author E. van der Weide - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" */ class CVolumeElementFEM { public: @@ -276,7 +276,7 @@ class CVolumeElementFEM { * \class CPointFEM * \brief Class to a point for the FEM solver. * \author E. van der Weide - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" */ struct CPointFEM { unsigned long globalID; /*!< \brief The global ID of this point in the grid. */ @@ -300,7 +300,7 @@ struct CPointFEM { * \class CInternalFaceElementFEM * \brief Class to store an internal face for the FEM solver. * \author E. van der Weide - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" */ struct CInternalFaceElementFEM { unsigned short VTK_Type; /*!< \brief Element type using the VTK convention. */ @@ -344,7 +344,7 @@ struct CInternalFaceElementFEM { * \class CSurfaceElementFEM * \brief Class to store a surface element for the FEM solver. * \author E. van der Weide - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" */ struct CSurfaceElementFEM { unsigned short VTK_Type; /*!< \brief Element type using the VTK convention. */ @@ -405,7 +405,7 @@ struct CSurfaceElementFEM { * \class CBoundaryFEM * \brief Class to store a boundary for the FEM solver. * \author E. van der Weide - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" */ struct CBoundaryFEM { string markerTag; /*!< \brief Marker tag of this boundary. */ @@ -428,7 +428,7 @@ struct CBoundaryFEM { * \class CMeshFEM * \brief Base class for the FEM solver. * \author E. van der Weide - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" */ class CMeshFEM : public CGeometry { protected: @@ -693,7 +693,7 @@ class CMeshFEM : public CGeometry { * \class CMeshFEM_DG * \brief Class which contains all the variables for the DG FEM solver. * \author E. van der Weide - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" */ class CMeshFEM_DG : public CMeshFEM { protected: diff --git a/Common/include/fem/fem_standard_element.hpp b/Common/include/fem/fem_standard_element.hpp index 7457fe715cf..a4c5c0ac9ec 100644 --- a/Common/include/fem/fem_standard_element.hpp +++ b/Common/include/fem/fem_standard_element.hpp @@ -3,14 +3,14 @@ * \brief Headers of the main functions for the FEM standard elements. * The functions are in the fem_standard_element.cpp file. * \author E. van der Weide - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -40,7 +40,7 @@ using namespace std; * \class CFEMStandardElementBase * \brief Base class for a FEM standard element. * \author E. van der Weide - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" */ class CFEMStandardElementBase { protected: @@ -668,7 +668,7 @@ class CFEMStandardElementBase { * \class CFEMStandardElement * \brief Class to define a FEM standard element. * \author E. van der Weide - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" */ class CFEMStandardElement : public CFEMStandardElementBase { private: @@ -1101,7 +1101,7 @@ class CFEMStandardElement : public CFEMStandardElementBase { * \class CFEMStandardInternalFace * \brief Class to define a FEM standard internal face. * \author E. van der Weide - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" */ class CFEMStandardInternalFace : public CFEMStandardElementBase { private: @@ -1434,7 +1434,7 @@ class CFEMStandardInternalFace : public CFEMStandardElementBase { * \class CFEMStandardBoundaryFace * \brief Class to define a FEM standard boundary face. * \author E. van der Weide - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" */ class CFEMStandardBoundaryFace : public CFEMStandardElementBase { private: diff --git a/Common/include/fem/geometry_structure_fem_part.hpp b/Common/include/fem/geometry_structure_fem_part.hpp index 66471908d5a..770f55b0a42 100644 --- a/Common/include/fem/geometry_structure_fem_part.hpp +++ b/Common/include/fem/geometry_structure_fem_part.hpp @@ -2,14 +2,14 @@ * \file geometry_structure_fem_part.hpp * \brief Helper classes for the Fluid FEM solver. * \author E. van der Weide - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/include/geometry/CDummyGeometry.hpp b/Common/include/geometry/CDummyGeometry.hpp index a7dea357b68..a4ff8402d66 100644 --- a/Common/include/geometry/CDummyGeometry.hpp +++ b/Common/include/geometry/CDummyGeometry.hpp @@ -2,14 +2,14 @@ * \file CDummyGeometry.hpp * \brief Headers of the dummy geometry class used in "dry run" mode. * \author T. Albring - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/include/geometry/CGeometry.hpp b/Common/include/geometry/CGeometry.hpp index f8111060725..15a726cabec 100644 --- a/Common/include/geometry/CGeometry.hpp +++ b/Common/include/geometry/CGeometry.hpp @@ -3,14 +3,14 @@ * \brief Headers of the main subroutines for creating the geometrical structure. * The subroutines and functions are in the CGeometry.cpp file. * \author F. Palacios, T. Economon - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -772,6 +772,15 @@ class CGeometry { */ inline virtual void GatherInOutAverageValues(CConfig* config, bool allocate) {} + /*! + * \brief Store all the turboperformance in the solver in ZONE_0. + * \param[in] donor_geometry - Solution from the donor mesh. + * \param[in] target_geometry - Solution from the target mesh. + * \param[in] donorZone - counter of the donor solution + */ + inline virtual void SetAvgTurboGeoValues(const CConfig* donor_config, CGeometry* donor_geometry, + unsigned short donorZone){}; + /*! * \brief Set max length. * \param[in] config - Definition of the particular problem. @@ -1720,10 +1729,14 @@ class CGeometry { /*! * \brief Get the edge coloring. * \note This method computes the coloring if that has not been done yet. + * \note Can be instructed to determine and use the maximum edge color group size between 1 and + * CGeometry::edgeColorGroupSize that yields a coloring that is at least as efficient as #COLORING_EFF_THRESH. * \param[out] efficiency - optional output of the coloring efficiency. + * \param[in] maximizeEdgeColorGroupSize - use the maximum edge color group size that gives an efficient coloring. * \return Reference to the coloring. */ - const CCompressedSparsePatternUL& GetEdgeColoring(su2double* efficiency = nullptr); + const CCompressedSparsePatternUL& GetEdgeColoring(su2double* efficiency = nullptr, + bool maximizeEdgeColorGroupSize = false); /*! * \brief Force the natural (sequential) edge coloring. diff --git a/Common/include/geometry/CMultiGridGeometry.hpp b/Common/include/geometry/CMultiGridGeometry.hpp index 8136859bf64..6669db4b019 100644 --- a/Common/include/geometry/CMultiGridGeometry.hpp +++ b/Common/include/geometry/CMultiGridGeometry.hpp @@ -2,14 +2,14 @@ * \file CMultiGridGeometry.hpp * \brief Headers of the multigrid geometry class. * \author F. Palacios, T. Economon - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/include/geometry/CMultiGridQueue.hpp b/Common/include/geometry/CMultiGridQueue.hpp index 11995b3492d..a76f27265cf 100644 --- a/Common/include/geometry/CMultiGridQueue.hpp +++ b/Common/include/geometry/CMultiGridQueue.hpp @@ -3,14 +3,14 @@ * \brief Header of the multigrid queue class for the FVM solver. * The subroutines and functions are in the CMultiGridQueue.cpp file. * \author F. Palacios - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/include/geometry/CPhysicalGeometry.hpp b/Common/include/geometry/CPhysicalGeometry.hpp index 8e10bc2e685..10e781cb85e 100644 --- a/Common/include/geometry/CPhysicalGeometry.hpp +++ b/Common/include/geometry/CPhysicalGeometry.hpp @@ -2,14 +2,14 @@ * \file CPhysicalGeometry.hpp * \brief Headers of the physical geometry class used to read meshes from file. * \author F. Palacios, T. Economon - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -408,6 +408,14 @@ class CPhysicalGeometry final : public CGeometry { */ void GatherInOutAverageValues(CConfig* config, bool allocate) override; + /*! + * \brief Store all the turboperformance in the solver in ZONE_0. + * \param[in] donor_geometry - Solution from the donor mesh. + * \param[in] target_geometry - Solution from the target mesh. + * \param[in] donorZone - counter of the donor solution + */ + void SetAvgTurboGeoValues(const CConfig* donor_config, CGeometry* donor_geometry, unsigned short donorZone) override; + /*! * \brief Set the edge structure of the control volume. * \param[in] config - Definition of the particular problem. diff --git a/Common/include/geometry/dual_grid/CDualGrid.hpp b/Common/include/geometry/dual_grid/CDualGrid.hpp index 04b0f79dc10..c33fa3f376a 100644 --- a/Common/include/geometry/dual_grid/CDualGrid.hpp +++ b/Common/include/geometry/dual_grid/CDualGrid.hpp @@ -3,14 +3,14 @@ * \brief Headers of the main subroutines for doing the complete dual grid structure. * The subroutines and functions are in the CDualGrid.cpp file. * \author F. Palacios, T. Economon - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/include/geometry/dual_grid/CEdge.hpp b/Common/include/geometry/dual_grid/CEdge.hpp index ac40488c5f3..8e5d84b6c34 100644 --- a/Common/include/geometry/dual_grid/CEdge.hpp +++ b/Common/include/geometry/dual_grid/CEdge.hpp @@ -2,14 +2,14 @@ * \file CEdge.hpp * \brief Declaration of the edge class CEdge.cpp file. * \author F. Palacios, T. Economon - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/include/geometry/dual_grid/CPoint.hpp b/Common/include/geometry/dual_grid/CPoint.hpp index a6f0ac73870..9c73fdeaa9a 100644 --- a/Common/include/geometry/dual_grid/CPoint.hpp +++ b/Common/include/geometry/dual_grid/CPoint.hpp @@ -3,14 +3,14 @@ * \brief Declaration of the point class that stores geometric and adjacency * information for dual control volumes. * \author F. Palacios, T. Economon - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/include/geometry/dual_grid/CTurboVertex.hpp b/Common/include/geometry/dual_grid/CTurboVertex.hpp index d14d451ea5e..09e7852753f 100644 --- a/Common/include/geometry/dual_grid/CTurboVertex.hpp +++ b/Common/include/geometry/dual_grid/CTurboVertex.hpp @@ -3,14 +3,14 @@ * \brief Headers of the main subroutines for doing the complete dual grid structure. * The subroutines and functions are in the CTurboVertex.cpp file. * \author F. Palacios, T. Economon - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/include/geometry/dual_grid/CVertex.hpp b/Common/include/geometry/dual_grid/CVertex.hpp index 268e8eb278e..19294112395 100644 --- a/Common/include/geometry/dual_grid/CVertex.hpp +++ b/Common/include/geometry/dual_grid/CVertex.hpp @@ -3,14 +3,14 @@ * \brief Headers of the main subroutines for doing the complete dual grid structure. * The subroutines and functions are in the CVertex.cpp file. * \author F. Palacios, T. Economon - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/include/geometry/elements/CElement.hpp b/Common/include/geometry/elements/CElement.hpp index 7c30c56ea97..4c67008569a 100644 --- a/Common/include/geometry/elements/CElement.hpp +++ b/Common/include/geometry/elements/CElement.hpp @@ -3,14 +3,14 @@ * \brief Main header of the Finite Element structure declaring the abstract * interface and the available finite element types. * \author R. Sanchez - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -900,7 +900,7 @@ class CPYRAM5 final : public CElementWithKnownSizes<5, 5, 3> { * \ingroup FemAlgos * \brief Prism element with 6 Gauss Points * \author R. Sanchez, F. Palacios, A. Bueno, T. Economon, S. Padron. - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" */ class CPRISM6 final : public CElementWithKnownSizes<6, 6, 3> { private: diff --git a/Common/include/geometry/elements/CElementProperty.hpp b/Common/include/geometry/elements/CElementProperty.hpp index 8fc195d964f..64110715d6c 100644 --- a/Common/include/geometry/elements/CElementProperty.hpp +++ b/Common/include/geometry/elements/CElementProperty.hpp @@ -2,14 +2,14 @@ * \file CElementProperty.hpp * \brief Light classes to define finite element properties. * \author R. Sanchez - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -32,7 +32,7 @@ * \ingroup Elasticity_Equations * \brief Base class for defining element properties. * \author R. Sanchez - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" */ class CProperty { protected: @@ -106,7 +106,7 @@ class CProperty { * \ingroup Elasticity_Equations * \brief Class for defining element properties for the structural solver. * \author R. Sanchez - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" */ class CElementProperty final : public CProperty { private: diff --git a/Common/include/geometry/elements/CGaussVariable.hpp b/Common/include/geometry/elements/CGaussVariable.hpp index 78ebcb92683..b88a70be367 100644 --- a/Common/include/geometry/elements/CGaussVariable.hpp +++ b/Common/include/geometry/elements/CGaussVariable.hpp @@ -2,14 +2,14 @@ * \file CGaussVariable.hpp * \brief Light-weight class to store Gaussian point information. * \author R. Sanchez - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -33,7 +33,7 @@ * \class CGaussVariable * \ingroup FemAlgos * \brief Main class for defining the gaussian points. - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" */ class CGaussVariable { protected: diff --git a/Common/include/geometry/meshreader/CBoxMeshReaderFVM.hpp b/Common/include/geometry/meshreader/CBoxMeshReaderFVM.hpp index 1c99fe92da8..4ffc37200ab 100644 --- a/Common/include/geometry/meshreader/CBoxMeshReaderFVM.hpp +++ b/Common/include/geometry/meshreader/CBoxMeshReaderFVM.hpp @@ -3,14 +3,14 @@ * \brief Header file for the class CBoxMeshReaderFVM. * The implementations are in the CBoxMeshReaderFVM.cpp file. * \author T. Economon - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -76,5 +76,5 @@ class CBoxMeshReaderFVM : public CMeshReaderFVM { /*! * \brief Destructor of the CBoxMeshReaderFVM class. */ - ~CBoxMeshReaderFVM(void); + ~CBoxMeshReaderFVM(void) override; }; diff --git a/Common/include/geometry/meshreader/CCGNSMeshReaderFVM.hpp b/Common/include/geometry/meshreader/CCGNSMeshReaderFVM.hpp index f655993208a..7ef5ef88206 100644 --- a/Common/include/geometry/meshreader/CCGNSMeshReaderFVM.hpp +++ b/Common/include/geometry/meshreader/CCGNSMeshReaderFVM.hpp @@ -3,14 +3,14 @@ * \brief Header file for the class CCGNSMeshReaderFVM. * The implementations are in the CCGNSMeshReaderFVM.cpp file. * \author T. Economon - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -148,5 +148,5 @@ class CCGNSMeshReaderFVM : public CMeshReaderFVM { /*! * \brief Destructor of the CCGNSMeshReaderFVM class. */ - ~CCGNSMeshReaderFVM(void); + ~CCGNSMeshReaderFVM(void) override; }; diff --git a/Common/include/geometry/meshreader/CMeshReaderFVM.hpp b/Common/include/geometry/meshreader/CMeshReaderFVM.hpp index d5b934c7de0..e3f295b00d3 100644 --- a/Common/include/geometry/meshreader/CMeshReaderFVM.hpp +++ b/Common/include/geometry/meshreader/CMeshReaderFVM.hpp @@ -4,14 +4,14 @@ * \brief Header file for the class CMeshReaderFVM. * The implementations are in the CMeshReaderFVM.cpp file. * \author T. Economon - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -76,6 +76,8 @@ class CMeshReaderFVM { */ CMeshReaderFVM(const CConfig* val_config, unsigned short val_iZone, unsigned short val_nZone); + virtual ~CMeshReaderFVM() = default; + /*! * \brief Get the physical dimension of the problem (2 or 3). * \returns Physical dimension of the problem. diff --git a/Common/include/geometry/meshreader/CRectangularMeshReaderFVM.hpp b/Common/include/geometry/meshreader/CRectangularMeshReaderFVM.hpp index cda10fd6b32..3f029b75102 100644 --- a/Common/include/geometry/meshreader/CRectangularMeshReaderFVM.hpp +++ b/Common/include/geometry/meshreader/CRectangularMeshReaderFVM.hpp @@ -3,14 +3,14 @@ * \brief Header file for the class CRectangularMeshReaderFVM. * The implementations are in the CRectangularMeshReaderFVM.cpp file. * \author T. Economon - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/include/geometry/meshreader/CSU2ASCIIMeshReaderFVM.hpp b/Common/include/geometry/meshreader/CSU2ASCIIMeshReaderFVM.hpp index 61a71be8493..ff745cc7595 100644 --- a/Common/include/geometry/meshreader/CSU2ASCIIMeshReaderFVM.hpp +++ b/Common/include/geometry/meshreader/CSU2ASCIIMeshReaderFVM.hpp @@ -3,14 +3,14 @@ * \brief Header file for the class CSU2ASCIIMeshReaderFVM. * The implementations are in the CSU2ASCIIMeshReaderFVM.cpp file. * \author T. Economon - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/include/geometry/primal_grid/CHexahedron.hpp b/Common/include/geometry/primal_grid/CHexahedron.hpp index f2bcc41cf27..a4e0644ff20 100644 --- a/Common/include/geometry/primal_grid/CHexahedron.hpp +++ b/Common/include/geometry/primal_grid/CHexahedron.hpp @@ -3,14 +3,14 @@ * \brief Headers of the main subroutines for storing the primal grid structure. * The subroutines and functions are in the CHexahedron.cpp file. * \author F. Palacios - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/include/geometry/primal_grid/CLine.hpp b/Common/include/geometry/primal_grid/CLine.hpp index bafd3e5ea59..93c9c732fce 100644 --- a/Common/include/geometry/primal_grid/CLine.hpp +++ b/Common/include/geometry/primal_grid/CLine.hpp @@ -3,14 +3,14 @@ * \brief Headers of the main subroutines for storing the primal grid structure. * The subroutines and functions are in the CLine.cpp file. * \author F. Palacios - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/include/geometry/primal_grid/CPrimalGrid.hpp b/Common/include/geometry/primal_grid/CPrimalGrid.hpp index 2a27944b4d4..ebcdc55c5bf 100644 --- a/Common/include/geometry/primal_grid/CPrimalGrid.hpp +++ b/Common/include/geometry/primal_grid/CPrimalGrid.hpp @@ -3,14 +3,14 @@ * \brief Headers of the main subroutines for storing the primal grid structure. * The subroutines and functions are in the primal_grid_structure.cpp file. * \author F. Palacios - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/include/geometry/primal_grid/CPrimalGridBoundFEM.hpp b/Common/include/geometry/primal_grid/CPrimalGridBoundFEM.hpp index d08e921b016..382982d05f1 100644 --- a/Common/include/geometry/primal_grid/CPrimalGridBoundFEM.hpp +++ b/Common/include/geometry/primal_grid/CPrimalGridBoundFEM.hpp @@ -3,14 +3,14 @@ * \brief Headers of the main subroutines for storing the primal grid structure. * The subroutines and functions are in the CPrimalGridBoundFEM.cpp file. * \author F. Palacios - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -33,7 +33,7 @@ /*! * \class CPrimalGridBoundFEM * \brief Class to define primal grid boundary element for the FEM solver. - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" */ class CPrimalGridBoundFEM final : public CPrimalGrid { private: diff --git a/Common/include/geometry/primal_grid/CPrimalGridFEM.hpp b/Common/include/geometry/primal_grid/CPrimalGridFEM.hpp index 848ed24d890..fe6a71aa8e2 100644 --- a/Common/include/geometry/primal_grid/CPrimalGridFEM.hpp +++ b/Common/include/geometry/primal_grid/CPrimalGridFEM.hpp @@ -3,14 +3,14 @@ * \brief Headers of the main subroutines for storing the primal grid structure. * The subroutines and functions are in the CPrimalGridFEM.cpp file. * \author F. Palacios - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -34,7 +34,7 @@ /*! * \class CPrimalGridFEM * \brief Class to define primal grid element for the FEM solver. - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" */ class CPrimalGridFEM final : public CPrimalGrid { private: diff --git a/Common/include/geometry/primal_grid/CPrism.hpp b/Common/include/geometry/primal_grid/CPrism.hpp index 4466c12b468..de10df4aeb9 100644 --- a/Common/include/geometry/primal_grid/CPrism.hpp +++ b/Common/include/geometry/primal_grid/CPrism.hpp @@ -3,14 +3,14 @@ * \brief Headers of the main subroutines for storing the primal grid structure. * The subroutines and functions are in the CPrism.cpp file. * \author F. Palacios - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/include/geometry/primal_grid/CPyramid.hpp b/Common/include/geometry/primal_grid/CPyramid.hpp index 028136c4f2f..c2dda35bd6c 100644 --- a/Common/include/geometry/primal_grid/CPyramid.hpp +++ b/Common/include/geometry/primal_grid/CPyramid.hpp @@ -3,14 +3,14 @@ * \brief Headers of the main subroutines for storing the primal grid structure. * The subroutines and functions are in the CPyramid.cpp file. * \author F. Palacios - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/include/geometry/primal_grid/CQuadrilateral.hpp b/Common/include/geometry/primal_grid/CQuadrilateral.hpp index 435e46e64f2..23738f4dee7 100644 --- a/Common/include/geometry/primal_grid/CQuadrilateral.hpp +++ b/Common/include/geometry/primal_grid/CQuadrilateral.hpp @@ -3,14 +3,14 @@ * \brief Headers of the main subroutines for storing the primal grid structure. * The subroutines and functions are in the CQuadrilateral.cpp file. * \author F. Palacios - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/include/geometry/primal_grid/CTetrahedron.hpp b/Common/include/geometry/primal_grid/CTetrahedron.hpp index 447db67d182..3cca03b13f5 100644 --- a/Common/include/geometry/primal_grid/CTetrahedron.hpp +++ b/Common/include/geometry/primal_grid/CTetrahedron.hpp @@ -3,14 +3,14 @@ * \brief Headers of the main subroutines for storing the primal grid structure. * The subroutines and functions are in the CTetrahedron.cpp file. * \author F. Palacios - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/include/geometry/primal_grid/CTriangle.hpp b/Common/include/geometry/primal_grid/CTriangle.hpp index e4e785d0ee8..693c12cbd1c 100644 --- a/Common/include/geometry/primal_grid/CTriangle.hpp +++ b/Common/include/geometry/primal_grid/CTriangle.hpp @@ -3,14 +3,14 @@ * \brief Headers of the main subroutines for storing the primal grid structure. * The subroutines and functions are in the CTriangle.cpp file. * \author F. Palacios - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/include/geometry/primal_grid/CVertexMPI.hpp b/Common/include/geometry/primal_grid/CVertexMPI.hpp index a61b2dc1f93..1445cac9a81 100644 --- a/Common/include/geometry/primal_grid/CVertexMPI.hpp +++ b/Common/include/geometry/primal_grid/CVertexMPI.hpp @@ -3,14 +3,14 @@ * \brief Headers of the main subroutines for storing the primal grid structure. * The subroutines and functions are in the primal_grid_structure.cpp file. * \author F. Palacios - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/include/graph_coloring_structure.hpp b/Common/include/graph_coloring_structure.hpp index ae428f75554..56d93acf2f4 100644 --- a/Common/include/graph_coloring_structure.hpp +++ b/Common/include/graph_coloring_structure.hpp @@ -4,14 +4,14 @@ * coloring of a given graph. The functions are in the * graph_coloring_structure.cpp file. * \author E. van der Weide - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -41,7 +41,7 @@ using namespace std; * \ingroup Graph * \brief Class, which provides distributed graph coloring algorithms. * \author: E. van der Weide - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" */ class CGraphColoringStructure { public: diff --git a/Common/include/grid_movement/CBSplineBlending.hpp b/Common/include/grid_movement/CBSplineBlending.hpp index 09e2408b430..deaa96e28b8 100644 --- a/Common/include/grid_movement/CBSplineBlending.hpp +++ b/Common/include/grid_movement/CBSplineBlending.hpp @@ -3,14 +3,14 @@ * \brief Headers of the CBSplineBlending class. * Defines blending using uniform BSplines * \author T. Albring - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/include/grid_movement/CBezierBlending.hpp b/Common/include/grid_movement/CBezierBlending.hpp index 27a03064910..a702a240e9a 100644 --- a/Common/include/grid_movement/CBezierBlending.hpp +++ b/Common/include/grid_movement/CBezierBlending.hpp @@ -3,14 +3,14 @@ * \brief Headers of the CBezierBlending class. * Defines blending using Bernsteinpolynomials (Bezier Curves) * \author T. Albring - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/include/grid_movement/CFreeFormBlending.hpp b/Common/include/grid_movement/CFreeFormBlending.hpp index 7edd70c5724..48f82b1b913 100644 --- a/Common/include/grid_movement/CFreeFormBlending.hpp +++ b/Common/include/grid_movement/CFreeFormBlending.hpp @@ -3,14 +3,14 @@ * \brief Headers of the CFreeFormBlending class. * It is the parent class for the FFD blending function * \author T. Albring - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/include/grid_movement/CFreeFormDefBox.hpp b/Common/include/grid_movement/CFreeFormDefBox.hpp index 2513f067802..7794635fbef 100644 --- a/Common/include/grid_movement/CFreeFormDefBox.hpp +++ b/Common/include/grid_movement/CFreeFormDefBox.hpp @@ -2,14 +2,14 @@ * \file CFreeFormDefBox.hpp * \brief Headers of the CFreeFormDefBox class. * \author F. Palacios & A. Galdran. - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/include/grid_movement/CGridMovement.hpp b/Common/include/grid_movement/CGridMovement.hpp index 3429c10c6ce..16c977ccaf5 100644 --- a/Common/include/grid_movement/CGridMovement.hpp +++ b/Common/include/grid_movement/CGridMovement.hpp @@ -2,14 +2,14 @@ * \file CGridMovement.hpp * \brief Headers of the CGridMovement class * \author F. Palacios - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/include/grid_movement/CSurfaceMovement.hpp b/Common/include/grid_movement/CSurfaceMovement.hpp index 0ef697e049d..324bb327d63 100644 --- a/Common/include/grid_movement/CSurfaceMovement.hpp +++ b/Common/include/grid_movement/CSurfaceMovement.hpp @@ -2,14 +2,14 @@ * \file CSurfaceMovement.hpp * \brief Headers of the CSurfaceMovement class. * \author F. Palacios, T. Economon. - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -156,13 +156,6 @@ class CSurfaceMovement : public CGridMovement { void SetBoundary_Flutter3D(CGeometry* geometry, CConfig* config, CFreeFormDefBox** FFDBox, unsigned long iter, unsigned short iZone); - /*! - * \brief Set the collective pitch for a blade surface movement. - * \param[in] geometry - Geometrical definition of the problem. - * \param[in] config - Definition of the particular problem. - */ - void SetCollective_Pitch(CGeometry* geometry, CConfig* config); - /*! * \brief Set any surface deformationsbased on an input file. * \param[in] geometry - Geometrical definition of the problem. diff --git a/Common/include/grid_movement/CVolumetricMovement.hpp b/Common/include/grid_movement/CVolumetricMovement.hpp index 1520cb05829..95f324bb902 100644 --- a/Common/include/grid_movement/CVolumetricMovement.hpp +++ b/Common/include/grid_movement/CVolumetricMovement.hpp @@ -2,14 +2,14 @@ * \file CVolumetricMovement.hpp * \brief Headers of the CVolumetricMovement class. * \author F. Palacios, A. Bueno, T. Economon, S. Padron. - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/include/interface_interpolation/CInterpolator.hpp b/Common/include/interface_interpolation/CInterpolator.hpp index 2bbda6a2636..c3867a5566b 100644 --- a/Common/include/interface_interpolation/CInterpolator.hpp +++ b/Common/include/interface_interpolation/CInterpolator.hpp @@ -2,14 +2,14 @@ * \file CInterpolator.hpp * \brief Base class for multiphysics interpolation. * \author H. Kline - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/include/interface_interpolation/CInterpolatorFactory.hpp b/Common/include/interface_interpolation/CInterpolatorFactory.hpp index e4ef5850e5e..dcc1810eccc 100644 --- a/Common/include/interface_interpolation/CInterpolatorFactory.hpp +++ b/Common/include/interface_interpolation/CInterpolatorFactory.hpp @@ -1,14 +1,14 @@ /*! * \file CInterpolatorFactory.hpp * \brief Factory to generate interpolator objects. - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/include/interface_interpolation/CIsoparametric.hpp b/Common/include/interface_interpolation/CIsoparametric.hpp index 190cb0a1e4b..d3874cd8b12 100644 --- a/Common/include/interface_interpolation/CIsoparametric.hpp +++ b/Common/include/interface_interpolation/CIsoparametric.hpp @@ -2,14 +2,14 @@ * \file CIsoparametric.hpp * \brief Isoparametric interpolation using FE shape functions. * \author P. Gomes - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/include/interface_interpolation/CMirror.hpp b/Common/include/interface_interpolation/CMirror.hpp index 46f7487629f..b49748b55e7 100644 --- a/Common/include/interface_interpolation/CMirror.hpp +++ b/Common/include/interface_interpolation/CMirror.hpp @@ -2,14 +2,14 @@ * \file CMirror.hpp * \brief Mirror interpolation for the conservative (work-wise) approach in FSI problems. * \author P. Gomes - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/include/interface_interpolation/CNearestNeighbor.hpp b/Common/include/interface_interpolation/CNearestNeighbor.hpp index 6977cf760a2..1199ef16efc 100644 --- a/Common/include/interface_interpolation/CNearestNeighbor.hpp +++ b/Common/include/interface_interpolation/CNearestNeighbor.hpp @@ -2,14 +2,14 @@ * \file CNearestNeighbor.hpp * \brief Nearest Neighbor interpolation class. * \author H. Kline - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/include/interface_interpolation/CRadialBasisFunction.hpp b/Common/include/interface_interpolation/CRadialBasisFunction.hpp index 9b25a800388..d2d875c6bbb 100644 --- a/Common/include/interface_interpolation/CRadialBasisFunction.hpp +++ b/Common/include/interface_interpolation/CRadialBasisFunction.hpp @@ -2,14 +2,14 @@ * \file CRadialBasisFunction.hpp * \brief Radial basis function interpolation. * \author Joel Ho, P. Gomes - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/include/interface_interpolation/CSlidingMesh.hpp b/Common/include/interface_interpolation/CSlidingMesh.hpp index fa9c26ecc8a..561613e5c4c 100644 --- a/Common/include/interface_interpolation/CSlidingMesh.hpp +++ b/Common/include/interface_interpolation/CSlidingMesh.hpp @@ -2,14 +2,14 @@ * \file CSlidingMesh.hpp * \brief Sliding mesh interpolation. * \author H. Kline - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/include/linear_algebra/CMatrixVectorProduct.hpp b/Common/include/linear_algebra/CMatrixVectorProduct.hpp index bb3561a242b..21e88dfb920 100644 --- a/Common/include/linear_algebra/CMatrixVectorProduct.hpp +++ b/Common/include/linear_algebra/CMatrixVectorProduct.hpp @@ -3,14 +3,14 @@ * \brief Headers for the classes related to sparse matrix-vector product wrappers. * The actual operations are currently implemented mostly by CSysMatrix. * \author F. Palacios, J. Hicken, T. Economon - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/include/linear_algebra/CPastixWrapper.hpp b/Common/include/linear_algebra/CPastixWrapper.hpp index 2f785315f39..30d53025888 100644 --- a/Common/include/linear_algebra/CPastixWrapper.hpp +++ b/Common/include/linear_algebra/CPastixWrapper.hpp @@ -3,14 +3,14 @@ * \brief An interface to the INRIA solver PaStiX * (http://pastix.gforge.inria.fr/files/README-txt.html) * \author P. Gomes - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/include/linear_algebra/CPreconditioner.hpp b/Common/include/linear_algebra/CPreconditioner.hpp index 415bc90cfa0..56c5cd2a6da 100644 --- a/Common/include/linear_algebra/CPreconditioner.hpp +++ b/Common/include/linear_algebra/CPreconditioner.hpp @@ -3,14 +3,14 @@ * \brief Classes related to linear preconditioner wrappers. * The actual operations are currently implemented mostly by CSysMatrix. * \author F. Palacios, J. Hicken, T. Economon - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/include/linear_algebra/CSysMatrix.hpp b/Common/include/linear_algebra/CSysMatrix.hpp index 6c75b487596..573e6217d93 100644 --- a/Common/include/linear_algebra/CSysMatrix.hpp +++ b/Common/include/linear_algebra/CSysMatrix.hpp @@ -3,14 +3,14 @@ * \brief Declaration of the block-sparse matrix class. * The implemtation is in CSysMatrix.cpp. * \author F. Palacios, A. Bueno, T. Economon, P. Gomes - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/include/linear_algebra/CSysMatrix.inl b/Common/include/linear_algebra/CSysMatrix.inl index cbe4b18d6ff..e68d067f87c 100644 --- a/Common/include/linear_algebra/CSysMatrix.inl +++ b/Common/include/linear_algebra/CSysMatrix.inl @@ -5,14 +5,14 @@ * of the .cpp file and so they are hidden to avoid triggering * recompilation of other units when changes are made here. * \author F. Palacios, A. Bueno, T. Economon, P. Gomes - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/include/linear_algebra/CSysSolve.hpp b/Common/include/linear_algebra/CSysSolve.hpp index 6df8fafa0b4..5dabace2eb1 100644 --- a/Common/include/linear_algebra/CSysSolve.hpp +++ b/Common/include/linear_algebra/CSysSolve.hpp @@ -3,14 +3,14 @@ * \brief Headers for the classes related to linear solvers (CG, FGMRES, etc) * The subroutines and functions are in the CSysSolve.cpp file. * \author J. Hicken, F. Palacios, T. Economon, P. Gomes - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/include/linear_algebra/CSysSolve_b.hpp b/Common/include/linear_algebra/CSysSolve_b.hpp index 4abbf8c1ab2..d292e782543 100644 --- a/Common/include/linear_algebra/CSysSolve_b.hpp +++ b/Common/include/linear_algebra/CSysSolve_b.hpp @@ -2,14 +2,14 @@ * \file CSysSolve_b.hpp * \brief Routines for the linear solver used in the reverse sweep of AD. * \author T. Albring - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/include/linear_algebra/CSysVector.hpp b/Common/include/linear_algebra/CSysVector.hpp index 412f11c4427..877f812f9b7 100644 --- a/Common/include/linear_algebra/CSysVector.hpp +++ b/Common/include/linear_algebra/CSysVector.hpp @@ -3,14 +3,14 @@ * \brief Declararion and inlines of the vector class used in the * solution of large, distributed, sparse linear systems. * \author P. Gomes, F. Palacios, J. Hicken, T. Economon - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/include/linear_algebra/blas_structure.hpp b/Common/include/linear_algebra/blas_structure.hpp index 6e53f304767..f236a44cff6 100644 --- a/Common/include/linear_algebra/blas_structure.hpp +++ b/Common/include/linear_algebra/blas_structure.hpp @@ -4,14 +4,14 @@ operations, which are typically found in the BLAS libraries. The functions are in the blass_structure.cpp file. * \author E. van der Weide - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -41,7 +41,7 @@ class CConfig; * \ingroup BLAS * \brief Class, which serves as an interface to the BLAS functionalities needed. * \author: E. van der Weide - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" */ class CBlasStructure { public: diff --git a/Common/include/linear_algebra/vector_expressions.hpp b/Common/include/linear_algebra/vector_expressions.hpp index 5f0aa103547..2b458ac8303 100644 --- a/Common/include/linear_algebra/vector_expressions.hpp +++ b/Common/include/linear_algebra/vector_expressions.hpp @@ -2,14 +2,14 @@ * \file vector_expressions.hpp * \brief Expression templates for vector types with coefficient-wise operations. * \author P. Gomes - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/include/option_structure.hpp b/Common/include/option_structure.hpp index c8181a3a13f..7199a310193 100644 --- a/Common/include/option_structure.hpp +++ b/Common/include/option_structure.hpp @@ -2,14 +2,14 @@ * \file option_structure.hpp * \brief Defines classes for referencing options for easy input in CConfig * \author J. Hicken, B. Tracey - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -650,7 +650,7 @@ static const MapType InitOption_Map = { }; /*! - * \brief Types of initialization option + * \brief Types of freestream specification */ enum class FREESTREAM_OPTION { TEMPERATURE_FS, /*!< \brief Temperature initialization. */ @@ -1780,19 +1780,33 @@ static const MapType SpanWise_Map = { /*! * \brief Types of mixing process for averaging quantities at the boundaries. */ -enum TURBOMACHINERY_TYPE { - AXIAL = 1, /*!< \brief axial turbomachinery. */ - CENTRIFUGAL = 2, /*!< \brief centrifugal turbomachinery. */ - CENTRIPETAL = 3, /*!< \brief centripetal turbomachinery. */ - CENTRIPETAL_AXIAL = 4, /*!< \brief mixed flow turbine. */ - AXIAL_CENTRIFUGAL = 5 /*!< \brief mixed flow turbine. */ +enum class TURBOMACHINERY_TYPE { + AXIAL, /*!< \brief axial turbomachinery. */ + CENTRIFUGAL, /*!< \brief centrifugal turbomachinery. */ + CENTRIPETAL, /*!< \brief centripetal turbomachinery. */ + CENTRIPETAL_AXIAL, /*!< \brief mixed flow turbine. */ + AXIAL_CENTRIFUGAL /*!< \brief mixed flow turbine. */ }; static const MapType TurboMachinery_Map = { - MakePair("AXIAL", AXIAL) - MakePair("CENTRIFUGAL", CENTRIFUGAL) - MakePair("CENTRIPETAL", CENTRIPETAL) - MakePair("CENTRIPETAL_AXIAL", CENTRIPETAL_AXIAL) - MakePair("AXIAL_CENTRIFUGAL", AXIAL_CENTRIFUGAL) + MakePair("AXIAL", TURBOMACHINERY_TYPE::AXIAL) + MakePair("CENTRIFUGAL", TURBOMACHINERY_TYPE::CENTRIFUGAL) + MakePair("CENTRIPETAL", TURBOMACHINERY_TYPE::CENTRIPETAL) + MakePair("CENTRIPETAL_AXIAL", TURBOMACHINERY_TYPE::CENTRIPETAL_AXIAL) + MakePair("AXIAL_CENTRIFUGAL", TURBOMACHINERY_TYPE::AXIAL_CENTRIFUGAL) +}; + +/*! + * \brief Types of Turbomachinery performance Type. + */ +enum class TURBO_PERF_KIND{ + TURBINE, /*!< \brief Turbine Performance. */ + COMPRESSOR, /*!< \brief Compressor Performance. */ + PROPELLOR /*!< \brief Propellor Performance. */ +}; +static const MapType TurboPerfKind_Map = { + MakePair("TURBINE", TURBO_PERF_KIND::TURBINE) + MakePair("COMPRESSOR", TURBO_PERF_KIND::COMPRESSOR) + MakePair("PROPELLOR", TURBO_PERF_KIND::PROPELLOR) }; /*! @@ -1857,7 +1871,8 @@ enum ACTDISK_TYPE { DRAG_MINUS_THRUST = 4, /*!< \brief User specifies the D-T. */ MASSFLOW = 5, /*!< \brief User specifies the massflow. */ POWER = 6, /*!< \brief User specifies the power. */ - VARIABLE_LOAD = 7 /*!< \brief User specifies the load distribution. */ + VARIABLE_LOAD = 7, /*!< \brief User specifies the load distribution. */ + BLADE_ELEMENT = 8 /*!< \brief User specifies to use Blade element method. */ }; static const MapType ActDisk_Map = { MakePair("VARIABLES_JUMP", VARIABLES_JUMP) @@ -1867,6 +1882,7 @@ static const MapType ActDisk_Map = { MakePair("MASSFLOW", MASSFLOW) MakePair("POWER", POWER) MakePair("VARIABLE_LOAD", VARIABLE_LOAD) + MakePair("BLADE_ELEMENT", BLADE_ELEMENT) }; /*! diff --git a/Common/include/option_structure.inl b/Common/include/option_structure.inl index ce94055fca5..955d1531482 100644 --- a/Common/include/option_structure.inl +++ b/Common/include/option_structure.inl @@ -3,14 +3,14 @@ * \brief Template derived classes from COption, defined here as we * only include them where needed to reduce compilation time. * \author J. Hicken, B. Tracey - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -654,7 +654,7 @@ class COptionDVParam : public COptionBase { default: { string newstring; newstring.append(this->name); - newstring.append(": undefined design variable type found in configuration file."); + newstring.append(": undefined design variable type found in configuration file. "); return newstring; } } @@ -1696,7 +1696,22 @@ class COptionActDisk : public COptionBase { this->name = name; } - ~COptionActDisk() override{}; + ~COptionActDisk() override { + for (int i = 0; i < this->inlet_size; i++) { + if (this->press_jump) delete[] this->press_jump[i]; + if (this->temp_jump) delete[] this->temp_jump[i]; + if (this->omega) delete[] this->omega[i]; + } + delete[] press_jump; + delete[] temp_jump; + delete[] omega; + + delete[] marker_inlet; + delete[] marker_outlet; + + SetDefault(); + } + string SetValue(const vector& option_value) override { COptionBase::SetValue(option_value); const int mod_num = 8; diff --git a/Common/include/parallelization/mpi_structure.cpp b/Common/include/parallelization/mpi_structure.cpp index bdb92c65db2..25d418eaf09 100644 --- a/Common/include/parallelization/mpi_structure.cpp +++ b/Common/include/parallelization/mpi_structure.cpp @@ -2,14 +2,14 @@ * \file mpi_structure.cpp * \brief Main subroutines for the mpi structures. * \author T. Albring - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/include/parallelization/mpi_structure.hpp b/Common/include/parallelization/mpi_structure.hpp index 6bce34788b4..b212d770e8f 100644 --- a/Common/include/parallelization/mpi_structure.hpp +++ b/Common/include/parallelization/mpi_structure.hpp @@ -3,14 +3,14 @@ * \brief Headers of the mpi interface for generalized datatypes. * The subroutines and functions are in the mpi_structure.cpp file. * \author T. Albring - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/include/parallelization/omp_structure.cpp b/Common/include/parallelization/omp_structure.cpp index 6e5161ea426..4e5d662f435 100644 --- a/Common/include/parallelization/omp_structure.cpp +++ b/Common/include/parallelization/omp_structure.cpp @@ -3,14 +3,14 @@ * \brief Source file counterpart for omp_structure.hpp. * \note Contains OpDiLib initialization, finalization and includes the OpDiLib source file. * \author J. Blühdorn - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/include/parallelization/omp_structure.hpp b/Common/include/parallelization/omp_structure.hpp index 2ba94e99e2a..79bd6c9fd26 100644 --- a/Common/include/parallelization/omp_structure.hpp +++ b/Common/include/parallelization/omp_structure.hpp @@ -13,14 +13,14 @@ * defined here with suitable fallback versions to limit the spread of * compiler tricks in other areas of the code. * \author P. Gomes, J. Blühdorn - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -189,14 +189,14 @@ void omp_finalize(); */ #define BEGIN_SU2_OMP_SAFE_GLOBAL_ACCESS \ - SU2_OMP_BARRIER \ + SU2_OMP_BARRIER; \ if (omp_in_parallel()) AD::StartNoSharedReading(); \ SU2_OMP_MASTER #define END_SU2_OMP_SAFE_GLOBAL_ACCESS \ END_SU2_OMP_MASTER \ if (omp_in_parallel()) AD::EndNoSharedReading(); \ - SU2_OMP_BARRIER + SU2_OMP_BARRIER; #define SU2_OMP_SAFE_GLOBAL_ACCESS(...) BEGIN_SU2_OMP_SAFE_GLOBAL_ACCESS{__VA_ARGS__} END_SU2_OMP_SAFE_GLOBAL_ACCESS diff --git a/Common/include/parallelization/special_vectorization.hpp b/Common/include/parallelization/special_vectorization.hpp index 722b6cd1346..48674c60335 100644 --- a/Common/include/parallelization/special_vectorization.hpp +++ b/Common/include/parallelization/special_vectorization.hpp @@ -2,14 +2,14 @@ * \file special_vectorization.hpp * \brief Code generator header to create specializations of simd::Array. * \author P. Gomes - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/include/parallelization/vectorization.hpp b/Common/include/parallelization/vectorization.hpp index dd904a5c1e3..9f6db32a912 100644 --- a/Common/include/parallelization/vectorization.hpp +++ b/Common/include/parallelization/vectorization.hpp @@ -2,14 +2,14 @@ * \file vectorization.hpp * \brief Implementation of a portable SIMD type. * \author P. Gomes - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/include/toolboxes/C1DInterpolation.hpp b/Common/include/toolboxes/C1DInterpolation.hpp index 8ca4d5c1b18..3b6a083243f 100644 --- a/Common/include/toolboxes/C1DInterpolation.hpp +++ b/Common/include/toolboxes/C1DInterpolation.hpp @@ -2,14 +2,14 @@ * \file C1DInterpolation.hpp * \brief Classes for 1D interpolation. * \author Aman Baig, P. Gomes - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/include/toolboxes/CLinearPartitioner.hpp b/Common/include/toolboxes/CLinearPartitioner.hpp index 0ebfb516aae..bf568f2ba03 100644 --- a/Common/include/toolboxes/CLinearPartitioner.hpp +++ b/Common/include/toolboxes/CLinearPartitioner.hpp @@ -3,14 +3,14 @@ * \brief Header file for the class CLinearPartitioner. * The implementations are in the CLinearPartitioner.cpp file. * \author T. Economon - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/include/toolboxes/CQuasiNewtonInvLeastSquares.hpp b/Common/include/toolboxes/CQuasiNewtonInvLeastSquares.hpp index e881f4c95bb..950335e93d7 100644 --- a/Common/include/toolboxes/CQuasiNewtonInvLeastSquares.hpp +++ b/Common/include/toolboxes/CQuasiNewtonInvLeastSquares.hpp @@ -7,14 +7,14 @@ * \note Based on the IQN-ILS method, see DOI 10.1007/s11831-013-9085-5 and * references therein. * \author P. Gomes - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/include/toolboxes/CSquareMatrixCM.hpp b/Common/include/toolboxes/CSquareMatrixCM.hpp index 2ba3f60de7c..82ab533f882 100644 --- a/Common/include/toolboxes/CSquareMatrixCM.hpp +++ b/Common/include/toolboxes/CSquareMatrixCM.hpp @@ -3,14 +3,14 @@ * \brief Dense general square matrix, used for example in DG standard elements * in Column Major order storage. * \author Edwin van der Weide, Pedro Gomes. - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/include/toolboxes/CSymmetricMatrix.hpp b/Common/include/toolboxes/CSymmetricMatrix.hpp index 8b229a4b526..d4ddbd8d246 100644 --- a/Common/include/toolboxes/CSymmetricMatrix.hpp +++ b/Common/include/toolboxes/CSymmetricMatrix.hpp @@ -2,14 +2,14 @@ * \file CSymmetricMatrix.hpp * \brief Dense symmetric matrix, used for example in RBF interpolation. * \author Joel Ho, P. Gomes - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/include/toolboxes/MMS/CIncTGVSolution.hpp b/Common/include/toolboxes/MMS/CIncTGVSolution.hpp index 677f78448e9..de8a24771a2 100644 --- a/Common/include/toolboxes/MMS/CIncTGVSolution.hpp +++ b/Common/include/toolboxes/MMS/CIncTGVSolution.hpp @@ -3,14 +3,14 @@ * \brief Header file for the class CIncTGVSolution. * The implementations are in the CIncTGVSolution.cpp file. * \author T. Economon, E. van der Weide - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/include/toolboxes/MMS/CInviscidVortexSolution.hpp b/Common/include/toolboxes/MMS/CInviscidVortexSolution.hpp index e9aaa812e28..f0ed7bbd121 100644 --- a/Common/include/toolboxes/MMS/CInviscidVortexSolution.hpp +++ b/Common/include/toolboxes/MMS/CInviscidVortexSolution.hpp @@ -3,14 +3,14 @@ * \brief Header file for the class CInviscidVortexSolution. * The implementations are in the CInviscidVortexSolution.cpp file. * \author T. Economon, E. van der Weide - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/include/toolboxes/MMS/CMMSIncEulerSolution.hpp b/Common/include/toolboxes/MMS/CMMSIncEulerSolution.hpp index 69f8906b808..f15dcda7478 100644 --- a/Common/include/toolboxes/MMS/CMMSIncEulerSolution.hpp +++ b/Common/include/toolboxes/MMS/CMMSIncEulerSolution.hpp @@ -3,14 +3,14 @@ * \brief Header file for the class CMMSIncEulerSolution. * The implementations are in the CMMSIncEulerSolution.cpp file. * \author T. Economon, E. van der Weide - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/include/toolboxes/MMS/CMMSIncNSSolution.hpp b/Common/include/toolboxes/MMS/CMMSIncNSSolution.hpp index 3626b9ac6f4..176aefab105 100644 --- a/Common/include/toolboxes/MMS/CMMSIncNSSolution.hpp +++ b/Common/include/toolboxes/MMS/CMMSIncNSSolution.hpp @@ -3,14 +3,14 @@ * \brief Header file for the class CMMSIncNSSolution. * The implementations are in the CMMSIncNSSolution.cpp file. * \author T. Economon, E. van der Weide - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/include/toolboxes/MMS/CMMSNSTwoHalfCirclesSolution.hpp b/Common/include/toolboxes/MMS/CMMSNSTwoHalfCirclesSolution.hpp index f8b5599a193..f119dada9ca 100644 --- a/Common/include/toolboxes/MMS/CMMSNSTwoHalfCirclesSolution.hpp +++ b/Common/include/toolboxes/MMS/CMMSNSTwoHalfCirclesSolution.hpp @@ -3,14 +3,14 @@ * \brief Header file for the class CMMSNSTwoHalfCirclesSolution. * The implementations are in the CMMSNSTwoHalfCirclesSolution.cpp file. * \author T. Economon, E. van der Weide - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/include/toolboxes/MMS/CMMSNSTwoHalfSpheresSolution.hpp b/Common/include/toolboxes/MMS/CMMSNSTwoHalfSpheresSolution.hpp index 92d03efbe5b..e1887e38de4 100644 --- a/Common/include/toolboxes/MMS/CMMSNSTwoHalfSpheresSolution.hpp +++ b/Common/include/toolboxes/MMS/CMMSNSTwoHalfSpheresSolution.hpp @@ -3,14 +3,14 @@ * \brief Header file for the class CMMSNSTwoHalfSpheresSolution. * The implementations are in the CMMSNSTwoHalfSpheresSolution.cpp file. * \author T. Economon, E. van der Weide - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/include/toolboxes/MMS/CMMSNSUnitQuadSolution.hpp b/Common/include/toolboxes/MMS/CMMSNSUnitQuadSolution.hpp index fbdc6a8f82e..8f850bbb36f 100644 --- a/Common/include/toolboxes/MMS/CMMSNSUnitQuadSolution.hpp +++ b/Common/include/toolboxes/MMS/CMMSNSUnitQuadSolution.hpp @@ -3,14 +3,14 @@ * \brief Header file for the class CMMSNSUnitQuadSolution. * The implementations are in the CMMSNSUnitQuadSolution.cpp file. * \author T. Economon, E. van der Weide - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/include/toolboxes/MMS/CMMSNSUnitQuadSolutionWallBC.hpp b/Common/include/toolboxes/MMS/CMMSNSUnitQuadSolutionWallBC.hpp index c3b5a3e508c..7ffbbb528fc 100644 --- a/Common/include/toolboxes/MMS/CMMSNSUnitQuadSolutionWallBC.hpp +++ b/Common/include/toolboxes/MMS/CMMSNSUnitQuadSolutionWallBC.hpp @@ -3,14 +3,14 @@ * \brief Header file for the class CMMSNSUnitQuadSolutionWallBC. * The implementations are in the CMMSNSUnitQuadSolutionWallBC.cpp file. * \author T. Economon, E. van der Weide - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/include/toolboxes/MMS/CNSUnitQuadSolution.hpp b/Common/include/toolboxes/MMS/CNSUnitQuadSolution.hpp index 32f9f2d4263..c01234c11b9 100644 --- a/Common/include/toolboxes/MMS/CNSUnitQuadSolution.hpp +++ b/Common/include/toolboxes/MMS/CNSUnitQuadSolution.hpp @@ -3,14 +3,14 @@ * \brief Header file for the class CNSUnitQuadSolution.hpp. * The implementations are in the CNSUnitQuadSolution.cpp file. * \author T. Economon, E. van der Weide - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/include/toolboxes/MMS/CRinglebSolution.hpp b/Common/include/toolboxes/MMS/CRinglebSolution.hpp index 2c1ede87c0a..ef31b41ec5d 100644 --- a/Common/include/toolboxes/MMS/CRinglebSolution.hpp +++ b/Common/include/toolboxes/MMS/CRinglebSolution.hpp @@ -3,14 +3,14 @@ * \brief Header file for the class CRinglebSolution.hpp. * The implementations are in the CRinglebSolution.cpp file. * \author T. Economon, E. van der Weide - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/include/toolboxes/MMS/CTGVSolution.hpp b/Common/include/toolboxes/MMS/CTGVSolution.hpp index 914b34a5e1c..9f6703b4365 100644 --- a/Common/include/toolboxes/MMS/CTGVSolution.hpp +++ b/Common/include/toolboxes/MMS/CTGVSolution.hpp @@ -3,14 +3,14 @@ * \brief Header file for the class CTGVSolution. * The implementations are in the CTGVSolution.cpp file. * \author T. Economon, E. van der Weide - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/include/toolboxes/MMS/CUserDefinedSolution.hpp b/Common/include/toolboxes/MMS/CUserDefinedSolution.hpp index 7a6d7c74ecc..39fcac11b48 100644 --- a/Common/include/toolboxes/MMS/CUserDefinedSolution.hpp +++ b/Common/include/toolboxes/MMS/CUserDefinedSolution.hpp @@ -3,14 +3,14 @@ * \brief Header file for the class CUserDefinedSolution. * The implementations are in the CUserDefinedSolution.cpp file. * \author T. Economon, E. van der Weide - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/include/toolboxes/MMS/CVerificationSolution.hpp b/Common/include/toolboxes/MMS/CVerificationSolution.hpp index 6fe6f849274..fa7dc6abb29 100644 --- a/Common/include/toolboxes/MMS/CVerificationSolution.hpp +++ b/Common/include/toolboxes/MMS/CVerificationSolution.hpp @@ -3,14 +3,14 @@ * \brief Header file for the base class CVerificationSolution. * The implementations are in the CVerificationSolution.cpp file. * \author T. Economon, E. van der Weide - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/include/toolboxes/allocation_toolbox.hpp b/Common/include/toolboxes/allocation_toolbox.hpp index 5f88eb3098b..15ce1b43f9d 100644 --- a/Common/include/toolboxes/allocation_toolbox.hpp +++ b/Common/include/toolboxes/allocation_toolbox.hpp @@ -5,14 +5,14 @@ * \note These are "kernel" functions, only to be used with good reason, * always try to use higher level container classes. * \author P. Gomes, D. Kavolis - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/include/toolboxes/geometry_toolbox.hpp b/Common/include/toolboxes/geometry_toolbox.hpp index 05cfdbc62fb..ce0baf55bf6 100644 --- a/Common/include/toolboxes/geometry_toolbox.hpp +++ b/Common/include/toolboxes/geometry_toolbox.hpp @@ -1,14 +1,14 @@ /*! * \file geometry_toolbox.hpp * \brief Collection of common lightweight geometry-oriented methods. - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/include/toolboxes/graph_toolbox.hpp b/Common/include/toolboxes/graph_toolbox.hpp index c5929e8f8da..761a59add3d 100644 --- a/Common/include/toolboxes/graph_toolbox.hpp +++ b/Common/include/toolboxes/graph_toolbox.hpp @@ -2,14 +2,14 @@ * \file graph_toolbox.hpp * \brief Functions and classes to build/represent sparse graphs or sparse patterns. * \author P. Gomes - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -484,7 +484,7 @@ T createNaturalColoring(Index_t numInnerIndexes) { * \param[out] indexColor - Optional, vector with colors given to the outer indices. * \return Coloring in the same type of the input pattern. */ -template +template T colorSparsePattern(const T& pattern, size_t groupSize = 1, bool balanceColors = false, std::vector* indexColor = nullptr) { static_assert(std::is_integral::value, ""); diff --git a/Common/include/toolboxes/ndflattener.hpp b/Common/include/toolboxes/ndflattener.hpp index 16d5b1f02e9..578de73f5fa 100644 --- a/Common/include/toolboxes/ndflattener.hpp +++ b/Common/include/toolboxes/ndflattener.hpp @@ -2,14 +2,14 @@ * \file ndflattener.hpp * \brief Flatten pointer-to-pointer-... arrays for MPI communication * \author M. Aehle - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/include/toolboxes/printing_toolbox.hpp b/Common/include/toolboxes/printing_toolbox.hpp index 5ede8972166..5f515049dad 100644 --- a/Common/include/toolboxes/printing_toolbox.hpp +++ b/Common/include/toolboxes/printing_toolbox.hpp @@ -2,14 +2,14 @@ * \file printing_toolbox.hpp * \brief Header file for the printing toolbox. * \author T. Albring - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/include/wall_model.hpp b/Common/include/wall_model.hpp index 4d7a73224c3..1c7ee45c2b0 100644 --- a/Common/include/wall_model.hpp +++ b/Common/include/wall_model.hpp @@ -2,14 +2,14 @@ * \file wall_model.hpp * \brief Headers for the wall model functions for large eddy simulations. * \author E. van der Weide, T. Economon, P. Urbanczyk - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -42,7 +42,7 @@ class CFluidModel; * \class CWallModel * \brief Base class for defining the LES wall model. * \author: E. van der Weide, T. Economon, P. Urbanczyk - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" */ class CWallModel { public: diff --git a/Common/src/CConfig.cpp b/Common/src/CConfig.cpp index f660ec5633d..18da76556c4 100644 --- a/Common/src/CConfig.cpp +++ b/Common/src/CConfig.cpp @@ -2,14 +2,14 @@ * \file CConfig.cpp * \brief Main file for managing the config file * \author F. Palacios, T. Economon, B. Tracey, H. Kline - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -557,6 +557,19 @@ void CConfig::addActDiskOption(const string & name, unsigned short & nMarker_Act option_map.insert(pair(name, val)); } +void CConfig::addActDiskBemOption(const string& name, + unsigned short& nMarker_ActDiskBemInlet, unsigned short& nMarker_ActDiskBemOutlet, + string*& Marker_ActDiskBemInlet, string*& Marker_ActDiskBemOutlet, + su2double**& ActDiskBem_X, su2double**& ActDiskBem_Y, su2double**& ActDiskBem_Z) { + assert(option_map.find(name) == option_map.end()); + all_options.insert(pair(name, true)); + COptionBase* val = new COptionActDisk(name, + nMarker_ActDiskBemInlet, nMarker_ActDiskBemOutlet, + Marker_ActDiskBemInlet, Marker_ActDiskBemOutlet, + ActDiskBem_X, ActDiskBem_Y, ActDiskBem_Z); + option_map.insert(pair(name, val)); +} + void CConfig::addWallFunctionOption(const string &name, unsigned short &list_size, string* &string_field, WALL_FUNCTIONS* &val_Kind_WF, unsigned short** &val_IntInfo_WF, su2double** &val_DoubleInfo_WF) { @@ -856,8 +869,8 @@ void CConfig::SetPointersNull() { Marker_Isothermal = nullptr; Marker_HeatFlux = nullptr; Marker_EngineInflow = nullptr; Marker_Load = nullptr; Marker_Disp_Dir = nullptr; Marker_RoughWall = nullptr; Marker_EngineExhaust = nullptr; Marker_Displacement = nullptr; Marker_Load = nullptr; - Marker_Load_Dir = nullptr; Marker_Load_Sine = nullptr; Marker_Clamped = nullptr; - Marker_FlowLoad = nullptr; Marker_Internal = nullptr; + Marker_Load_Dir = nullptr; Marker_Clamped = nullptr; + Marker_Internal = nullptr; Marker_All_TagBound = nullptr; Marker_CfgFile_TagBound = nullptr; Marker_All_KindBC = nullptr; Marker_CfgFile_KindBC = nullptr; Marker_All_SendRecv = nullptr; Marker_All_PerBound = nullptr; Marker_ZoneInterface = nullptr; Marker_All_ZoneInterface = nullptr; Marker_Riemann = nullptr; @@ -868,7 +881,7 @@ void CConfig::SetPointersNull() { Isothermal_Temperature = nullptr; HeatTransfer_Coeff = nullptr; HeatTransfer_WallTemp = nullptr; Heat_Flux = nullptr; Displ_Value = nullptr; Load_Value = nullptr; - FlowLoad_Value = nullptr; Damper_Constant = nullptr; Wall_Emissivity = nullptr; + Damper_Constant = nullptr; Wall_Emissivity = nullptr; Roughness_Height = nullptr; /*--- Inlet Outlet Boundary Condition settings ---*/ @@ -905,7 +918,6 @@ void CConfig::SetPointersNull() { Load_Dir = nullptr; Load_Dir_Value = nullptr; Load_Dir_Multiplier = nullptr; Disp_Dir = nullptr; Disp_Dir_Value = nullptr; Disp_Dir_Multiplier = nullptr; - Load_Sine_Dir = nullptr; Load_Sine_Amplitude = nullptr; Load_Sine_Frequency = nullptr; Electric_Field_Mod = nullptr; Electric_Field_Dir = nullptr; RefNode_Displacement = nullptr; Electric_Constant = nullptr; @@ -921,6 +933,9 @@ void CConfig::SetPointersNull() { ActDiskOutlet_Power = nullptr; ActDiskOutlet_Temperature = nullptr; ActDiskOutlet_TotalTemperature = nullptr; ActDiskOutlet_MassFlow = nullptr; + ActDiskOutlet_Thrust_BEM = nullptr; + ActDiskOutlet_Torque_BEM = nullptr; + ActDisk_DeltaPress = nullptr; ActDisk_DeltaTemp = nullptr; ActDisk_TotalPressRatio = nullptr; ActDisk_TotalTempRatio = nullptr; ActDisk_StaticPressRatio = nullptr; ActDisk_StaticTempRatio = nullptr; ActDisk_NetThrust = nullptr; ActDisk_GrossThrust = nullptr; @@ -1416,15 +1431,13 @@ void CConfig::SetConfig_Options() { addDoubleOption("TARGET_CL", Target_CL, 0.0); /* DESCRIPTION: Damping factor for fixed CL mode. */ addDoubleOption("DCL_DALPHA", dCL_dAlpha, 0.2); - /* DESCRIPTION: Damping factor for fixed CL mode. */ - addDoubleOption("DCM_DIH", dCM_diH, 0.05); /* DESCRIPTION: Maximum number of iterations between AoA updates for fixed CL problem. */ addUnsignedLongOption("UPDATE_AOA_ITER_LIMIT", Update_AoA_Iter_Limit, 200); /* DESCRIPTION: Number of times Alpha is updated in a fix CL problem. */ addUnsignedLongOption("UPDATE_IH", Update_iH, 5); /* DESCRIPTION: Number of iterations to evaluate dCL_dAlpha . */ addUnsignedLongOption("ITER_DCL_DALPHA", Iter_dCL_dAlpha, 500); - /* DESCRIPTION: Damping factor for fixed CL mode. */ + /* DESCRIPTION: Value of dNetThrust/dBCThrust */ addDoubleOption("DNETTHRUST_DBCTHRUST", dNetThrust_dBCThrust, 1.0); /* DESCRIPTION: Number of times Alpha is updated in a fix CL problem. */ addUnsignedLongOption("UPDATE_BCTHRUST", Update_BCThrust, 5); @@ -1452,16 +1465,13 @@ void CConfig::SetConfig_Options() { /*!\brief REF_VELOCITY\n DESCRIPTION: Reference velocity (incompressible only) \ingroup Config*/ addDoubleOption("REF_VELOCITY", Velocity_Ref, -1.0); /* !\brief REF_VISCOSITY \n DESCRIPTION: Reference viscosity (incompressible only) \ingroup Config*/ - addDoubleOption("REF_VISCOSITY", Viscosity_Ref, -1.0); + addDoubleOption("REF_VISCOSITY", Viscosity_Ref, 1.0); /* DESCRIPTION: Type of mesh motion */ addEnumOption("REF_DIMENSIONALIZATION", Ref_NonDim, NonDim_Map, DIMENSIONAL); /*!\par CONFIG_CATEGORY: Boundary Markers \ingroup Config*/ /*--- Options related to various boundary markers ---*/ - /*!\brief HTP_AXIS\n DESCRIPTION: Location of the HTP axis*/ - htp_axis[0] = 0.0; htp_axis[1] = 0.0; - addDoubleArrayOption("HTP_AXIS", 2, htp_axis); /*!\brief MARKER_PLOTTING\n DESCRIPTION: Marker(s) of the surface in the surface flow solution file \ingroup Config*/ addStringListOption("MARKER_PLOTTING", nMarker_Plotting, Marker_Plotting); /*!\brief MARKER_MONITORING\n DESCRIPTION: Marker(s) of the surface where evaluate the non-dimensional coefficients \ingroup Config*/ @@ -1523,6 +1533,16 @@ void CConfig::SetConfig_Options() { nMarker_ActDiskInlet, nMarker_ActDiskOutlet, Marker_ActDiskInlet, Marker_ActDiskOutlet, ActDisk_PressJump, ActDisk_TempJump, ActDisk_Omega); + /*!\brief MARKER_ACTDISK_BEM_CG\n DESCRIPTION: Actuator disk CG for blade element momentum (BEM) method. \ingroup Config*/ + addActDiskBemOption("MARKER_ACTDISK_BEM_CG", + nMarker_ActDiskBemInlet_CG, nMarker_ActDiskBemOutlet_CG, Marker_ActDiskBemInlet_CG, Marker_ActDiskBemOutlet_CG, + ActDiskBem_CG[0], ActDiskBem_CG[1], ActDiskBem_CG[2]); + + /*!\brief MARKER_ACTDISK_BEM_AXIS\n DESCRIPTION: Actuator disk axis for blade element momentum (BEM) method. \ingroup Config*/ + addActDiskBemOption("MARKER_ACTDISK_BEM_AXIS", + nMarker_ActDiskBemInlet_Axis, nMarker_ActDiskBemOutlet_Axis, Marker_ActDiskBemInlet_Axis, Marker_ActDiskBemOutlet_Axis, + ActDiskBem_Axis[0], ActDiskBem_Axis[1], ActDiskBem_Axis[2]); + /*!\brief ACTDISK_FILENAME \n DESCRIPTION: Input file for a specified actuator disk (w/ extension) \n DEFAULT: actdiskinput.dat \ingroup Config*/ addStringOption("ACTDISK_FILENAME", ActDisk_FileName, string("actdiskinput.dat")); @@ -1604,10 +1624,13 @@ void CConfig::SetConfig_Options() { /*!\brief SPANWISE_KIND \n DESCRIPTION: type of algorithm to identify the span-wise sections at the turbo boundaries. \n OPTIONS: see \link SpanWise_Map \endlink \n Default: AUTOMATIC */ addEnumOption("SPANWISE_KIND", Kind_SpanWise, SpanWise_Map, AUTOMATIC); - /*!\brief TURBOMACHINERY_KIND \n DESCRIPTION: types of turbomachynery architecture. + /*!\brief TURBOMACHINERY_KIND \n DESCRIPTION: types of turbomachinery architecture. \n OPTIONS: see \link TurboMachinery_Map \endlink \n Default: AXIAL */ addEnumListOption("TURBOMACHINERY_KIND",nTurboMachineryKind, Kind_TurboMachinery, TurboMachinery_Map); - /*!\brief MARKER_SHROUD \n DESCRIPTION: markers in which velocity is forced to 0.0 . + /*!\brief TURBOMACHINERY_KIND \n DESCRIPTION: types of turbomachynery Performance Calculations. + \n OPTIONS: see \link TurboPerfKind_Map \endlink \n Default: TURBINE */ + addEnumListOption("TURBO_PERF_KIND", nTurboMachineryKind, Kind_TurboPerf, TurboPerfKind_Map); + /*!\brief MARKER_SHROUD \n DESCRIPTION: markers in which velocity is forced to 0.0. * \n Format: (shroud1, shroud2, ...)*/ addStringListOption("MARKER_SHROUD", nMarker_Shroud, Marker_Shroud); /*!\brief MARKER_SUPERSONIC_INLET \n DESCRIPTION: Supersonic inlet boundary marker(s) @@ -1631,7 +1654,7 @@ void CConfig::SetConfig_Options() { /*!\brief MARKER_HEATTRANSFER DESCRIPTION: Heat flux with specified heat transfer coefficient boundary marker(s)\n * Format: ( Heat transfer marker, heat transfer coefficient, wall temperature (static), ... ) \ingroup Config */ addExhaustOption("MARKER_HEATTRANSFER", nMarker_HeatTransfer, Marker_HeatTransfer, HeatTransfer_Coeff, HeatTransfer_WallTemp); - /*!\brief Smluchowski/Maxwell wall boundary marker(s) \n DESCRIPTION: Slip velocity and temperature jump wall boundary marker(s) + /*!\brief Smoluchowski/Maxwell wall boundary marker(s) \n DESCRIPTION: Slip velocity and temperature jump wall boundary marker(s) Format: ( Heat flux marker, wall temperature (static), momentum accomodation coefficient, thermal accomodation coefficient ... ) \ingroup Config*/ addStringDoubleListOption("MARKER_SMOLUCHOWSKI_MAXWELL", nMarker_Smoluchowski_Maxwell, Marker_Smoluchowski_Maxwell, Isothermal_Temperature); //Missing TMAC and TAC /*!\brief WALL_ROUGHNESS \n DESCRIPTION: Specified roughness heights at wall boundary marker(s) @@ -1648,9 +1671,19 @@ void CConfig::SetConfig_Options() { addBoolOption("SUBSONIC_ENGINE", SubsonicEngine, false); /* DESCRIPTION: Actuator disk double surface */ addBoolOption("ACTDISK_DOUBLE_SURFACE", ActDisk_DoubleSurface, false); + + /* DESCRIPTION: Actuator disk BEM switch for history file appending.*/ + addBoolOption("HISTORY_FILE_APPEND", History_File_Append_Flag, false); + /* DESCRIPTION: Propeller blade angle for actuator disk BEM.*/ + addDoubleOption("BEM_PROP_BLADE_ANGLE", BEM_blade_angle, 23.9); + /* DESCRIPTION: Propeller file name for actuator disk BEM.*/ + addStringOption("BEM_PROP_FILENAME", BEM_prop_filename, string("prop_geom_alfclcd_data.txt")); + /* DESCRIPTION: Frequency for updating actuator disk with BEM.*/ + addUnsignedShortOption("BEM_FREQ", ActDiskBem_Frequency, 40); + /* DESCRIPTION: Only half engine is in the computational grid */ addBoolOption("ENGINE_HALF_MODEL", Engine_HalfModel, false); - /* DESCRIPTION: Actuator disk double surface */ + /* DESCRIPTION: Actuator disk SU2_DEF */ addBoolOption("ACTDISK_SU2_DEF", ActDisk_SU2_DEF, false); /* DESCRIPTION: Definition of the distortion rack (radial number of proves / circumferential density (degree) */ distortion[0] = 5.0; distortion[1] = 15.0; @@ -1679,9 +1712,6 @@ void CConfig::SetConfig_Options() { /* DESCRIPTION: Load boundary marker(s) Format: (inlet marker, load, multiplier, dir_x, dir_y, dir_z, ... ), i.e. primitive variables specified. */ addInletOption("MARKER_DISPLACEMENT", nMarker_Disp_Dir, Marker_Disp_Dir, Disp_Dir_Value, Disp_Dir_Multiplier, Disp_Dir); - /* DESCRIPTION: Sine load boundary marker(s) - Format: (inlet marker, load, multiplier, dir_x, dir_y, dir_z, ... ), i.e. primitive variables specified. */ - addInletOption("MARKER_SINE_LOAD", nMarker_Load_Sine, Marker_Load_Sine, Load_Sine_Amplitude, Load_Sine_Frequency, Load_Sine_Dir); /*!\brief SINE_LOAD\n DESCRIPTION: option to apply the load as a sine*/ addBoolOption("SINE_LOAD", Sine_Load, false); sineload_coeff[0] = 0.0; sineload_coeff[1] = 0.0; sineload_coeff[2] = 0.0; @@ -1690,8 +1720,6 @@ void CConfig::SetConfig_Options() { /*!\brief RAMP_AND_RELEASE\n DESCRIPTION: release the load after applying the ramp*/ addBoolOption("RAMP_AND_RELEASE_LOAD", RampAndRelease, false); - /* DESCRIPTION: Flow load boundary marker(s) */ - addStringDoubleListOption("MARKER_FLOWLOAD", nMarker_FlowLoad, Marker_FlowLoad, FlowLoad_Value); /* DESCRIPTION: Damping factor for engine inlet condition */ addDoubleOption("DAMP_ENGINE_INFLOW", Damp_Engine_Inflow, 0.95); /* DESCRIPTION: Damping factor for engine exhaust condition */ @@ -1819,18 +1847,10 @@ void CConfig::SetConfig_Options() { addBoolOption("LOW_MACH_PREC", Low_Mach_Precon, false); /* DESCRIPTION: Post-reconstruction correction for low Mach number flows */ addBoolOption("LOW_MACH_CORR", Low_Mach_Corr, false); - /* DESCRIPTION: Time Step for dual time stepping simulations (s) */ + /* DESCRIPTION: Minimum value for beta for the Roe-Turkel preconditioner */ addDoubleOption("MIN_ROE_TURKEL_PREC", Min_Beta_RoeTurkel, 0.01); - /* DESCRIPTION: Time Step for dual time stepping simulations (s) */ + /* DESCRIPTION: Maximum value for beta for the Roe-Turkel preconditioner */ addDoubleOption("MAX_ROE_TURKEL_PREC", Max_Beta_RoeTurkel, 0.2); - /* DESCRIPTION: Linear solver for the turbulent adjoint systems */ - addEnumOption("ADJTURB_LIN_SOLVER", Kind_AdjTurb_Linear_Solver, Linear_Solver_Map, FGMRES); - /* DESCRIPTION: Preconditioner for the turbulent adjoint Krylov linear solvers */ - addEnumOption("ADJTURB_LIN_PREC", Kind_AdjTurb_Linear_Prec, Linear_Solver_Prec_Map, ILU); - /* DESCRIPTION: Minimum error threshold for the turbulent adjoint linear solver for the implicit formulation */ - addDoubleOption("ADJTURB_LIN_ERROR", AdjTurb_Linear_Error, 1E-5); - /* DESCRIPTION: Maximum number of iterations of the turbulent adjoint linear solver for the implicit formulation */ - addUnsignedShortOption("ADJTURB_LIN_ITER", AdjTurb_Linear_Iter, 10); /* DESCRIPTION: Entropy fix factor */ addDoubleOption("ENTROPY_FIX_COEFF", EntropyFix_Coeff, 0.001); /* DESCRIPTION: Linear solver for the discete adjoint systems */ @@ -1842,6 +1862,8 @@ void CConfig::SetConfig_Options() { /*!\par CONFIG_CATEGORY: Convergence\ingroup Config*/ /*--- Options related to convergence ---*/ + /*!\brief CONV_FIELD\n DESCRIPTION: Output field to monitor \n Default: depends on solver \ingroup Config*/ + addStringListOption("CONV_FIELD", nConvField, ConvField); /*!\brief CONV_RESIDUAL_MINVAL\n DESCRIPTION: Min value of the residual (log10 of the residual)\n DEFAULT: -14.0 \ingroup Config*/ addDoubleOption("CONV_RESIDUAL_MINVAL", MinLogResidual, -14.0); /*!\brief CONV_STARTITER\n DESCRIPTION: Iteration number to begin convergence monitoring\n DEFAULT: 5 \ingroup Config*/ @@ -1850,15 +1872,13 @@ void CConfig::SetConfig_Options() { addUnsignedShortOption("CONV_CAUCHY_ELEMS", Cauchy_Elems, 100); /*!\brief CONV_CAUCHY_EPS\n DESCRIPTION: Epsilon to control the series convergence \n DEFAULT: 1e-10 \ingroup Config*/ addDoubleOption("CONV_CAUCHY_EPS", Cauchy_Eps, 1E-10); - /*!\brief CONV_FIELD\n DESCRIPTION: Output field to monitor \n Default: depends on solver \ingroup Config*/ - addStringListOption("CONV_FIELD", nConvField, ConvField); /*!\brief CONV_WINDOW_STARTITER\n DESCRIPTION: Iteration number after START_ITER_WND to begin convergence monitoring\n DEFAULT: 15 \ingroup Config*/ addUnsignedLongOption("CONV_WINDOW_STARTITER", Wnd_StartConv_Iter, 15); - /*!\brief CONV_WINDOW_CAUCHY_ELEMS\n DESCRIPTION: Number of elements to apply the criteria. \n DEFAULT 100 \ingroup Config*/ - addUnsignedShortOption("CONV_WINDOW_CAUCHY_ELEMS", Wnd_Cauchy_Elems, 100); /*!\brief CONV_WINDOW_CAUCHY_EPS\n DESCRIPTION: Epsilon to control the series convergence \n DEFAULT: 1e-3 \ingroup Config*/ addDoubleOption("CONV_WINDOW_CAUCHY_EPS", Wnd_Cauchy_Eps, 1E-3); + /*!\brief CONV_WINDOW_CAUCHY_ELEMS\n DESCRIPTION: Number of elements to apply the criteria. \n DEFAULT 100 \ingroup Config*/ + addUnsignedShortOption("CONV_WINDOW_CAUCHY_ELEMS", Wnd_Cauchy_Elems, 100); /*!\brief WINDOW_CAUCHY_CRIT \n DESCRIPTION: Determines, if the cauchy convergence criterion should be used for windowed time averaged objective functions*/ addBoolOption("WINDOW_CAUCHY_CRIT",Wnd_Cauchy_Crit, false); /*!\brief CONV_WINDOW_FIELD @@ -2098,7 +2118,7 @@ void CConfig::SetConfig_Options() { /* DESCRIPTION: Determine if the mesh file supports multizone. \n DEFAULT: true (temporarily) */ addBoolOption("MULTIZONE_MESH", Multizone_Mesh, true); - /* DESCRIPTION: Determine if we need to allocate memory to store the multizone residual. \n DEFAULT: true (temporarily) */ + /* DESCRIPTION: Determine if we need to allocate memory to store the multizone residual. \n DEFAULT: false (temporarily) */ addBoolOption("MULTIZONE_RESIDUAL", Multizone_Residual, false); /* !\brief CONTROLLING_VARIABLE_NAMES \n DESCRIPTION: Names of the variables used as inputs for the data regression method in flamelet or data-driven fluid models. */ @@ -2341,9 +2361,9 @@ void CConfig::SetConfig_Options() { addDoubleOption("DEFORM_LIMIT", Deform_Limit, 1E6); /* DESCRIPTION: Type of element stiffness imposed for FEA mesh deformation (INVERSE_VOLUME, WALL_DISTANCE, CONSTANT_STIFFNESS) */ addEnumOption("DEFORM_STIFFNESS_TYPE", Deform_StiffnessType, Deform_Stiffness_Map, SOLID_WALL_DISTANCE); - /* DESCRIPTION: Poisson's ratio for constant stiffness FEA method of grid deformation */ + /* DESCRIPTION: Young's modulus for constant stiffness FEA method of grid deformation */ addDoubleOption("DEFORM_ELASTICITY_MODULUS", Deform_ElasticityMod, 2E11); - /* DESCRIPTION: Young's modulus and Poisson's ratio for constant stiffness FEA method of grid deformation */ + /* DESCRIPTION: Poisson's ratio for constant stiffness FEA method of grid deformation */ addDoubleOption("DEFORM_POISSONS_RATIO", Deform_PoissonRatio, 0.3); /* DESCRIPTION: Size of the layer of highest stiffness for wall distance-based mesh stiffness */ addDoubleOption("DEFORM_STIFF_LAYER_SIZE", Deform_StiffLayerSize, 0.0); @@ -2356,14 +2376,6 @@ void CConfig::SetConfig_Options() { /* DESCRIPTION: Maximum number of iterations of the linear solver for the implicit formulation */ addUnsignedLongOption("DEFORM_LINEAR_SOLVER_ITER", Deform_Linear_Solver_Iter, 1000); - /*!\par CONFIG_CATEGORY: Rotorcraft problem \ingroup Config*/ - /*--- option related to rotorcraft problems ---*/ - - /* DESCRIPTION: MISSING ---*/ - addDoubleOption("CYCLIC_PITCH", Cyclic_Pitch, 0.0); - /* DESCRIPTION: MISSING ---*/ - addDoubleOption("COLLECTIVE_PITCH", Collective_Pitch, 0.0); - /*!\par CONFIG_CATEGORY: FEM flow solver definition \ingroup Config*/ /*--- Options related to the finite element flow solver---*/ @@ -2390,7 +2402,7 @@ void CConfig::SetConfig_Options() { /*!\par CONFIG_CATEGORY: FEA solver \ingroup Config*/ /*--- Options related to the FEA solver ---*/ - /*!\brief FEA_FILENAME \n DESCRIPTION: Filename to input for element-based properties \n Default: element_properties.dat \ingroup Config */ + /*!\brief FEA_FILENAME \n DESCRIPTION: Filename to input for element-based properties \n Default: default_element_properties.dat \ingroup Config */ addStringOption("FEA_FILENAME", FEA_FileName, string("default_element_properties.dat")); /* DESCRIPTION: Determine if advanced features are used from the element-based FEA analysis (NO, YES = experimental) */ addBoolOption("FEA_ADVANCED_MODE", FEAAdvancedMode, false); @@ -2419,7 +2431,6 @@ void CConfig::SetConfig_Options() { /*!\brief DESIGN_VARIABLE_FEA * \n DESCRIPTION: Design variable for FEA problems \n OPTIONS: See \link DVFEA_Map \endlink \n DEFAULT VENKATAKRISHNAN \ingroup Config */ addEnumOption("DESIGN_VARIABLE_FEA", Kind_DV_FEA, DVFEA_Map, NODV_FEA); - /* DESCRIPTION: Consider a reference solution for the structure (optimization applications) * Options: NO, YES \ingroup Config */ addBoolOption("REFERENCE_GEOMETRY", RefGeom, false); @@ -2432,9 +2443,6 @@ void CConfig::SetConfig_Options() { /*!\brief REFERENCE_GEOMETRY_SURFACE\n DESCRIPTION: If true consider only the surfaces where loads are applied. \ingroup Config*/ addBoolOption("REFERENCE_GEOMETRY_SURFACE", RefGeomSurf, false); - /*!\brief TOTAL_DV_PENALTY\n DESCRIPTION: Penalty weight value to maintain the total sum of DV constant \ingroup Config*/ - addDoubleOption("TOTAL_DV_PENALTY", DV_Penalty, 0); - /*!\brief REFERENCE_NODE\n DESCRIPTION: Reference node for the structure (optimization applications) */ addUnsignedLongOption("REFERENCE_NODE", refNodeID, 0); /*!\brief REFERENCE_NODE_DISPLACEMENT\n DESCRIPTION: Target displacement of the reference node \ingroup Config*/ @@ -2442,6 +2450,9 @@ void CConfig::SetConfig_Options() { /*!\brief REFERENCE_NODE_PENALTY\n DESCRIPTION: Penalty weight value for the objective function \ingroup Config*/ addDoubleOption("REFERENCE_NODE_PENALTY", RefNode_Penalty, 1E3); + /*!\brief TOTAL_DV_PENALTY\n DESCRIPTION: Penalty weight value to maintain the total sum of DV constant \ingroup Config*/ + addDoubleOption("TOTAL_DV_PENALTY", DV_Penalty, 0); + /*!\brief STRESS_PENALTY_PARAM\n DESCRIPTION: Maximum allowed stress and KS exponent for structural optimization \ingroup Config*/ addDoubleArrayOption("STRESS_PENALTY_PARAM", 2, StressPenaltyParam.data()); @@ -2470,7 +2481,7 @@ void CConfig::SetConfig_Options() { addBoolOption("PSEUDO_STATIC", PseudoStatic, false); /* DESCRIPTION: Parameter alpha for Newmark scheme (s) */ addDoubleOption("NEWMARK_BETA", Newmark_beta, 0.25); - /* DESCRIPTION: Parameter delta for Newmark scheme (s) */ + /* DESCRIPTION: Parameter gamma for Newmark scheme (s) */ addDoubleOption("NEWMARK_GAMMA", Newmark_gamma, 0.5); /* DESCRIPTION: Apply the load as a ramp */ addBoolOption("RAMP_LOADING", Ramp_Load, false); @@ -2548,7 +2559,7 @@ void CConfig::SetConfig_Options() { /* DESCRIPTION: Determines if the convergence history of each individual zone is written to file */ addBoolOption("WRT_ZONE_HIST", Wrt_ZoneHist, false); - /* DESCRIPTION: Determines if the special output is written out */ + /* DESCRIPTION: Determines if the forces breakdown is written out */ addBoolOption("WRT_FORCES_BREAKDOWN", Wrt_ForcesBreakdown, false); @@ -2650,7 +2661,7 @@ void CConfig::SetConfig_Options() { /*!\par CONFIG_CATEGORY: Visualize Control Volumes \ingroup Config*/ /*--- options related to visualizing control volumes ---*/ - /* DESCRIPTION: Node number for the CV to be visualized */ + /* DESCRIPTION: Node number for the CV to be visualized (tecplot) */ addLongOption("VISUALIZE_CV", Visualize_CV, -1); /*!\par CONFIG_CATEGORY: Inverse design problem \ingroup Config*/ @@ -2665,10 +2676,10 @@ void CConfig::SetConfig_Options() { /*!\par CONFIG_CATEGORY: Unsupported options \ingroup Config*/ /*--- Options that are experimental and not intended for general use ---*/ - /* DESCRIPTION: Write extra output */ + /* DESCRIPTION: Write extra output (EXPERIMENTAL, NOT FOR GENERAL USE) */ addBoolOption("EXTRA_OUTPUT", ExtraOutput, false); - /* DESCRIPTION: Write extra heat output for a given zone heat solver zone */ + /* DESCRIPTION: Write extra heat output for a given heat solver zone */ addLongOption("EXTRA_HEAT_ZONE_OUTPUT", ExtraHeatOutputZone, -1); /*--- options related to the FFD problem ---*/ @@ -2916,6 +2927,9 @@ void CConfig::SetConfig_Options() { /* DESCRIPTION: Size of the edge groups colored for thread parallel edge loops (0 forces the reducer strategy). */ addUnsignedLongOption("EDGE_COLORING_GROUP_SIZE", edgeColorGroupSize, 512); + /* DESCRIPTION: Allow fallback to smaller edge color group sizes for the discrete adjoint and allow more colors. */ + addBoolOption("EDGE_COLORING_RELAX_DISC_ADJ", edgeColoringRelaxDiscAdj, true); + /*--- options that are used for libROM ---*/ /*!\par CONFIG_CATEGORY:libROM options \ingroup Config*/ @@ -3230,7 +3244,7 @@ void CConfig::SetHeader(SU2_COMPONENT val_software) const{ cout << "\n"; cout << "-------------------------------------------------------------------------\n"; cout << "| ___ _ _ ___ |\n"; - cout << "| / __| | | |_ ) Release 8.0.0 \"Harrier\" |\n"; + cout << "| / __| | | |_ ) Release 8.0.1 \"Harrier\" |\n"; cout << "| \\__ \\ |_| |/ / |\n"; switch (val_software) { case SU2_COMPONENT::SU2_CFD: cout << "| |___/\\___//___| Suite (Computational Fluid Dynamics Code) |\n"; break; @@ -3246,7 +3260,7 @@ void CConfig::SetHeader(SU2_COMPONENT val_software) const{ cout << "| The SU2 Project is maintained by the SU2 Foundation |\n"; cout << "| (http://su2foundation.org) |\n"; cout << "-------------------------------------------------------------------------\n"; - cout << "| Copyright 2012-2023, SU2 Contributors |\n"; + cout << "| Copyright 2012-2024, SU2 Contributors |\n"; cout << "| |\n"; cout << "| SU2 is free software; you can redistribute it and/or |\n"; cout << "| modify it under the terms of the GNU Lesser General Public |\n"; @@ -3575,6 +3589,28 @@ void CConfig::SetPostprocessing(SU2_COMPONENT val_software, unsigned short val_i || (Kind_ActDisk == POWER)) ActDisk_Jump = RATIO; + if(Marker_ActDiskBemInlet_CG && Marker_ActDiskBemInlet_Axis){ + if(nMarker_ActDiskBemInlet_CG != nMarker_ActDiskBemInlet_Axis){ + SU2_MPI::Error("Marker lists supplied to MARKER_ACTDISK_BEM_CG and MARKER_ACTDISK_BEM_AXIS must be identical.", CURRENT_FUNCTION); + } + for(iMarker=0; iMarker 0) { - for (iMarker_Emissivity = 0; iMarker_Emissivity < nMarker_Emissivity; iMarker_Emissivity++) - if (Marker_Emissivity[iMarker_Emissivity] == val_marker) break; - } - - return Wall_Emissivity[iMarker_Emissivity]; + for (auto iMarker = 0u; iMarker < nMarker_Emissivity; iMarker++) + if (Marker_Emissivity[iMarker] == val_marker) + return Wall_Emissivity[iMarker]; + return 0; } bool CConfig::GetMarker_StrongBC(const string& val_marker) const { @@ -9599,19 +9640,12 @@ bool CConfig::GetMarker_StrongBC(const string& val_marker) const { return false; } -su2double CConfig::GetFlowLoad_Value(const string& val_marker) const { - unsigned short iMarker_FlowLoad; - for (iMarker_FlowLoad = 0; iMarker_FlowLoad < nMarker_FlowLoad; iMarker_FlowLoad++) - if (Marker_FlowLoad[iMarker_FlowLoad] == val_marker) break; - return FlowLoad_Value[iMarker_FlowLoad]; -} short CConfig::FindInterfaceMarker(unsigned short iInterface) const { /*--- The names of the two markers that form the interface. ---*/ const auto& sideA = Marker_ZoneInterface[2*iInterface]; const auto& sideB = Marker_ZoneInterface[2*iInterface+1]; - for (unsigned short iMarker = 0; iMarker < nMarker_All; iMarker++) { /*--- If the marker is sideA or sideB of the interface (order does not matter). ---*/ const auto& tag = Marker_All_TagBound[iMarker]; diff --git a/Common/src/adt/CADTBaseClass.cpp b/Common/src/adt/CADTBaseClass.cpp index 8af4742badf..7427bbd54b9 100644 --- a/Common/src/adt/CADTBaseClass.cpp +++ b/Common/src/adt/CADTBaseClass.cpp @@ -2,14 +2,14 @@ * \file CADTBaseClass.cpp * \brief Base class for storing an ADT in an arbitrary number of dimensions. * \author E. van der Weide - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/src/adt/CADTElemClass.cpp b/Common/src/adt/CADTElemClass.cpp index 22dba4c5e5e..378d8933377 100644 --- a/Common/src/adt/CADTElemClass.cpp +++ b/Common/src/adt/CADTElemClass.cpp @@ -2,14 +2,14 @@ * \file CADTElemClass.cpp * \brief Class for storing an ADT of (linear) elements in an arbitrary number of dimensions. * \author E. van der Weide - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/src/adt/CADTPointsOnlyClass.cpp b/Common/src/adt/CADTPointsOnlyClass.cpp index 75062ba722b..a427a26b6a2 100644 --- a/Common/src/adt/CADTPointsOnlyClass.cpp +++ b/Common/src/adt/CADTPointsOnlyClass.cpp @@ -2,14 +2,14 @@ * \file CADTPointsOnlyClass.cpp * \brief Class for storing an ADT of only points in an arbitrary number of dimensions. * \author E. van der Weide - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/src/basic_types/ad_structure.cpp b/Common/src/basic_types/ad_structure.cpp index c5d2ddd34e4..bd71817b57f 100644 --- a/Common/src/basic_types/ad_structure.cpp +++ b/Common/src/basic_types/ad_structure.cpp @@ -2,14 +2,14 @@ * \file ad_structure.cpp * \brief Main subroutines for the algorithmic differentiation (AD) structure. * \author T. Albring - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -57,5 +57,6 @@ void Initialize() { #endif } -void Finalize() {} +void Finalize() { AD::Reset(); } + } // namespace AD diff --git a/Common/src/containers/CFileReaderLUT.cpp b/Common/src/containers/CFileReaderLUT.cpp index 0e1b6d569c0..55a496697a1 100644 --- a/Common/src/containers/CFileReaderLUT.cpp +++ b/Common/src/containers/CFileReaderLUT.cpp @@ -2,14 +2,14 @@ * \file CFileReaderLUT.cpp * \brief reading lookup table for tabulated fluid properties * \author D. Mayer, T. Economon - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/src/containers/CLookUpTable.cpp b/Common/src/containers/CLookUpTable.cpp index 6ec0ff247f5..206ea2ff648 100644 --- a/Common/src/containers/CLookUpTable.cpp +++ b/Common/src/containers/CLookUpTable.cpp @@ -2,14 +2,14 @@ * \file CLookupTable.cpp * \brief tabulation of fluid properties * \author D. Mayer, T. Economon - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/src/containers/CTrapezoidalMap.cpp b/Common/src/containers/CTrapezoidalMap.cpp index 0f964030748..b0c1d972b7a 100644 --- a/Common/src/containers/CTrapezoidalMap.cpp +++ b/Common/src/containers/CTrapezoidalMap.cpp @@ -2,14 +2,14 @@ * \file CTrapezoidalMap.cpp * \brief Implementation of the trapezoidal map for tabulation and lookup of fluid properties * \author D. Mayer, T. Economon, N. Beishuizen - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/src/fem/fem_cgns_elements.cpp b/Common/src/fem/fem_cgns_elements.cpp index 746830ad1c6..118bdab3202 100644 --- a/Common/src/fem/fem_cgns_elements.cpp +++ b/Common/src/fem/fem_cgns_elements.cpp @@ -2,14 +2,14 @@ * \file fem_cgns_elements.cpp * \brief CGNS element definitions and conversions to the SU2 standard. * \author E. van der Weide - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/src/fem/fem_gauss_jacobi_quadrature.cpp b/Common/src/fem/fem_gauss_jacobi_quadrature.cpp index f8c1054ea30..647f324eecd 100644 --- a/Common/src/fem/fem_gauss_jacobi_quadrature.cpp +++ b/Common/src/fem/fem_gauss_jacobi_quadrature.cpp @@ -4,14 +4,14 @@ quadrature rules. All the functions in this file are based on the program JACOBI_RULE of John Burkardt. * \author E. van der Weide - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/src/fem/fem_geometry_structure.cpp b/Common/src/fem/fem_geometry_structure.cpp index a9b92bf0a6d..e707346c995 100644 --- a/Common/src/fem/fem_geometry_structure.cpp +++ b/Common/src/fem/fem_geometry_structure.cpp @@ -2,14 +2,14 @@ * \file fem_geometry_structure.cpp * \brief Functions for creating the primal grid for the FEM solver. * \author E. van der Weide - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/src/fem/fem_integration_rules.cpp b/Common/src/fem/fem_integration_rules.cpp index ff8bdf19a25..3b37b8b1369 100644 --- a/Common/src/fem/fem_integration_rules.cpp +++ b/Common/src/fem/fem_integration_rules.cpp @@ -2,14 +2,14 @@ * \file fem_integration_rules.cpp * \brief FEM integration rules for the standard elements. * \author E. van der Weide - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/src/fem/fem_standard_element.cpp b/Common/src/fem/fem_standard_element.cpp index e9604a11200..37b5801c08b 100644 --- a/Common/src/fem/fem_standard_element.cpp +++ b/Common/src/fem/fem_standard_element.cpp @@ -2,14 +2,14 @@ * \file fem_standard_element.cpp * \brief Functions for the FEM standard elements. * \author E. van der Weide - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/src/fem/fem_wall_distance.cpp b/Common/src/fem/fem_wall_distance.cpp index e95cc8506ff..09b916f4456 100644 --- a/Common/src/fem/fem_wall_distance.cpp +++ b/Common/src/fem/fem_wall_distance.cpp @@ -2,14 +2,14 @@ * \file fem_wall_distance.cpp * \brief Main subroutines for computing the wall distance for the FEM solver. * \author E. van der Weide - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/src/fem/fem_work_estimate_metis.cpp b/Common/src/fem/fem_work_estimate_metis.cpp index 50d50db4d80..86d323d5c6e 100644 --- a/Common/src/fem/fem_work_estimate_metis.cpp +++ b/Common/src/fem/fem_work_estimate_metis.cpp @@ -3,14 +3,14 @@ * \brief This file contains the implementation of the member functions WorkEstimateMetis for the FEM standard elements. * \author E. van der Weide - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/src/fem/geometry_structure_fem_part.cpp b/Common/src/fem/geometry_structure_fem_part.cpp index ce4fbfa9621..a334aba6bde 100644 --- a/Common/src/fem/geometry_structure_fem_part.cpp +++ b/Common/src/fem/geometry_structure_fem_part.cpp @@ -2,14 +2,14 @@ * \file geometry_structure_fem_part.cpp * \brief Main subroutines for distributin the grid for the Fluid FEM solver. * \author F. Palacios, T. Economon - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/src/geometry/CDummyGeometry.cpp b/Common/src/geometry/CDummyGeometry.cpp index 1fba711ee64..d4cea5303d0 100644 --- a/Common/src/geometry/CDummyGeometry.cpp +++ b/Common/src/geometry/CDummyGeometry.cpp @@ -2,14 +2,14 @@ * \file CDummyGeometry.hpp * \brief Implementation of the dummy geometry class used in "dry run" mode. * \author T. Albring - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/src/geometry/CGeometry.cpp b/Common/src/geometry/CGeometry.cpp index 9ed1804186a..e1f199999f9 100644 --- a/Common/src/geometry/CGeometry.cpp +++ b/Common/src/geometry/CGeometry.cpp @@ -2,14 +2,14 @@ * \file CGeometry.cpp * \brief Implementation of the base geometry class. * \author F. Palacios, T. Economon - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -3609,7 +3609,7 @@ const su2vector& CGeometry::GetTransposeSparsePatternMap(Connecti return pattern.transposePtr(); } -const CCompressedSparsePatternUL& CGeometry::GetEdgeColoring(su2double* efficiency) { +const CCompressedSparsePatternUL& CGeometry::GetEdgeColoring(su2double* efficiency, bool maximizeEdgeColorGroupSize) { /*--- Check for dry run mode with dummy geometry. ---*/ if (nEdge == 0) return edgeColoring; @@ -3637,7 +3637,60 @@ const CCompressedSparsePatternUL& CGeometry::GetEdgeColoring(su2double* efficien /*--- Color the edges. ---*/ constexpr bool balanceColors = true; - edgeColoring = colorSparsePattern(pattern, edgeColorGroupSize, balanceColors); + + /*--- If requested, find an efficient coloring with maximum color group size (up to edgeColorGroupSize). ---*/ + if (maximizeEdgeColorGroupSize) { + auto upperEdgeColorGroupSize = edgeColorGroupSize + 1; /* upper bound that is deemed too large */ + auto nextEdgeColorGroupSize = edgeColorGroupSize; /* next value that we are going to try */ + auto lowerEdgeColorGroupSize = 1ul; /* lower bound that is known to work */ + + bool admissibleColoring = false; /* keep track wether the last tested coloring is admissible */ + + while (true) { + edgeColoring = colorSparsePattern(pattern, nextEdgeColorGroupSize, balanceColors); + + /*--- If the coloring fails, reduce the color group size. ---*/ + if (edgeColoring.empty()) { + upperEdgeColorGroupSize = nextEdgeColorGroupSize; + admissibleColoring = false; + } + /*--- If the coloring succeeds, check the efficiency. ---*/ + else { + const su2double currentEfficiency = + coloringEfficiency(edgeColoring, omp_get_max_threads(), nextEdgeColorGroupSize); + + /*--- If the coloring is not efficient, reduce the color group size. ---*/ + if (currentEfficiency < COLORING_EFF_THRESH) { + upperEdgeColorGroupSize = nextEdgeColorGroupSize; + admissibleColoring = false; + } + /*--- Otherwise, enlarge the color group size. ---*/ + else { + lowerEdgeColorGroupSize = nextEdgeColorGroupSize; + admissibleColoring = true; + } + } + + const auto increment = (upperEdgeColorGroupSize - lowerEdgeColorGroupSize) / 2; + nextEdgeColorGroupSize = lowerEdgeColorGroupSize + increment; + + /*--- Terminating condition. ---*/ + if (increment == 0) { + break; + } + } + + edgeColorGroupSize = nextEdgeColorGroupSize; + + /*--- If the last tested coloring was not admissible, recompute the final coloring. ---*/ + if (!admissibleColoring) { + edgeColoring = colorSparsePattern(pattern, edgeColorGroupSize, balanceColors); + } + } + /*--- No adaptivity. ---*/ + else { + edgeColoring = colorSparsePattern(pattern, edgeColorGroupSize, balanceColors); + } /*--- If the coloring fails use the natural coloring. This is a * "soft" failure as this "bad" coloring should be detected diff --git a/Common/src/geometry/CMultiGridGeometry.cpp b/Common/src/geometry/CMultiGridGeometry.cpp index 37b1bd175ba..3e2b26c0198 100644 --- a/Common/src/geometry/CMultiGridGeometry.cpp +++ b/Common/src/geometry/CMultiGridGeometry.cpp @@ -2,14 +2,14 @@ * \file CMultiGridGeometry.cpp * \brief Implementation of the multigrid geometry class. * \author F. Palacios, T. Economon - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/src/geometry/CMultiGridQueue.cpp b/Common/src/geometry/CMultiGridQueue.cpp index 7ae01c60af3..dc7b99273bb 100644 --- a/Common/src/geometry/CMultiGridQueue.cpp +++ b/Common/src/geometry/CMultiGridQueue.cpp @@ -2,14 +2,14 @@ * \file CMultiGridQueue.cpp * \brief Implementation of the multigrid queue class for the FVM solver. * \author F. Palacios - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/src/geometry/CPhysicalGeometry.cpp b/Common/src/geometry/CPhysicalGeometry.cpp index 54d667e0fbd..8d245ce1206 100644 --- a/Common/src/geometry/CPhysicalGeometry.cpp +++ b/Common/src/geometry/CPhysicalGeometry.cpp @@ -2,14 +2,14 @@ * \file CPhysicalGeometry.cpp * \brief Implementation of the physical geometry class. * \author F. Palacios, T. Economon - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -4830,23 +4830,23 @@ void CPhysicalGeometry::ComputeNSpan(CConfig* config, unsigned short val_iZone, coord = nodes->GetCoord(iPoint); radius = sqrt(coord[0] * coord[0] + coord[1] * coord[1]); switch (config->GetKind_TurboMachinery(val_iZone)) { - case CENTRIFUGAL: + case TURBOMACHINERY_TYPE::CENTRIFUGAL: valueSpan[nSpan_loc] = coord[2]; break; - case CENTRIPETAL: + case TURBOMACHINERY_TYPE::CENTRIPETAL: valueSpan[nSpan_loc] = coord[2]; break; - case AXIAL: + case TURBOMACHINERY_TYPE::AXIAL: valueSpan[nSpan_loc] = radius; break; - case CENTRIPETAL_AXIAL: + case TURBOMACHINERY_TYPE::CENTRIPETAL_AXIAL: if (marker_flag == OUTFLOW) { valueSpan[nSpan_loc] = radius; } else { valueSpan[nSpan_loc] = coord[2]; } break; - case AXIAL_CENTRIFUGAL: + case TURBOMACHINERY_TYPE::AXIAL_CENTRIFUGAL: if (marker_flag == INFLOW) { valueSpan[nSpan_loc] = radius; } else { @@ -4922,16 +4922,16 @@ void CPhysicalGeometry::ComputeNSpan(CConfig* config, unsigned short val_iZone, coord = nodes->GetCoord(iPoint); radius = sqrt(coord[0] * coord[0] + coord[1] * coord[1]); switch (config->GetKind_TurboMachinery(val_iZone)) { - case CENTRIFUGAL: - case CENTRIPETAL: + case TURBOMACHINERY_TYPE::CENTRIFUGAL: + case TURBOMACHINERY_TYPE::CENTRIPETAL: if (coord[2] < min) min = coord[2]; if (coord[2] > max) max = coord[2]; break; - case AXIAL: + case TURBOMACHINERY_TYPE::AXIAL: if (radius < min) min = radius; if (radius > max) max = radius; break; - case CENTRIPETAL_AXIAL: + case TURBOMACHINERY_TYPE::CENTRIPETAL_AXIAL: if (marker_flag == OUTFLOW) { if (radius < min) min = radius; if (radius > max) max = radius; @@ -4940,7 +4940,7 @@ void CPhysicalGeometry::ComputeNSpan(CConfig* config, unsigned short val_iZone, if (coord[2] > max) max = coord[2]; } break; - case AXIAL_CENTRIFUGAL: + case TURBOMACHINERY_TYPE::AXIAL_CENTRIFUGAL: if (marker_flag == INFLOW) { if (radius < min) min = radius; if (radius > max) max = radius; @@ -5094,8 +5094,8 @@ void CPhysicalGeometry::SetTurboVertex(CConfig* config, unsigned short val_iZone coord = nodes->GetCoord(iPoint); switch (config->GetKind_TurboMachinery(val_iZone)) { - case CENTRIFUGAL: - case CENTRIPETAL: + case TURBOMACHINERY_TYPE::CENTRIFUGAL: + case TURBOMACHINERY_TYPE::CENTRIPETAL: for (iSpan = 0; iSpan < nSpanWiseSections[marker_flag - 1]; iSpan++) { if (dist > (abs(coord[2] - SpanWiseValue[marker_flag - 1][iSpan]))) { dist = abs(coord[2] - SpanWiseValue[marker_flag - 1][iSpan]); @@ -5103,7 +5103,7 @@ void CPhysicalGeometry::SetTurboVertex(CConfig* config, unsigned short val_iZone } } break; - case AXIAL: + case TURBOMACHINERY_TYPE::AXIAL: radius = sqrt(coord[0] * coord[0] + coord[1] * coord[1]); for (iSpan = 0; iSpan < nSpanWiseSections[marker_flag - 1]; iSpan++) { if (dist > (abs(radius - SpanWiseValue[marker_flag - 1][iSpan]))) { @@ -5112,7 +5112,7 @@ void CPhysicalGeometry::SetTurboVertex(CConfig* config, unsigned short val_iZone } } break; - case CENTRIPETAL_AXIAL: + case TURBOMACHINERY_TYPE::CENTRIPETAL_AXIAL: if (marker_flag == OUTFLOW) { radius = sqrt(coord[0] * coord[0] + coord[1] * coord[1]); for (iSpan = 0; iSpan < nSpanWiseSections[marker_flag - 1]; iSpan++) { @@ -5131,7 +5131,7 @@ void CPhysicalGeometry::SetTurboVertex(CConfig* config, unsigned short val_iZone } break; - case AXIAL_CENTRIFUGAL: + case TURBOMACHINERY_TYPE::AXIAL_CENTRIFUGAL: if (marker_flag == INFLOW) { radius = sqrt(coord[0] * coord[0] + coord[1] * coord[1]); for (iSpan = 0; iSpan < nSpanWiseSections[marker_flag - 1]; iSpan++) { @@ -5194,8 +5194,8 @@ void CPhysicalGeometry::SetTurboVertex(CConfig* config, unsigned short val_iZone coord = nodes->GetCoord(iPoint); switch (config->GetKind_TurboMachinery(val_iZone)) { - case CENTRIFUGAL: - case CENTRIPETAL: + case TURBOMACHINERY_TYPE::CENTRIFUGAL: + case TURBOMACHINERY_TYPE::CENTRIPETAL: for (iSpan = 0; iSpan < nSpanWiseSections[marker_flag - 1]; iSpan++) { if (dist > (abs(coord[2] - SpanWiseValue[marker_flag - 1][iSpan]))) { dist = abs(coord[2] - SpanWiseValue[marker_flag - 1][iSpan]); @@ -5203,7 +5203,7 @@ void CPhysicalGeometry::SetTurboVertex(CConfig* config, unsigned short val_iZone } } break; - case AXIAL: + case TURBOMACHINERY_TYPE::AXIAL: radius = sqrt(coord[0] * coord[0] + coord[1] * coord[1]); for (iSpan = 0; iSpan < nSpanWiseSections[marker_flag - 1]; iSpan++) { if (dist > (abs(radius - SpanWiseValue[marker_flag - 1][iSpan]))) { @@ -5212,7 +5212,7 @@ void CPhysicalGeometry::SetTurboVertex(CConfig* config, unsigned short val_iZone } } break; - case CENTRIPETAL_AXIAL: + case TURBOMACHINERY_TYPE::CENTRIPETAL_AXIAL: if (marker_flag == OUTFLOW) { radius = sqrt(coord[0] * coord[0] + coord[1] * coord[1]); for (iSpan = 0; iSpan < nSpanWiseSections[marker_flag - 1]; iSpan++) { @@ -5231,7 +5231,7 @@ void CPhysicalGeometry::SetTurboVertex(CConfig* config, unsigned short val_iZone } break; - case AXIAL_CENTRIFUGAL: + case TURBOMACHINERY_TYPE::AXIAL_CENTRIFUGAL: if (marker_flag == INFLOW) { radius = sqrt(coord[0] * coord[0] + coord[1] * coord[1]); for (iSpan = 0; iSpan < nSpanWiseSections[marker_flag - 1]; iSpan++) { @@ -5285,7 +5285,7 @@ void CPhysicalGeometry::SetTurboVertex(CConfig* config, unsigned short val_iZone /*--- find nodes at minimum pitch among all nodes---*/ if (coord[1] < min) { min = coord[1]; - if (nDim == 2 && config->GetKind_TurboMachinery(val_iZone) == AXIAL) { + if (nDim == 2 && config->GetKind_TurboMachinery(val_iZone) == TURBOMACHINERY_TYPE::AXIAL) { MinAngularCoord[iMarker][iSpan] = coord[1]; } else { MinAngularCoord[iMarker][iSpan] = atan(coord[1] / coord[0]); @@ -5298,7 +5298,7 @@ void CPhysicalGeometry::SetTurboVertex(CConfig* config, unsigned short val_iZone if (coord[1] < minInt) { if (nodes->GetDomain(iPoint)) { minInt = coord[1]; - if (nDim == 2 && config->GetKind_TurboMachinery(val_iZone) == AXIAL) { + if (nDim == 2 && config->GetKind_TurboMachinery(val_iZone) == TURBOMACHINERY_TYPE::AXIAL) { minIntAngPitch[iSpan] = coord[1]; } else { minIntAngPitch[iSpan] = atan(coord[1] / coord[0]); @@ -5310,7 +5310,7 @@ void CPhysicalGeometry::SetTurboVertex(CConfig* config, unsigned short val_iZone if (coord[1] > max) { if (nodes->GetDomain(iPoint)) { max = coord[1]; - if (nDim == 2 && config->GetKind_TurboMachinery(val_iZone) == AXIAL) { + if (nDim == 2 && config->GetKind_TurboMachinery(val_iZone) == TURBOMACHINERY_TYPE::AXIAL) { MaxAngularCoord[iMarker][iSpan] = coord[1]; } else { MaxAngularCoord[iMarker][iSpan] = atan(coord[1] / coord[0]); @@ -5329,7 +5329,7 @@ void CPhysicalGeometry::SetTurboVertex(CConfig* config, unsigned short val_iZone checkAssign[iSpan][kSpanVertex] = true; coord = nodes->GetCoord(ordered[iSpan][iSpanVertex]); target = coord[1]; - if (nDim == 2 && config->GetKind_TurboMachinery(val_iZone) == AXIAL) { + if (nDim == 2 && config->GetKind_TurboMachinery(val_iZone) == TURBOMACHINERY_TYPE::AXIAL) { angPitch[iSpan][iSpanVertex] = coord[1]; } else { angPitch[iSpan][iSpanVertex] = atan(coord[1] / coord[0]); @@ -5350,7 +5350,7 @@ void CPhysicalGeometry::SetTurboVertex(CConfig* config, unsigned short val_iZone turbovertex[iMarker][iSpan][iInternalVertex]->SetAngularCoord(angPitch[iSpan][iSpanVertex]); turbovertex[iMarker][iSpan][iInternalVertex]->SetDeltaAngularCoord(deltaAngPitch[iSpan][iSpanVertex]); switch (config->GetKind_TurboMachinery(val_iZone)) { - case CENTRIFUGAL: + case TURBOMACHINERY_TYPE::CENTRIFUGAL: Normal2 = 0.0; for (iDim = 0; iDim < 2; iDim++) Normal2 += coord[iDim] * coord[iDim]; if (marker_flag == INFLOW) { @@ -5363,7 +5363,7 @@ void CPhysicalGeometry::SetTurboVertex(CConfig* config, unsigned short val_iZone TurboNormal[2] = 0.0; } break; - case CENTRIPETAL: + case TURBOMACHINERY_TYPE::CENTRIPETAL: Normal2 = 0.0; for (iDim = 0; iDim < 2; iDim++) Normal2 += coord[iDim] * coord[iDim]; if (marker_flag == OUTFLOW) { @@ -5376,7 +5376,7 @@ void CPhysicalGeometry::SetTurboVertex(CConfig* config, unsigned short val_iZone TurboNormal[2] = 0.0; } break; - case AXIAL: + case TURBOMACHINERY_TYPE::AXIAL: Normal2 = 0.0; for (iDim = 0; iDim < 2; iDim++) Normal2 += coord[iDim] * coord[iDim]; if (nDim == 3) { @@ -5402,7 +5402,7 @@ void CPhysicalGeometry::SetTurboVertex(CConfig* config, unsigned short val_iZone } break; - case CENTRIPETAL_AXIAL: + case TURBOMACHINERY_TYPE::CENTRIPETAL_AXIAL: Normal2 = 0.0; for (iDim = 0; iDim < 2; iDim++) Normal2 += coord[iDim] * coord[iDim]; if (marker_flag == INFLOW) { @@ -5416,7 +5416,7 @@ void CPhysicalGeometry::SetTurboVertex(CConfig* config, unsigned short val_iZone } break; - case AXIAL_CENTRIFUGAL: + case TURBOMACHINERY_TYPE::AXIAL_CENTRIFUGAL: Normal2 = 0.0; for (iDim = 0; iDim < 2; iDim++) Normal2 += coord[iDim] * coord[iDim]; if (marker_flag == INFLOW) { @@ -5720,7 +5720,7 @@ void CPhysicalGeometry::SetTurboVertex(CConfig* config, unsigned short val_iZone myfile << z_loc[iSpan][iSpanVertex]; myfile.width(20); myfile << radius; - if (nDim == 2 && config->GetKind_TurboMachinery(val_iZone)) { + if (nDim == 2) { myfile.width(20); myfile << angCoord_loc[iSpan][iSpanVertex]; myfile.width(20); @@ -5788,7 +5788,7 @@ void CPhysicalGeometry::UpdateTurboVertex(CConfig* config, unsigned short val_iZ coord = nodes->GetCoord(iPoint); /*--- compute appropriate turbo normal ---*/ switch (config->GetKind_TurboMachinery(val_iZone)) { - case CENTRIFUGAL: + case TURBOMACHINERY_TYPE::CENTRIFUGAL: Normal2 = 0.0; for (iDim = 0; iDim < 2; iDim++) Normal2 += coord[iDim] * coord[iDim]; if (marker_flag == INFLOW) { @@ -5801,7 +5801,7 @@ void CPhysicalGeometry::UpdateTurboVertex(CConfig* config, unsigned short val_iZ TurboNormal[2] = 0.0; } break; - case CENTRIPETAL: + case TURBOMACHINERY_TYPE::CENTRIPETAL: Normal2 = 0.0; for (iDim = 0; iDim < 2; iDim++) Normal2 += coord[iDim] * coord[iDim]; if (marker_flag == OUTFLOW) { @@ -5814,7 +5814,7 @@ void CPhysicalGeometry::UpdateTurboVertex(CConfig* config, unsigned short val_iZ TurboNormal[2] = 0.0; } break; - case AXIAL: + case TURBOMACHINERY_TYPE::AXIAL: Normal2 = 0.0; for (iDim = 0; iDim < 2; iDim++) Normal2 += coord[iDim] * coord[iDim]; if (nDim == 3) { @@ -5840,7 +5840,7 @@ void CPhysicalGeometry::UpdateTurboVertex(CConfig* config, unsigned short val_iZ } break; - case CENTRIPETAL_AXIAL: + case TURBOMACHINERY_TYPE::CENTRIPETAL_AXIAL: Normal2 = 0.0; for (iDim = 0; iDim < 2; iDim++) Normal2 += coord[iDim] * coord[iDim]; if (marker_flag == INFLOW) { @@ -5854,7 +5854,7 @@ void CPhysicalGeometry::UpdateTurboVertex(CConfig* config, unsigned short val_iZ } break; - case AXIAL_CENTRIFUGAL: + case TURBOMACHINERY_TYPE::AXIAL_CENTRIFUGAL: Normal2 = 0.0; for (iDim = 0; iDim < 2; iDim++) Normal2 += coord[iDim] * coord[iDim]; if (marker_flag == INFLOW) { @@ -6030,8 +6030,8 @@ void CPhysicalGeometry::SetAvgTurboValue(CConfig* config, unsigned short val_iZo AverageGridVel[iMarker][iSpan][iDim] = TotalGridVel[iDim] / nTotVertexSpan[iMarker][iSpan]; } switch (config->GetKind_TurboMachinery(val_iZone)) { - case CENTRIFUGAL: - case CENTRIPETAL: + case TURBOMACHINERY_TYPE::CENTRIFUGAL: + case TURBOMACHINERY_TYPE::CENTRIPETAL: if (marker_flag == INFLOW) { AverageTangGridVel[iMarker][iSpan] = -(AverageTurboNormal[iMarker][iSpan][0] * AverageGridVel[iMarker][iSpan][1] - @@ -6042,7 +6042,7 @@ void CPhysicalGeometry::SetAvgTurboValue(CConfig* config, unsigned short val_iZo AverageTurboNormal[iMarker][iSpan][1] * AverageGridVel[iMarker][iSpan][0]; } break; - case AXIAL: + case TURBOMACHINERY_TYPE::AXIAL: if (marker_flag == INFLOW && nDim == 2) { AverageTangGridVel[iMarker][iSpan] = -AverageTurboNormal[iMarker][iSpan][0] * AverageGridVel[iMarker][iSpan][1] + @@ -6053,7 +6053,7 @@ void CPhysicalGeometry::SetAvgTurboValue(CConfig* config, unsigned short val_iZo AverageTurboNormal[iMarker][iSpan][1] * AverageGridVel[iMarker][iSpan][0]; } break; - case CENTRIPETAL_AXIAL: + case TURBOMACHINERY_TYPE::CENTRIPETAL_AXIAL: if (marker_flag == OUTFLOW) { AverageTangGridVel[iMarker][iSpan] = (AverageTurboNormal[iMarker][iSpan][0] * AverageGridVel[iMarker][iSpan][1] - @@ -6064,7 +6064,7 @@ void CPhysicalGeometry::SetAvgTurboValue(CConfig* config, unsigned short val_iZo AverageTurboNormal[iMarker][iSpan][1] * AverageGridVel[iMarker][iSpan][0]); } break; - case AXIAL_CENTRIFUGAL: + case TURBOMACHINERY_TYPE::AXIAL_CENTRIFUGAL: if (marker_flag == INFLOW) { AverageTangGridVel[iMarker][iSpan] = AverageTurboNormal[iMarker][iSpan][0] * AverageGridVel[iMarker][iSpan][1] - @@ -6289,7 +6289,7 @@ void CPhysicalGeometry::GatherInOutAverageValues(CConfig* config, bool allocate) if (iSpan == nSpanWiseSections) { config->SetFreeStreamTurboNormal(turboNormal); - if (config->GetKind_TurboMachinery(config->GetiZone()) == AXIAL && nDim == 2) { + if (config->GetKind_TurboMachinery(config->GetiZone()) == TURBOMACHINERY_TYPE::AXIAL && nDim == 2) { nBlades = 1 / Pitch; } else { nBlades = 2 * PI_NUMBER / Pitch; @@ -6311,6 +6311,21 @@ void CPhysicalGeometry::GatherInOutAverageValues(CConfig* config, bool allocate) delete[] turboNormal; } +void CPhysicalGeometry::SetAvgTurboGeoValues(const CConfig* donor_config, CGeometry* donor_geometry, + unsigned short donorZone) { + unsigned short iSpan; + unsigned short nSpanMaxAllZones = donor_config->GetnSpanMaxAllZones(); + + for (iSpan = 0; iSpan < nSpanMaxAllZones + 1; iSpan++) { + SetTurboRadiusIn(donor_geometry->GetTurboRadiusIn(donorZone, iSpan), donorZone, iSpan); + SetSpanAreaIn(donor_geometry->GetSpanAreaIn(donorZone, iSpan), donorZone, iSpan); + SetTangGridVelIn(donor_geometry->GetTangGridVelIn(donorZone, iSpan), donorZone, iSpan); + SetTurboRadiusOut(donor_geometry->GetTurboRadiusOut(donorZone, iSpan), donorZone, iSpan); + SetSpanAreaOut(donor_geometry->GetSpanAreaOut(donorZone, iSpan), donorZone, iSpan); + SetTangGridVelOut(donor_geometry->GetTangGridVelOut(donorZone, iSpan), donorZone, iSpan); + } +} + void CPhysicalGeometry::SetMaxLength(CConfig* config) { SU2_OMP_FOR_STAT(roundUpDiv(nPointDomain, omp_get_max_threads())) for (unsigned long iPoint = 0; iPoint < nPointDomain; iPoint++) { diff --git a/Common/src/geometry/dual_grid/CDualGrid.cpp b/Common/src/geometry/dual_grid/CDualGrid.cpp index 4019695ed9d..d7b9e8e9f82 100644 --- a/Common/src/geometry/dual_grid/CDualGrid.cpp +++ b/Common/src/geometry/dual_grid/CDualGrid.cpp @@ -2,14 +2,14 @@ * \file CDualGrid.cpp * \brief Main classes for defining the dual grid * \author F. Palacios, T. Economon - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/src/geometry/dual_grid/CEdge.cpp b/Common/src/geometry/dual_grid/CEdge.cpp index 92cf493e36f..9d6240a0c2e 100644 --- a/Common/src/geometry/dual_grid/CEdge.cpp +++ b/Common/src/geometry/dual_grid/CEdge.cpp @@ -2,14 +2,14 @@ * \file CEdge.cpp * \brief Implementation of the edge class. * \author F. Palacios, T. Economon - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/src/geometry/dual_grid/CPoint.cpp b/Common/src/geometry/dual_grid/CPoint.cpp index e47de05486c..f11b7dd8945 100644 --- a/Common/src/geometry/dual_grid/CPoint.cpp +++ b/Common/src/geometry/dual_grid/CPoint.cpp @@ -2,14 +2,14 @@ * \file CPoint.cpp * \brief Main classes for defining the points of the dual grid * \author F. Palacios, T. Economon - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/src/geometry/dual_grid/CTurboVertex.cpp b/Common/src/geometry/dual_grid/CTurboVertex.cpp index 8a036cd90aa..5c931cf5438 100644 --- a/Common/src/geometry/dual_grid/CTurboVertex.cpp +++ b/Common/src/geometry/dual_grid/CTurboVertex.cpp @@ -2,14 +2,14 @@ * \file CTurboVertex.cpp * \brief Main classes for defining the turbo vertices of the dual grid * \author F. Palacios, T. Economon - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/src/geometry/dual_grid/CVertex.cpp b/Common/src/geometry/dual_grid/CVertex.cpp index 1879f66106f..9423f2444a7 100644 --- a/Common/src/geometry/dual_grid/CVertex.cpp +++ b/Common/src/geometry/dual_grid/CVertex.cpp @@ -2,14 +2,14 @@ * \file CVertex.cpp * \brief Main classes for defining the vertices of the dual grid * \author F. Palacios, T. Economon - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/src/geometry/elements/CElement.cpp b/Common/src/geometry/elements/CElement.cpp index 70ef29f8811..4dc82bcbdc1 100644 --- a/Common/src/geometry/elements/CElement.cpp +++ b/Common/src/geometry/elements/CElement.cpp @@ -2,14 +2,14 @@ * \file CElement.cpp * \brief Definition of the Finite Element structure (elements) * \author R. Sanchez - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/src/geometry/elements/CHEXA8.cpp b/Common/src/geometry/elements/CHEXA8.cpp index fdc2c8773c8..f224f9d4336 100644 --- a/Common/src/geometry/elements/CHEXA8.cpp +++ b/Common/src/geometry/elements/CHEXA8.cpp @@ -2,14 +2,14 @@ * \file CHEXA8.cpp * \brief Definition of 8-node hexa element with 8 Gauss points. * \author R. Sanchez - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/src/geometry/elements/CLINE.cpp b/Common/src/geometry/elements/CLINE.cpp index 77365707589..013bddb1138 100644 --- a/Common/src/geometry/elements/CLINE.cpp +++ b/Common/src/geometry/elements/CLINE.cpp @@ -2,14 +2,14 @@ * \file CLINE.cpp * \brief Definition of the 2-node line element with two Gauss points. * \author T. Dick - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/src/geometry/elements/CPRISM6.cpp b/Common/src/geometry/elements/CPRISM6.cpp index 6e672a41334..7da15e8f459 100644 --- a/Common/src/geometry/elements/CPRISM6.cpp +++ b/Common/src/geometry/elements/CPRISM6.cpp @@ -2,14 +2,14 @@ * \file CPRISM6.cpp * \brief Definition of the 6-node triangular prism element with 6 Gauss points. * \author R. Sanchez - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/src/geometry/elements/CPYRAM5.cpp b/Common/src/geometry/elements/CPYRAM5.cpp index 9bf8ac96947..c1f31a4c562 100644 --- a/Common/src/geometry/elements/CPYRAM5.cpp +++ b/Common/src/geometry/elements/CPYRAM5.cpp @@ -2,14 +2,14 @@ * \file CPYRAM5.cpp * \brief Definition of 5-node pyramid element with 5 Gauss points. * \author R. Sanchez - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/src/geometry/elements/CPYRAM6.cpp b/Common/src/geometry/elements/CPYRAM6.cpp index a216fee8dc4..d50237c9824 100644 --- a/Common/src/geometry/elements/CPYRAM6.cpp +++ b/Common/src/geometry/elements/CPYRAM6.cpp @@ -2,14 +2,14 @@ * \file CPYRAM6.cpp * \brief Definition of 5-node pyramid element with 6 Gauss points. * \author T.Dick - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/src/geometry/elements/CQUAD4.cpp b/Common/src/geometry/elements/CQUAD4.cpp index ab8a2db37bc..588211a0860 100644 --- a/Common/src/geometry/elements/CQUAD4.cpp +++ b/Common/src/geometry/elements/CQUAD4.cpp @@ -2,14 +2,14 @@ * \file CQUAD4.cpp * \brief Definition of the 4-node quadrilateral element with 4 Gauss points. * \author R. Sanchez - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/src/geometry/elements/CTETRA1.cpp b/Common/src/geometry/elements/CTETRA1.cpp index e6b5e8ca395..bca60b148fd 100644 --- a/Common/src/geometry/elements/CTETRA1.cpp +++ b/Common/src/geometry/elements/CTETRA1.cpp @@ -2,14 +2,14 @@ * \file CTETRA1.cpp * \brief Definition of 4-node tetra element with 1 Gauss point. * \author R. Sanchez - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/src/geometry/elements/CTETRA4.cpp b/Common/src/geometry/elements/CTETRA4.cpp index 5138a159ebf..bfa5000b5fa 100644 --- a/Common/src/geometry/elements/CTETRA4.cpp +++ b/Common/src/geometry/elements/CTETRA4.cpp @@ -2,14 +2,14 @@ * \file CTETRA4.cpp * \brief Definition of 4-node tetrahedral element with 4 Gauss point. * \author T. Dick - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/src/geometry/elements/CTRIA1.cpp b/Common/src/geometry/elements/CTRIA1.cpp index e21b31e14cd..8f5ffe9c488 100644 --- a/Common/src/geometry/elements/CTRIA1.cpp +++ b/Common/src/geometry/elements/CTRIA1.cpp @@ -2,14 +2,14 @@ * \file CTRIA1.cpp * \brief Definition of the 3-node triangular element with one Gauss point. * \author R. Sanchez - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/src/geometry/elements/CTRIA3.cpp b/Common/src/geometry/elements/CTRIA3.cpp index 10414b03135..74ba392fd07 100644 --- a/Common/src/geometry/elements/CTRIA3.cpp +++ b/Common/src/geometry/elements/CTRIA3.cpp @@ -2,14 +2,14 @@ * \file CTRIA3.cpp * \brief Definition of the 3-node triangular element with three Gauss points. * \author T. Dick - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/src/geometry/meshreader/CBoxMeshReaderFVM.cpp b/Common/src/geometry/meshreader/CBoxMeshReaderFVM.cpp index edb0ff5ed6f..a2ecea4d894 100644 --- a/Common/src/geometry/meshreader/CBoxMeshReaderFVM.cpp +++ b/Common/src/geometry/meshreader/CBoxMeshReaderFVM.cpp @@ -3,14 +3,14 @@ * \brief Reads a 3D box grid into linear partitions for the * finite volume solver (FVM). * \author T. Economon - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/src/geometry/meshreader/CCGNSMeshReaderFVM.cpp b/Common/src/geometry/meshreader/CCGNSMeshReaderFVM.cpp index a4dc472ee99..5ff6e20db45 100644 --- a/Common/src/geometry/meshreader/CCGNSMeshReaderFVM.cpp +++ b/Common/src/geometry/meshreader/CCGNSMeshReaderFVM.cpp @@ -3,14 +3,14 @@ * \brief Class that reads a single zone of a CGNS mesh file from disk into * linear partitions across all ranks. * \author T. Economon - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/src/geometry/meshreader/CMeshReaderFVM.cpp b/Common/src/geometry/meshreader/CMeshReaderFVM.cpp index d0d2b3ab243..2448345f14a 100644 --- a/Common/src/geometry/meshreader/CMeshReaderFVM.cpp +++ b/Common/src/geometry/meshreader/CMeshReaderFVM.cpp @@ -3,14 +3,14 @@ * \brief Helper class that provides the counts for each rank in a linear * partitioning given the global count as input. * \author T. Economon - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/src/geometry/meshreader/CRectangularMeshReaderFVM.cpp b/Common/src/geometry/meshreader/CRectangularMeshReaderFVM.cpp index b14a2ded97b..42e08210541 100644 --- a/Common/src/geometry/meshreader/CRectangularMeshReaderFVM.cpp +++ b/Common/src/geometry/meshreader/CRectangularMeshReaderFVM.cpp @@ -3,14 +3,14 @@ * \brief Reads a 2D rectangular grid into linear partitions for the * finite volume solver (FVM). * \author T. Economon - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/src/geometry/meshreader/CSU2ASCIIMeshReaderFVM.cpp b/Common/src/geometry/meshreader/CSU2ASCIIMeshReaderFVM.cpp index 65daf489737..9be5dfbc053 100644 --- a/Common/src/geometry/meshreader/CSU2ASCIIMeshReaderFVM.cpp +++ b/Common/src/geometry/meshreader/CSU2ASCIIMeshReaderFVM.cpp @@ -3,14 +3,14 @@ * \brief Reads a native SU2 ASCII grid into linear partitions for the * finite volume solver (FVM). * \author T. Economon - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/src/geometry/primal_grid/CHexahedron.cpp b/Common/src/geometry/primal_grid/CHexahedron.cpp index ea428ba4e8e..bc479ad2afb 100644 --- a/Common/src/geometry/primal_grid/CHexahedron.cpp +++ b/Common/src/geometry/primal_grid/CHexahedron.cpp @@ -2,14 +2,14 @@ * \file CHexahedron.cpp * \brief Main classes for defining the primal grid elements * \author F. Palacios - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/src/geometry/primal_grid/CLine.cpp b/Common/src/geometry/primal_grid/CLine.cpp index b12156fdb80..c567219bb30 100644 --- a/Common/src/geometry/primal_grid/CLine.cpp +++ b/Common/src/geometry/primal_grid/CLine.cpp @@ -2,14 +2,14 @@ * \file CLine.cpp * \brief Main classes for defining the primal grid elements * \author F. Palacios - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/src/geometry/primal_grid/CPrimalGrid.cpp b/Common/src/geometry/primal_grid/CPrimalGrid.cpp index 0469f88e002..829a6d8cacb 100644 --- a/Common/src/geometry/primal_grid/CPrimalGrid.cpp +++ b/Common/src/geometry/primal_grid/CPrimalGrid.cpp @@ -2,14 +2,14 @@ * \file CPrimalGrid.cpp * \brief Main classes for defining the primal grid elements * \author F. Palacios - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/src/geometry/primal_grid/CPrimalGridBoundFEM.cpp b/Common/src/geometry/primal_grid/CPrimalGridBoundFEM.cpp index 7590322ff59..a36e7a21782 100644 --- a/Common/src/geometry/primal_grid/CPrimalGridBoundFEM.cpp +++ b/Common/src/geometry/primal_grid/CPrimalGridBoundFEM.cpp @@ -2,14 +2,14 @@ * \file CPrimalGridBoundFEM.cpp * \brief Main classes for defining the primal grid elements * \author F. Palacios - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/src/geometry/primal_grid/CPrimalGridFEM.cpp b/Common/src/geometry/primal_grid/CPrimalGridFEM.cpp index fead2a175e7..13eca23441a 100644 --- a/Common/src/geometry/primal_grid/CPrimalGridFEM.cpp +++ b/Common/src/geometry/primal_grid/CPrimalGridFEM.cpp @@ -2,14 +2,14 @@ * \file CPrimalGridFEM.cpp * \brief Main classes for defining the primal grid elements * \author F. Palacios - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/src/geometry/primal_grid/CPrism.cpp b/Common/src/geometry/primal_grid/CPrism.cpp index 4b39798dabb..a34fd6f312a 100644 --- a/Common/src/geometry/primal_grid/CPrism.cpp +++ b/Common/src/geometry/primal_grid/CPrism.cpp @@ -2,14 +2,14 @@ * \file CPrism.cpp * \brief Main classes for defining the primal grid elements * \author F. Palacios - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/src/geometry/primal_grid/CPyramid.cpp b/Common/src/geometry/primal_grid/CPyramid.cpp index 76c4b28d77f..395aab2ba3b 100644 --- a/Common/src/geometry/primal_grid/CPyramid.cpp +++ b/Common/src/geometry/primal_grid/CPyramid.cpp @@ -2,14 +2,14 @@ * \file CPyramid.cpp * \brief Main classes for defining the primal grid elements * \author F. Palacios - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/src/geometry/primal_grid/CQuadrilateral.cpp b/Common/src/geometry/primal_grid/CQuadrilateral.cpp index 7e3372524fd..fa18ba61572 100644 --- a/Common/src/geometry/primal_grid/CQuadrilateral.cpp +++ b/Common/src/geometry/primal_grid/CQuadrilateral.cpp @@ -2,14 +2,14 @@ * \file CQuadrilateral.cpp * \brief Main classes for defining the primal grid elements * \author F. Palacios - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/src/geometry/primal_grid/CTetrahedron.cpp b/Common/src/geometry/primal_grid/CTetrahedron.cpp index 83a8c849b11..e7c6b09a9c4 100644 --- a/Common/src/geometry/primal_grid/CTetrahedron.cpp +++ b/Common/src/geometry/primal_grid/CTetrahedron.cpp @@ -2,14 +2,14 @@ * \file CTetrahedron.cpp * \brief Main classes for defining the primal grid elements * \author F. Palacios - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/src/geometry/primal_grid/CTriangle.cpp b/Common/src/geometry/primal_grid/CTriangle.cpp index 2228cfc301f..326a1bf9464 100644 --- a/Common/src/geometry/primal_grid/CTriangle.cpp +++ b/Common/src/geometry/primal_grid/CTriangle.cpp @@ -2,14 +2,14 @@ * \file CTriangle.cpp * \brief Main classes for defining the primal grid elements * \author F. Palacios - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/src/geometry/primal_grid/CVertexMPI.cpp b/Common/src/geometry/primal_grid/CVertexMPI.cpp index 04baff89669..a1ce2de1b10 100644 --- a/Common/src/geometry/primal_grid/CVertexMPI.cpp +++ b/Common/src/geometry/primal_grid/CVertexMPI.cpp @@ -2,14 +2,14 @@ * \file CVertexMPI.cpp * \brief Main classes for defining the primal grid elements * \author F. Palacios - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/src/graph_coloring_structure.cpp b/Common/src/graph_coloring_structure.cpp index bdace7733b4..5ae2efefc8a 100644 --- a/Common/src/graph_coloring_structure.cpp +++ b/Common/src/graph_coloring_structure.cpp @@ -2,14 +2,14 @@ * \file graph_coloring_structure.cpp * \brief Functions used to carry out the coloring of a given graph. * \author E. van der Weide - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/src/grid_movement/CBSplineBlending.cpp b/Common/src/grid_movement/CBSplineBlending.cpp index e5b38aab3fa..e7f79e6bf9c 100644 --- a/Common/src/grid_movement/CBSplineBlending.cpp +++ b/Common/src/grid_movement/CBSplineBlending.cpp @@ -2,14 +2,14 @@ * \file CBSplineBlending.cpp * \brief Subroutines for B-Spline blening for FFDs * \author F. Palacios, T. Economon, S. Padron - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/src/grid_movement/CBezierBlending.cpp b/Common/src/grid_movement/CBezierBlending.cpp index ceabd8eb51f..e3440d61fd8 100644 --- a/Common/src/grid_movement/CBezierBlending.cpp +++ b/Common/src/grid_movement/CBezierBlending.cpp @@ -2,14 +2,14 @@ * \file CBezierBlending.cpp * \brief Subroutines for Bezier blending for FFDs * \author F. Palacios, T. Economon, S. Padron - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/src/grid_movement/CFreeFormBlending.cpp b/Common/src/grid_movement/CFreeFormBlending.cpp index c71ef32d259..78cffdc6f83 100644 --- a/Common/src/grid_movement/CFreeFormBlending.cpp +++ b/Common/src/grid_movement/CFreeFormBlending.cpp @@ -2,14 +2,14 @@ * \file CFreeFormBlending.cpp * \brief Parent class for FFD Blending functions * \author F. Palacios, T. Economon, S. Padron - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/src/grid_movement/CFreeFormDefBox.cpp b/Common/src/grid_movement/CFreeFormDefBox.cpp index 34c97605797..78e4b384c9f 100644 --- a/Common/src/grid_movement/CFreeFormDefBox.cpp +++ b/Common/src/grid_movement/CFreeFormDefBox.cpp @@ -2,14 +2,14 @@ * \file CFreeFormDefBox.cpp * \brief Subroutines for handling Free-Form Deformation Boxes * \author F. Palacios, T. Economon, S. Padron - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/src/grid_movement/CGridMovement.cpp b/Common/src/grid_movement/CGridMovement.cpp index f02bb94d552..f055d0a2d25 100644 --- a/Common/src/grid_movement/CGridMovement.cpp +++ b/Common/src/grid_movement/CGridMovement.cpp @@ -2,14 +2,14 @@ * \file CGridMovement.cpp * \brief Parent class for grid movement classes * \author F. Palacios, T. Economon, S. Padron - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/src/grid_movement/CSurfaceMovement.cpp b/Common/src/grid_movement/CSurfaceMovement.cpp index ea9dc6f374c..59b0cf7bfe8 100644 --- a/Common/src/grid_movement/CSurfaceMovement.cpp +++ b/Common/src/grid_movement/CSurfaceMovement.cpp @@ -2,14 +2,14 @@ * \file CSurfaceMovement.cpp * \brief Subroutines for moving mesh surface elements * \author F. Palacios, T. Economon, S. Padron - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -556,7 +556,8 @@ vector > CSurfaceMovement::SetSurface_Deformation(CGeometry* g else if ((config->GetDesign_Variable(0) == ROTATION) || (config->GetDesign_Variable(0) == TRANSLATION) || (config->GetDesign_Variable(0) == SCALE) || (config->GetDesign_Variable(0) == HICKS_HENNE) || - (config->GetDesign_Variable(0) == SURFACE_BUMP) || (config->GetDesign_Variable(0) == ANGLE_OF_ATTACK)) { + (config->GetDesign_Variable(0) == SURFACE_BUMP) || (config->GetDesign_Variable(0) == ANGLE_OF_ATTACK) || + (config->GetDesign_Variable(0) == CST)) { /*--- Apply rotation, displacement and stretching design variables (this should be done before the bump function design variables) ---*/ @@ -586,6 +587,14 @@ vector > CSurfaceMovement::SetSurface_Deformation(CGeometry* g /*--- Apply the design variables to the control point position ---*/ + for (iDV = 0; iDV < config->GetnDV(); iDV++) { + if (config->GetDesign_Variable(iDV) == CST) { + SetCST(geometry, config, iDV, false); + } + } + + /*--- Apply the design variables to the control point position ---*/ + for (iDV = 0; iDV < config->GetnDV(); iDV++) { switch (config->GetDesign_Variable(iDV)) { case SURFACE_BUMP: diff --git a/Common/src/grid_movement/CVolumetricMovement.cpp b/Common/src/grid_movement/CVolumetricMovement.cpp index 89199a0650b..5b09a9cdd71 100644 --- a/Common/src/grid_movement/CVolumetricMovement.cpp +++ b/Common/src/grid_movement/CVolumetricMovement.cpp @@ -2,14 +2,14 @@ * \file CVolumetricMovement.cpp * \brief Subroutines for moving mesh volume elements * \author F. Palacios, T. Economon, S. Padron - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/src/interface_interpolation/CInterpolator.cpp b/Common/src/interface_interpolation/CInterpolator.cpp index 3d903a0e668..a9fac5a343a 100644 --- a/Common/src/interface_interpolation/CInterpolator.cpp +++ b/Common/src/interface_interpolation/CInterpolator.cpp @@ -2,14 +2,14 @@ * \file CInterpolator.cpp * \brief Definition of the base class for interface interpolation. * \author H. Kline - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/src/interface_interpolation/CInterpolatorFactory.cpp b/Common/src/interface_interpolation/CInterpolatorFactory.cpp index 09c0701aa9c..c7a077bbdd2 100644 --- a/Common/src/interface_interpolation/CInterpolatorFactory.cpp +++ b/Common/src/interface_interpolation/CInterpolatorFactory.cpp @@ -1,14 +1,14 @@ /*! * \file CInterpolatorFactory.cpp * \brief Factory to generate interpolator objects. - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/src/interface_interpolation/CIsoparametric.cpp b/Common/src/interface_interpolation/CIsoparametric.cpp index 54d2397822c..31f1b6ed5f2 100644 --- a/Common/src/interface_interpolation/CIsoparametric.cpp +++ b/Common/src/interface_interpolation/CIsoparametric.cpp @@ -2,14 +2,14 @@ * \file CIsoparametric.cpp * \brief Implementation isoparametric interpolation (using FE shape functions). * \author P. Gomes - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/src/interface_interpolation/CMirror.cpp b/Common/src/interface_interpolation/CMirror.cpp index 664e0db274f..2c6fcfcb6fb 100644 --- a/Common/src/interface_interpolation/CMirror.cpp +++ b/Common/src/interface_interpolation/CMirror.cpp @@ -2,14 +2,14 @@ * \file CMirror.cpp * \brief Implementation of mirror interpolation (conservative approach in FSI problems). * \author P. Gomes - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/src/interface_interpolation/CNearestNeighbor.cpp b/Common/src/interface_interpolation/CNearestNeighbor.cpp index 96b4b894156..82c85aac010 100644 --- a/Common/src/interface_interpolation/CNearestNeighbor.cpp +++ b/Common/src/interface_interpolation/CNearestNeighbor.cpp @@ -2,14 +2,14 @@ * \file CNearestNeighbor.cpp * \brief Implementation of nearest neighbor interpolation. * \author H. Kline - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/src/interface_interpolation/CRadialBasisFunction.cpp b/Common/src/interface_interpolation/CRadialBasisFunction.cpp index 16645017012..a88d057f0ee 100644 --- a/Common/src/interface_interpolation/CRadialBasisFunction.cpp +++ b/Common/src/interface_interpolation/CRadialBasisFunction.cpp @@ -2,14 +2,14 @@ * \file CRadialBasisFunction.cpp * \brief Implementation of RBF interpolation. * \author Joel Ho, P. Gomes - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/src/interface_interpolation/CSlidingMesh.cpp b/Common/src/interface_interpolation/CSlidingMesh.cpp index 25e5570fb2f..0cdcc1f5147 100644 --- a/Common/src/interface_interpolation/CSlidingMesh.cpp +++ b/Common/src/interface_interpolation/CSlidingMesh.cpp @@ -2,14 +2,14 @@ * \file CSlidingMesh.cpp * \brief Implementation of sliding mesh interpolation. * \author H. Kline - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/src/linear_algebra/CPastixWrapper.cpp b/Common/src/linear_algebra/CPastixWrapper.cpp index 72c94288ff0..936e202e5f7 100644 --- a/Common/src/linear_algebra/CPastixWrapper.cpp +++ b/Common/src/linear_algebra/CPastixWrapper.cpp @@ -3,14 +3,14 @@ * \brief An interface to the INRIA solver PaStiX * (http://pastix.gforge.inria.fr/files/README-txt.html) * \author P. Gomes - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/src/linear_algebra/CSysMatrix.cpp b/Common/src/linear_algebra/CSysMatrix.cpp index dd02b4152e6..10747fadbcb 100644 --- a/Common/src/linear_algebra/CSysMatrix.cpp +++ b/Common/src/linear_algebra/CSysMatrix.cpp @@ -2,14 +2,14 @@ * \file CSysMatrix.cpp * \brief Implementation of the sparse matrix class. * \author F. Palacios, A. Bueno, T. Economon, P. Gomes - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/src/linear_algebra/CSysSolve.cpp b/Common/src/linear_algebra/CSysSolve.cpp index 00eef72fdaf..4195e0e2aed 100644 --- a/Common/src/linear_algebra/CSysSolve.cpp +++ b/Common/src/linear_algebra/CSysSolve.cpp @@ -2,14 +2,14 @@ * \file CSysSolve.cpp * \brief Main classes required for solving linear systems of equations * \author J. Hicken, F. Palacios, T. Economon, P. Gomes - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/src/linear_algebra/CSysSolve_b.cpp b/Common/src/linear_algebra/CSysSolve_b.cpp index d02c294e31e..69f69472c3e 100644 --- a/Common/src/linear_algebra/CSysSolve_b.cpp +++ b/Common/src/linear_algebra/CSysSolve_b.cpp @@ -2,14 +2,14 @@ * \file CSysSolve_b.cpp * \brief Routines for the linear solver used in the reverse sweep of AD. * \author T. Albring, J. Blühdorn - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/src/linear_algebra/CSysVector.cpp b/Common/src/linear_algebra/CSysVector.cpp index 353b28ceb34..d33a5863b01 100644 --- a/Common/src/linear_algebra/CSysVector.cpp +++ b/Common/src/linear_algebra/CSysVector.cpp @@ -2,14 +2,14 @@ * \file CSysVector.cpp * \brief Implementation and explicit instantiations of CSysVector. * \author P. Gomes, F. Palacios, J. Hicken, T. Economon - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/src/linear_algebra/blas_structure.cpp b/Common/src/linear_algebra/blas_structure.cpp index 364d027b806..e58e2202c33 100644 --- a/Common/src/linear_algebra/blas_structure.cpp +++ b/Common/src/linear_algebra/blas_structure.cpp @@ -3,14 +3,14 @@ * \brief Implementation of the functions that either simulate BLAS functionality or interface to an actual BLAS implementation. * \author E. van der Weide - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/src/toolboxes/C1DInterpolation.cpp b/Common/src/toolboxes/C1DInterpolation.cpp index eefa193f32f..a39d4f4fc59 100644 --- a/Common/src/toolboxes/C1DInterpolation.cpp +++ b/Common/src/toolboxes/C1DInterpolation.cpp @@ -2,14 +2,14 @@ * \file C1DInterpolation.cpp * \brief Classes for 1D interpolation. * \author Aman Baig, P. Gomes - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/src/toolboxes/CLinearPartitioner.cpp b/Common/src/toolboxes/CLinearPartitioner.cpp index 35bb1ea03d9..a6a0b25de95 100644 --- a/Common/src/toolboxes/CLinearPartitioner.cpp +++ b/Common/src/toolboxes/CLinearPartitioner.cpp @@ -3,14 +3,14 @@ * \brief Helper class that provides the counts for each rank in a linear * partitioning given the global count as input. * \author T. Economon - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/src/toolboxes/CSquareMatrixCM.cpp b/Common/src/toolboxes/CSquareMatrixCM.cpp index 68c5088a8d4..29fb853ea1a 100644 --- a/Common/src/toolboxes/CSquareMatrixCM.cpp +++ b/Common/src/toolboxes/CSquareMatrixCM.cpp @@ -2,14 +2,14 @@ * \file CSquareMatrixCM.cpp * \brief Implementation of dense matrix helper class in Column Major order (see hpp). * \author Edwin van der Weide, Pedro Gomes. - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/src/toolboxes/CSymmetricMatrix.cpp b/Common/src/toolboxes/CSymmetricMatrix.cpp index ccb58c03203..be50c4c2791 100644 --- a/Common/src/toolboxes/CSymmetricMatrix.cpp +++ b/Common/src/toolboxes/CSymmetricMatrix.cpp @@ -2,14 +2,14 @@ * \file CSymmetricMatrix.cpp * \brief Implementation of dense symmetric matrix helper class (see hpp). * \author Joel Ho, P. Gomes - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/src/toolboxes/MMS/CIncTGVSolution.cpp b/Common/src/toolboxes/MMS/CIncTGVSolution.cpp index 53072c921ff..9bf35cb3362 100644 --- a/Common/src/toolboxes/MMS/CIncTGVSolution.cpp +++ b/Common/src/toolboxes/MMS/CIncTGVSolution.cpp @@ -2,14 +2,14 @@ * \file CIncTGVSolution.cpp * \brief Implementations of the member functions of CIncTGVSolution. * \author T. Economon, E. van der Weide - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/src/toolboxes/MMS/CInviscidVortexSolution.cpp b/Common/src/toolboxes/MMS/CInviscidVortexSolution.cpp index 23edb73aead..fc9e42dc628 100644 --- a/Common/src/toolboxes/MMS/CInviscidVortexSolution.cpp +++ b/Common/src/toolboxes/MMS/CInviscidVortexSolution.cpp @@ -2,14 +2,14 @@ * \file CInviscidVortexSolution.cpp * \brief Implementations of the member functions of CInviscidVortexSolution. * \author T. Economon, E. van der Weide - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/src/toolboxes/MMS/CMMSIncEulerSolution.cpp b/Common/src/toolboxes/MMS/CMMSIncEulerSolution.cpp index ad98ffe6d28..c6ddf8ca4a4 100644 --- a/Common/src/toolboxes/MMS/CMMSIncEulerSolution.cpp +++ b/Common/src/toolboxes/MMS/CMMSIncEulerSolution.cpp @@ -2,14 +2,14 @@ * \file CMMSIncEulerSolution.cpp * \brief Implementations of the member functions of CMMSIncEulerSolution. * \author T. Economon, E. van der Weide - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/src/toolboxes/MMS/CMMSIncNSSolution.cpp b/Common/src/toolboxes/MMS/CMMSIncNSSolution.cpp index 9dcb68c3ad1..61ba159a264 100644 --- a/Common/src/toolboxes/MMS/CMMSIncNSSolution.cpp +++ b/Common/src/toolboxes/MMS/CMMSIncNSSolution.cpp @@ -2,14 +2,14 @@ * \file CMMSIncNSSolution.cpp * \brief Implementations of the member functions of CMMSIncNSSolution. * \author T. Economon, E. van der Weide - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/src/toolboxes/MMS/CMMSNSTwoHalfCirclesSolution.cpp b/Common/src/toolboxes/MMS/CMMSNSTwoHalfCirclesSolution.cpp index 9743f45250a..4057cba7c85 100644 --- a/Common/src/toolboxes/MMS/CMMSNSTwoHalfCirclesSolution.cpp +++ b/Common/src/toolboxes/MMS/CMMSNSTwoHalfCirclesSolution.cpp @@ -2,14 +2,14 @@ * \file CMMSNSTwoHalfCirclesSolution.cpp * \brief Implementations of the member functions of CMMSNSTwoHalfCirclesSolution. * \author T. Economon, E. van der Weide - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/src/toolboxes/MMS/CMMSNSTwoHalfSpheresSolution.cpp b/Common/src/toolboxes/MMS/CMMSNSTwoHalfSpheresSolution.cpp index 6b681598c59..3ff44f17fa0 100644 --- a/Common/src/toolboxes/MMS/CMMSNSTwoHalfSpheresSolution.cpp +++ b/Common/src/toolboxes/MMS/CMMSNSTwoHalfSpheresSolution.cpp @@ -2,14 +2,14 @@ * \file CMMSNSTwoHalfSpheresSolution.cpp * \brief Implementations of the member functions of CMMSNSTwoHalfSpheresSolution. * \author T. Economon, E. van der Weide - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/src/toolboxes/MMS/CMMSNSUnitQuadSolution.cpp b/Common/src/toolboxes/MMS/CMMSNSUnitQuadSolution.cpp index aad62acfa8f..e3646dcf645 100644 --- a/Common/src/toolboxes/MMS/CMMSNSUnitQuadSolution.cpp +++ b/Common/src/toolboxes/MMS/CMMSNSUnitQuadSolution.cpp @@ -2,14 +2,14 @@ * \file CMMSNSUnitQuadSolution.cpp * \brief Implementations of the member functions of CMMSNSUnitQuadSolution. * \author T. Economon, E. van der Weide - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/src/toolboxes/MMS/CMMSNSUnitQuadSolutionWallBC.cpp b/Common/src/toolboxes/MMS/CMMSNSUnitQuadSolutionWallBC.cpp index 28a760c1949..a91579eb993 100644 --- a/Common/src/toolboxes/MMS/CMMSNSUnitQuadSolutionWallBC.cpp +++ b/Common/src/toolboxes/MMS/CMMSNSUnitQuadSolutionWallBC.cpp @@ -2,14 +2,14 @@ * \file CMMSNSUnitQuadSolutionWallBC.cpp * \brief Implementations of the member functions of CMMSNSUnitQuadSolutionWallBC. * \author T. Economon, E. van der Weide - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/src/toolboxes/MMS/CNSUnitQuadSolution.cpp b/Common/src/toolboxes/MMS/CNSUnitQuadSolution.cpp index be18f90ab88..9b90807b15e 100644 --- a/Common/src/toolboxes/MMS/CNSUnitQuadSolution.cpp +++ b/Common/src/toolboxes/MMS/CNSUnitQuadSolution.cpp @@ -2,14 +2,14 @@ * \file CNSUnitQuadSolution.cpp * \brief Implementations of the member functions of CNSUnitQuadSolution. * \author T. Economon, E. van der Weide - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/src/toolboxes/MMS/CRinglebSolution.cpp b/Common/src/toolboxes/MMS/CRinglebSolution.cpp index 5c3ead31234..764035b0849 100644 --- a/Common/src/toolboxes/MMS/CRinglebSolution.cpp +++ b/Common/src/toolboxes/MMS/CRinglebSolution.cpp @@ -2,14 +2,14 @@ * \file CRinglebSolution.cpp * \brief Implementations of the member functions of CRinglebSolution. * \author T. Economon, E. van der Weide - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/src/toolboxes/MMS/CTGVSolution.cpp b/Common/src/toolboxes/MMS/CTGVSolution.cpp index 7393d9156fc..9d9932928ff 100644 --- a/Common/src/toolboxes/MMS/CTGVSolution.cpp +++ b/Common/src/toolboxes/MMS/CTGVSolution.cpp @@ -2,14 +2,14 @@ * \file CTGVSolution.cpp * \brief Implementations of the member functions of CTGVSolution. * \author T. Economon, E. van der Weide - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/src/toolboxes/MMS/CUserDefinedSolution.cpp b/Common/src/toolboxes/MMS/CUserDefinedSolution.cpp index 330d0b9b405..d245c9a6bcd 100644 --- a/Common/src/toolboxes/MMS/CUserDefinedSolution.cpp +++ b/Common/src/toolboxes/MMS/CUserDefinedSolution.cpp @@ -2,14 +2,14 @@ * \file CUserDefinedSolution.cpp * \brief Implementations of the member functions of CUserDefinedSolution. * \author T. Economon, E. van der Weide - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/src/toolboxes/MMS/CVerificationSolution.cpp b/Common/src/toolboxes/MMS/CVerificationSolution.cpp index e8fb64035c9..a3630fb825a 100644 --- a/Common/src/toolboxes/MMS/CVerificationSolution.cpp +++ b/Common/src/toolboxes/MMS/CVerificationSolution.cpp @@ -2,14 +2,14 @@ * \file CVerificationSolution.cpp * \brief Implementations of the member functions of CVerificationSolution. * \author T. Economon, E. van der Weide - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/src/toolboxes/MMS/CreateMMSSourceTerms/CMMSIncEulerSolution.py b/Common/src/toolboxes/MMS/CreateMMSSourceTerms/CMMSIncEulerSolution.py index 2bade94d6ed..404106ab1f3 100755 --- a/Common/src/toolboxes/MMS/CreateMMSSourceTerms/CMMSIncEulerSolution.py +++ b/Common/src/toolboxes/MMS/CreateMMSSourceTerms/CMMSIncEulerSolution.py @@ -4,14 +4,14 @@ # \brief Python script that generates the source terms for a # manufactured solution for the incompressible Euler eqns. # \author T. Economon -# \version 8.0.0 "Harrier" +# \version 8.0.1 "Harrier" # # SU2 Project Website: https://su2code.github.io # # The SU2 Project is maintained by the SU2 Foundation # (http://su2foundation.org) # -# Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) +# Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) # # SU2 is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public diff --git a/Common/src/toolboxes/MMS/CreateMMSSourceTerms/CMMSIncNSSolution.py b/Common/src/toolboxes/MMS/CreateMMSSourceTerms/CMMSIncNSSolution.py index 6a89a281d2b..edf12b5e831 100755 --- a/Common/src/toolboxes/MMS/CreateMMSSourceTerms/CMMSIncNSSolution.py +++ b/Common/src/toolboxes/MMS/CreateMMSSourceTerms/CMMSIncNSSolution.py @@ -4,14 +4,14 @@ # \brief Python script that generates the source terms for a # manufactured solution for the incompressible Navier-Stokes eqns. # \author T. Economon -# \version 8.0.0 "Harrier" +# \version 8.0.1 "Harrier" # # SU2 Project Website: https://su2code.github.io # # The SU2 Project is maintained by the SU2 Foundation # (http://su2foundation.org) # -# Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) +# Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) # # SU2 is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public diff --git a/Common/src/toolboxes/printing_toolbox.cpp b/Common/src/toolboxes/printing_toolbox.cpp index 1001754a873..251bb886689 100644 --- a/Common/src/toolboxes/printing_toolbox.cpp +++ b/Common/src/toolboxes/printing_toolbox.cpp @@ -2,14 +2,14 @@ * \file printing_toolbox.cpp * \brief Printing tools * \author T. Albring - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Common/src/wall_model.cpp b/Common/src/wall_model.cpp index bbeb0231652..1f5968bb7cf 100644 --- a/Common/src/wall_model.cpp +++ b/Common/src/wall_model.cpp @@ -3,14 +3,14 @@ * \brief File, which contains the implementation for the wall model functions * for large eddy simulations. * \author E. van der Weide, T. Economon, P. Urbanczyk - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/Docs/docmain.hpp b/Docs/docmain.hpp index 43bcb375f75..96743d0e371 100644 --- a/Docs/docmain.hpp +++ b/Docs/docmain.hpp @@ -2,14 +2,14 @@ * \file docmain.hpp * \brief This file contains documentation for Doxygen and does not have any significance with respect to C++. * \author F. Palacios - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -26,7 +26,7 @@ */ /*! - * \mainpage SU2 version 8.0.0 "Harrier" + * \mainpage SU2 version 8.0.1 "Harrier" * SU2 suite is an open-source collection of C++ based software tools * to perform PDE analysis and PDE constrained optimization. The toolset is designed with * computational fluid dynamics and aerodynamic shape optimization in mind, but is extensible to diff --git a/QuickStart/inv_NACA0012.cfg b/QuickStart/inv_NACA0012.cfg index 36c100c52ed..27047c9f60a 100644 --- a/QuickStart/inv_NACA0012.cfg +++ b/QuickStart/inv_NACA0012.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 2014.06.11 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/README.md b/README.md index 6b6db44446e..dd3b86878a4 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,7 @@

-# SU2 (ver. 8.0.0 "Harrier"): The Open-Source CFD Code +# SU2 (ver. 8.0.1 "Harrier"): The Open-Source CFD Code Computational analysis tools have revolutionized the way we design engineering systems, but most established codes are proprietary, unavailable, or prohibitively expensive for many users. The SU2 team is changing this, making multiphysics analysis and design optimization freely available as open-source software and involving everyone in its creation and development. diff --git a/SU2_CFD/include/CMarkerProfileReaderFVM.hpp b/SU2_CFD/include/CMarkerProfileReaderFVM.hpp index f28a0f0b8a0..3205f7ad731 100644 --- a/SU2_CFD/include/CMarkerProfileReaderFVM.hpp +++ b/SU2_CFD/include/CMarkerProfileReaderFVM.hpp @@ -3,14 +3,14 @@ * \brief Header file for the class CMarkerProfileReaderFVM. * The implementations are in the CMarkerProfileReaderFVM.cpp file. * \author T. Economon - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/include/SU2_CFD.hpp b/SU2_CFD/include/SU2_CFD.hpp index 77d13f58dd7..92a45263657 100644 --- a/SU2_CFD/include/SU2_CFD.hpp +++ b/SU2_CFD/include/SU2_CFD.hpp @@ -3,14 +3,14 @@ * \brief Headers of the main subroutines of the code SU2_CFD. * The subroutines and functions are in the SU2_CFD.cpp file. * \author F. Palacios, T. Economon - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/include/definition_structure.hpp b/SU2_CFD/include/definition_structure.hpp index bf826f6338e..f06947b45de 100644 --- a/SU2_CFD/include/definition_structure.hpp +++ b/SU2_CFD/include/definition_structure.hpp @@ -3,14 +3,14 @@ * \brief Headers of the main subroutines used by SU2_CFD. * The subroutines and functions are in the definition_structure.cpp file. * \author F. Palacios, T. Economon - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/include/drivers/CDiscAdjMultizoneDriver.hpp b/SU2_CFD/include/drivers/CDiscAdjMultizoneDriver.hpp index eeac90dcc11..13da05669bd 100644 --- a/SU2_CFD/include/drivers/CDiscAdjMultizoneDriver.hpp +++ b/SU2_CFD/include/drivers/CDiscAdjMultizoneDriver.hpp @@ -2,14 +2,14 @@ * \class CDiscAdjMultizoneDriver.hpp * \brief Class for driving adjoint multi-zone problems. * \author O. Burghardt, P. Gomes, T. Albring, R. Sanchez - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/include/drivers/CDiscAdjSinglezoneDriver.hpp b/SU2_CFD/include/drivers/CDiscAdjSinglezoneDriver.hpp index d30fc5ac9d2..baeb0f8cf1e 100644 --- a/SU2_CFD/include/drivers/CDiscAdjSinglezoneDriver.hpp +++ b/SU2_CFD/include/drivers/CDiscAdjSinglezoneDriver.hpp @@ -3,14 +3,14 @@ * \brief Headers of the main subroutines for driving single or multi-zone problems. * The subroutines and functions are in the driver_structure.cpp file. * \author T. Economon, H. Kline, R. Sanchez - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -34,7 +34,7 @@ * \ingroup DiscAdj * \brief Class for driving single-zone adjoint solvers. * \author R. Sanchez - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" */ class CDiscAdjSinglezoneDriver : public CSinglezoneDriver { protected: diff --git a/SU2_CFD/include/drivers/CDriver.hpp b/SU2_CFD/include/drivers/CDriver.hpp index 5ac33896849..4d284a56f0c 100644 --- a/SU2_CFD/include/drivers/CDriver.hpp +++ b/SU2_CFD/include/drivers/CDriver.hpp @@ -3,14 +3,14 @@ * \brief Headers of the main subroutines for driving single or multi-zone problems. * The subroutines and functions are in the driver_structure.cpp file. * \author T. Economon, H. Kline, R. Sanchez - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -290,9 +290,10 @@ class CDriver : public CDriverBase { * \param[in] geometry - Geometrical definition of the problem. * \param[in] solver - Container vector with all the solutions. * \param[in] interface - Class defining the physical transfer of information. + * \param[in] dummy - Definition of dummy driver */ void PreprocessTurbomachinery(CConfig** config, CGeometry**** geometry, CSolver***** solver, - CInterface*** interface); + CInterface*** interface, bool dummy); /*! * \brief Ramp some simulation settings for turbomachinery problems. @@ -536,6 +537,24 @@ class CDriver : public CDriverBase { */ void SetRotationRate(passivedouble rot_x, passivedouble rot_y, passivedouble rot_z); + /*! + * \brief Set the moving wall marker rotation rates. + * \param[in] iMaker - Index of moving wall marker. + * \param[in] rot_x - Value of Angular velocity about x-axes. + * \param[in] rot_y - Value of Angular velocity about y-axes. + * \param[in] rot_z - Value of Angular velocity about z-axes. + */ + void SetMarkerRotationRate(unsigned short iMarker, passivedouble rot_x, passivedouble rot_y, passivedouble rot_z); + + /*! + * \brief Set the moving wall marker translation rates. + * \param[in] iMaker - Index of moving wall marker. + * \param[in] vel_x - Value of velocity along x-axis. + * \param[in] vel_y - Value of velocity along y-axis. + * \param[in] vel_z - Value of velocity along z-axis. + */ + void SetMarkerTranslationRate(unsigned short iMarker, passivedouble vel_x, passivedouble vel_y, passivedouble vel_z); + /// \} }; diff --git a/SU2_CFD/include/drivers/CDriverBase.hpp b/SU2_CFD/include/drivers/CDriverBase.hpp index 1aaaed47349..ea29323e189 100644 --- a/SU2_CFD/include/drivers/CDriverBase.hpp +++ b/SU2_CFD/include/drivers/CDriverBase.hpp @@ -2,14 +2,14 @@ * \file CDriverBase.hpp * \brief Base class for all drivers. * \author H. Patel, A. Gastaldi - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/include/drivers/CDummyDriver.hpp b/SU2_CFD/include/drivers/CDummyDriver.hpp index d11c0285e7c..652602b3b89 100644 --- a/SU2_CFD/include/drivers/CDummyDriver.hpp +++ b/SU2_CFD/include/drivers/CDummyDriver.hpp @@ -3,14 +3,14 @@ * \brief Headers of the main subroutines for driving single or multi-zone problems. * The subroutines and functions are in the driver_structure.cpp file. * \author T. Economon, H. Kline, R. Sanchez - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/include/drivers/CMultizoneDriver.hpp b/SU2_CFD/include/drivers/CMultizoneDriver.hpp index 9779f0dc410..23e88879f36 100644 --- a/SU2_CFD/include/drivers/CMultizoneDriver.hpp +++ b/SU2_CFD/include/drivers/CMultizoneDriver.hpp @@ -3,14 +3,14 @@ * \brief Headers of the main subroutines for driving single or multi-zone problems. * The subroutines and functions are in the driver_structure.cpp file. * \author T. Economon, H. Kline, R. Sanchez - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -35,7 +35,7 @@ * \ingroup Drivers * \brief Class for driving zone-specific iterations. * \author R. Sanchez, O. Burghardt - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" */ class CMultizoneDriver : public CDriver { protected: @@ -83,10 +83,6 @@ class CMultizoneDriver : public CDriver { */ bool TransferData(unsigned short donorZone, unsigned short targetZone); - /*! - * \brief Set Mixing Plane interface within multiple zones. - */ - void SetMixingPlane(unsigned short donorZone); /*! * \brief Transfer the local turboperfomance quantities (for each blade row) from all the donorZones to the diff --git a/SU2_CFD/include/drivers/CSinglezoneDriver.hpp b/SU2_CFD/include/drivers/CSinglezoneDriver.hpp index c1292ea6290..626ca3b9b4c 100644 --- a/SU2_CFD/include/drivers/CSinglezoneDriver.hpp +++ b/SU2_CFD/include/drivers/CSinglezoneDriver.hpp @@ -3,14 +3,14 @@ * \brief Headers of the main subroutines for driving single or multi-zone problems. * The subroutines and functions are in the driver_structure.cpp file. * \author T. Economon, H. Kline, R. Sanchez - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -34,7 +34,7 @@ * \ingroup Drivers * \brief Class for driving single-zone solvers. * \author R. Sanchez - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" */ class CSinglezoneDriver : public CDriver { protected: diff --git a/SU2_CFD/include/fluid/CConductivityModel.hpp b/SU2_CFD/include/fluid/CConductivityModel.hpp index 3267ae86468..8c7866d2072 100644 --- a/SU2_CFD/include/fluid/CConductivityModel.hpp +++ b/SU2_CFD/include/fluid/CConductivityModel.hpp @@ -2,14 +2,14 @@ * \file CConductivityModel.hpp * \brief Defines an interface class for thermal conductivity models. * \author S. Vitale, M. Pini, G. Gori, A. Guardone, P. Colonna, T. Economon - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/include/fluid/CConstantConductivity.hpp b/SU2_CFD/include/fluid/CConstantConductivity.hpp index 4fd94570e7f..2e0d23b33f4 100644 --- a/SU2_CFD/include/fluid/CConstantConductivity.hpp +++ b/SU2_CFD/include/fluid/CConstantConductivity.hpp @@ -2,14 +2,14 @@ * \file CConstantConductivity.hpp * \brief Defines a constant laminar thermal conductivity model. * \author S. Vitale, M. Pini, G. Gori, A. Guardone, P. Colonna, T. Economon - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/include/fluid/CConstantConductivityRANS.hpp b/SU2_CFD/include/fluid/CConstantConductivityRANS.hpp index 3a1e2b896c2..8f03972001e 100644 --- a/SU2_CFD/include/fluid/CConstantConductivityRANS.hpp +++ b/SU2_CFD/include/fluid/CConstantConductivityRANS.hpp @@ -2,14 +2,14 @@ * \file CConstantConductivityRANS.hpp * \brief Defines a constant conductivity model for RANS problems. * \author T. Economon - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/include/fluid/CConstantDensity.hpp b/SU2_CFD/include/fluid/CConstantDensity.hpp index 98cdcd37b59..d662025a6e0 100644 --- a/SU2_CFD/include/fluid/CConstantDensity.hpp +++ b/SU2_CFD/include/fluid/CConstantDensity.hpp @@ -2,14 +2,14 @@ * \file CConstantDensity.hpp * \brief Defines the incompressible constant density model. * \author T. Economon - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/include/fluid/CConstantDiffusivity.hpp b/SU2_CFD/include/fluid/CConstantDiffusivity.hpp index 8f88d28c881..d9f5418dedd 100644 --- a/SU2_CFD/include/fluid/CConstantDiffusivity.hpp +++ b/SU2_CFD/include/fluid/CConstantDiffusivity.hpp @@ -2,14 +2,14 @@ * \file CConstantDiffusivity.hpp * \brief Defines constant mass diffusivity. * \author T. Economon, Cristopher Morales Ubal - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/include/fluid/CConstantLewisDiffusivity.hpp b/SU2_CFD/include/fluid/CConstantLewisDiffusivity.hpp index e42c05cbbd0..74d8a42ea62 100644 --- a/SU2_CFD/include/fluid/CConstantLewisDiffusivity.hpp +++ b/SU2_CFD/include/fluid/CConstantLewisDiffusivity.hpp @@ -2,14 +2,14 @@ * \file CConstantLewisDiffusivity.hpp * \brief Defines Constant Lewis mass diffusivity. * \author M.Heimgartner, C.Morales - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/include/fluid/CConstantPrandtl.hpp b/SU2_CFD/include/fluid/CConstantPrandtl.hpp index eef1499e4c1..e55618530d5 100644 --- a/SU2_CFD/include/fluid/CConstantPrandtl.hpp +++ b/SU2_CFD/include/fluid/CConstantPrandtl.hpp @@ -2,14 +2,14 @@ * \file CConstantPrandtl.hpp * \brief Defines a non-constant laminar Prandtl number thermal conductivity model. * \author S. Vitale, M. Pini, G. Gori, A. Guardone, P. Colonna, T. Economon - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/include/fluid/CConstantPrandtlRANS.hpp b/SU2_CFD/include/fluid/CConstantPrandtlRANS.hpp index 2a966a3cc8e..c1f1befb535 100644 --- a/SU2_CFD/include/fluid/CConstantPrandtlRANS.hpp +++ b/SU2_CFD/include/fluid/CConstantPrandtlRANS.hpp @@ -2,14 +2,14 @@ * \file CConstantPrandtlRANS.hpp * \brief Defines a non-constant effective thermal conductivity for RANS problems using Prandtl numbers. * \author S. Vitale, M. Pini, G. Gori, A. Guardone, P. Colonna, T. Economon - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/include/fluid/CConstantSchmidt.hpp b/SU2_CFD/include/fluid/CConstantSchmidt.hpp index a888089ca31..420972a6d27 100644 --- a/SU2_CFD/include/fluid/CConstantSchmidt.hpp +++ b/SU2_CFD/include/fluid/CConstantSchmidt.hpp @@ -2,14 +2,14 @@ * \file CConstantSchmidt.hpp * \brief Defines a mass diffusivity model with constant Schmidt numbers. * \author S. Vitale, M. Pini, G. Gori, A. Guardone, P. Colonna, T. Economon - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/include/fluid/CConstantViscosity.hpp b/SU2_CFD/include/fluid/CConstantViscosity.hpp index 187cbae36fc..e2bcd1663dc 100644 --- a/SU2_CFD/include/fluid/CConstantViscosity.hpp +++ b/SU2_CFD/include/fluid/CConstantViscosity.hpp @@ -2,14 +2,14 @@ * \file CConstantViscosity.hpp * \brief Defines a constant laminar viscosity model. * \author S. Vitale, M. Pini, G. Gori, A. Guardone, P. Colonna, T. Economon - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/include/fluid/CCoolProp.hpp b/SU2_CFD/include/fluid/CCoolProp.hpp index 76550e9302c..ab4fed6a832 100644 --- a/SU2_CFD/include/fluid/CCoolProp.hpp +++ b/SU2_CFD/include/fluid/CCoolProp.hpp @@ -2,14 +2,14 @@ * \file CCoolProp.hpp * \brief Defines the state-of-the-art fluid model from CoolProp library. * \author P. Yan, G. Gori, A. Guardone - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/include/fluid/CCoolPropConductivity.hpp b/SU2_CFD/include/fluid/CCoolPropConductivity.hpp index 66f8e9d8f5b..df965b52bde 100644 --- a/SU2_CFD/include/fluid/CCoolPropConductivity.hpp +++ b/SU2_CFD/include/fluid/CCoolPropConductivity.hpp @@ -2,14 +2,14 @@ * \file CCoolPropConductivity.hpp * \brief Defines laminar thermal conductivity model from CoolProp. * \author P.YAn, G. Gori, A. Guardone - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/include/fluid/CCoolPropViscosity.hpp b/SU2_CFD/include/fluid/CCoolPropViscosity.hpp index 89e8a5ef430..2e66dc2be88 100644 --- a/SU2_CFD/include/fluid/CCoolPropViscosity.hpp +++ b/SU2_CFD/include/fluid/CCoolPropViscosity.hpp @@ -2,14 +2,14 @@ * \file CCoolPropViscosity.hpp * \brief Defines CoolPropviscosity model. * \author P.Yan, G. Gori, A. Guardone, - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/include/fluid/CDataDrivenFluid.hpp b/SU2_CFD/include/fluid/CDataDrivenFluid.hpp index 6c067bc92aa..57ffca7cc88 100644 --- a/SU2_CFD/include/fluid/CDataDrivenFluid.hpp +++ b/SU2_CFD/include/fluid/CDataDrivenFluid.hpp @@ -3,14 +3,14 @@ * \brief Defines a template fluid model class using multilayer perceptrons * for theromodynamic state definition * \author E.C.Bunschoten - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/include/fluid/CDiffusivityModel.hpp b/SU2_CFD/include/fluid/CDiffusivityModel.hpp index b02b7ea95e0..7355309414a 100644 --- a/SU2_CFD/include/fluid/CDiffusivityModel.hpp +++ b/SU2_CFD/include/fluid/CDiffusivityModel.hpp @@ -2,14 +2,14 @@ * \file CDiffusivityModel.hpp * \brief Interface class for defining mass diffusivity models. * \author T. Economon, C. Morales - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/include/fluid/CFluidFlamelet.hpp b/SU2_CFD/include/fluid/CFluidFlamelet.hpp index 9520a432a44..b066b2d0353 100644 --- a/SU2_CFD/include/fluid/CFluidFlamelet.hpp +++ b/SU2_CFD/include/fluid/CFluidFlamelet.hpp @@ -2,14 +2,14 @@ * \file CFluidFlamelet.hpp * \brief Defines the flamelet fluid model * \author D. Mayer, T. Economon, N. Beishuizen, E. Bunschoten - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/include/fluid/CFluidModel.hpp b/SU2_CFD/include/fluid/CFluidModel.hpp index 682e4366b49..7fc767b17d2 100644 --- a/SU2_CFD/include/fluid/CFluidModel.hpp +++ b/SU2_CFD/include/fluid/CFluidModel.hpp @@ -2,14 +2,14 @@ * \file CFluidModel.hpp * \brief Defines the main fluid model class for thermophysical properties. * \author S. Vitale, G. Gori, M. Pini, A. Guardone, P. Colonna, T. Economon - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/include/fluid/CFluidScalar.hpp b/SU2_CFD/include/fluid/CFluidScalar.hpp index d530de01f35..9f5c9108c51 100644 --- a/SU2_CFD/include/fluid/CFluidScalar.hpp +++ b/SU2_CFD/include/fluid/CFluidScalar.hpp @@ -2,14 +2,14 @@ * \file CFluidScalar.hpp * \brief Defines the multicomponent incompressible Ideal Gas model for mixtures. * \author T. Economon, Mark Heimgartner, Cristopher Morales Ubal - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/include/fluid/CIdealGas.hpp b/SU2_CFD/include/fluid/CIdealGas.hpp index de6044961a7..0caad89c4b3 100644 --- a/SU2_CFD/include/fluid/CIdealGas.hpp +++ b/SU2_CFD/include/fluid/CIdealGas.hpp @@ -2,14 +2,14 @@ * \file CIdealGas.hpp * \brief Defines the ideal gas model. * \author S. Vitale, G. Gori, M. Pini, A. Guardone, P. Colonna - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/include/fluid/CIncIdealGas.hpp b/SU2_CFD/include/fluid/CIncIdealGas.hpp index 2b51afc3f45..6bc359e0f94 100644 --- a/SU2_CFD/include/fluid/CIncIdealGas.hpp +++ b/SU2_CFD/include/fluid/CIncIdealGas.hpp @@ -2,14 +2,14 @@ * \file CIncIdealGas.hpp * \brief Defines the incompressible Ideal Gas model. * \author T. Economon - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/include/fluid/CIncIdealGasPolynomial.hpp b/SU2_CFD/include/fluid/CIncIdealGasPolynomial.hpp index 8c7ab29bb66..62bf3193b33 100644 --- a/SU2_CFD/include/fluid/CIncIdealGasPolynomial.hpp +++ b/SU2_CFD/include/fluid/CIncIdealGasPolynomial.hpp @@ -2,14 +2,14 @@ * \file CIncIdealGasPolynomial.hpp * \brief Defines the incompressible Ideal Gas model with polynomial Cp. * \author T. Economon - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/include/fluid/CMutationTCLib.hpp b/SU2_CFD/include/fluid/CMutationTCLib.hpp index 071658e50ce..c8b39b94916 100644 --- a/SU2_CFD/include/fluid/CMutationTCLib.hpp +++ b/SU2_CFD/include/fluid/CMutationTCLib.hpp @@ -2,14 +2,14 @@ * \file CMutationTCLib.hpp * \brief Defines the class for the link to Mutation++ ThermoChemistry library. * \author C. Garbacz - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/include/fluid/CNEMOGas.hpp b/SU2_CFD/include/fluid/CNEMOGas.hpp index 038ce2ca6b3..631a3d49d90 100644 --- a/SU2_CFD/include/fluid/CNEMOGas.hpp +++ b/SU2_CFD/include/fluid/CNEMOGas.hpp @@ -2,14 +2,14 @@ * \file CNEMOGas.hpp * \brief Defines the nonequilibrium gas model. * \author C. Garbacz, W. Maier, S. R. Copeland - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/include/fluid/CPengRobinson.hpp b/SU2_CFD/include/fluid/CPengRobinson.hpp index cdd836d835e..f16df3cacdf 100644 --- a/SU2_CFD/include/fluid/CPengRobinson.hpp +++ b/SU2_CFD/include/fluid/CPengRobinson.hpp @@ -2,14 +2,14 @@ * \file CPengRobinson.hpp * \brief Defines the Peng-Robinson model. * \author S. Vitale, G. Gori, M. Pini, A. Guardone, P. Colonna - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/include/fluid/CPolynomialConductivity.hpp b/SU2_CFD/include/fluid/CPolynomialConductivity.hpp index 2b016e39f69..09ae993cc81 100644 --- a/SU2_CFD/include/fluid/CPolynomialConductivity.hpp +++ b/SU2_CFD/include/fluid/CPolynomialConductivity.hpp @@ -2,14 +2,14 @@ * \file CPolynomialConductivity.hpp * \brief Defines a non-constant laminar thermal conductivity using a polynomial function of temperature. * \author T. Economon - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/include/fluid/CPolynomialConductivityRANS.hpp b/SU2_CFD/include/fluid/CPolynomialConductivityRANS.hpp index a58587a4a74..a6cd95dca80 100644 --- a/SU2_CFD/include/fluid/CPolynomialConductivityRANS.hpp +++ b/SU2_CFD/include/fluid/CPolynomialConductivityRANS.hpp @@ -3,14 +3,14 @@ * \brief Defines a non-constant thermal conductivity using a polynomial function of temperature * for RANS problems with the addition of a turbulent component based on a turbulent Prandtl number. * \author T. Economon - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/include/fluid/CPolynomialViscosity.hpp b/SU2_CFD/include/fluid/CPolynomialViscosity.hpp index 7742458c163..63d0cb97bd9 100644 --- a/SU2_CFD/include/fluid/CPolynomialViscosity.hpp +++ b/SU2_CFD/include/fluid/CPolynomialViscosity.hpp @@ -2,14 +2,14 @@ * \file CPolynomialViscosity.hpp * \brief Defines a laminar viscosity model as a polynomial function of temperature. * \author T. Economon - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/include/fluid/CSU2TCLib.hpp b/SU2_CFD/include/fluid/CSU2TCLib.hpp index 3200ab9554e..b63aa9a2cf6 100644 --- a/SU2_CFD/include/fluid/CSU2TCLib.hpp +++ b/SU2_CFD/include/fluid/CSU2TCLib.hpp @@ -2,14 +2,14 @@ * \file CSU2TCLib.hpp * \brief Defines the classes for different user defined ThermoChemistry libraries. * \author C. Garbacz, W. Maier, S. R. Copeland - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/include/fluid/CSutherland.hpp b/SU2_CFD/include/fluid/CSutherland.hpp index 74050242138..6ab2d1e21b6 100644 --- a/SU2_CFD/include/fluid/CSutherland.hpp +++ b/SU2_CFD/include/fluid/CSutherland.hpp @@ -2,14 +2,14 @@ * \file CSutherland.hpp * \brief Defines Sutherland's Law for laminar viscosity. * \author S. Vitale, M. Pini, G. Gori, A. Guardone, P. Colonna, T. Economon - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/include/fluid/CVanDerWaalsGas.hpp b/SU2_CFD/include/fluid/CVanDerWaalsGas.hpp index 83279025158..30f63deadc9 100644 --- a/SU2_CFD/include/fluid/CVanDerWaalsGas.hpp +++ b/SU2_CFD/include/fluid/CVanDerWaalsGas.hpp @@ -2,14 +2,14 @@ * \file CVanDerWaalsGas.hpp * \brief Declaration of the Polytropic Van der Waals model. * \author S. Vitale, G. Gori, M. Pini, A. Guardone, P. Colonna - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/include/fluid/CViscosityModel.hpp b/SU2_CFD/include/fluid/CViscosityModel.hpp index cc5c46541be..6b8fa253e62 100644 --- a/SU2_CFD/include/fluid/CViscosityModel.hpp +++ b/SU2_CFD/include/fluid/CViscosityModel.hpp @@ -2,14 +2,14 @@ * \file CViscosityModel.hpp * \brief Interface class for defining laminar viscosity models. * \author S. Vitale, M. Pini, G. Gori, A. Guardone, P. Colonna, T. Economon - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/include/gradients/computeGradientsGreenGauss.hpp b/SU2_CFD/include/gradients/computeGradientsGreenGauss.hpp index d2e3762997f..5d0abbb8537 100644 --- a/SU2_CFD/include/gradients/computeGradientsGreenGauss.hpp +++ b/SU2_CFD/include/gradients/computeGradientsGreenGauss.hpp @@ -4,14 +4,14 @@ * \note This allows the same implementation to be used for conservative * and primitive variables of any solver. * \author P. Gomes - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/include/gradients/computeGradientsLeastSquares.hpp b/SU2_CFD/include/gradients/computeGradientsLeastSquares.hpp index da6b6f08327..29daee7f06e 100644 --- a/SU2_CFD/include/gradients/computeGradientsLeastSquares.hpp +++ b/SU2_CFD/include/gradients/computeGradientsLeastSquares.hpp @@ -3,14 +3,14 @@ * \brief Generic implementation of Least-Squares gradient computation. * \note This allows the same implementation to be used for conservative * and primitive variables of any solver. - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/include/integration/CFEM_DG_Integration.hpp b/SU2_CFD/include/integration/CFEM_DG_Integration.hpp index b0679c118b0..1b1395f8ca5 100644 --- a/SU2_CFD/include/integration/CFEM_DG_Integration.hpp +++ b/SU2_CFD/include/integration/CFEM_DG_Integration.hpp @@ -2,14 +2,14 @@ * \file CFEM_DG_Integration.hpp * \brief Declaration of class for integration with the FEM DG solver. * \author E. van der Weide, T. Economon - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -32,7 +32,7 @@ * \ingroup Drivers * \brief Class for integration with the FEM DG solver. * \author E. van der Weide, T. Economon - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" */ class CFEM_DG_Integration final : public CIntegration { public: diff --git a/SU2_CFD/include/integration/CIntegration.hpp b/SU2_CFD/include/integration/CIntegration.hpp index 29538908d4f..b35dc23be9c 100644 --- a/SU2_CFD/include/integration/CIntegration.hpp +++ b/SU2_CFD/include/integration/CIntegration.hpp @@ -2,14 +2,14 @@ * \file CIntegration.hpp * \brief Declaration of the main routines to orchestrate space and time integration. * \author F. Palacios, T. Economon - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/include/integration/CIntegrationFactory.hpp b/SU2_CFD/include/integration/CIntegrationFactory.hpp index 908b0497aef..c5531335298 100644 --- a/SU2_CFD/include/integration/CIntegrationFactory.hpp +++ b/SU2_CFD/include/integration/CIntegrationFactory.hpp @@ -2,14 +2,14 @@ * \file CIntegrationFactory.hpp * \brief Headers of the CIntegrationFactory class * \author T. Albring - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/include/integration/CMultiGridIntegration.hpp b/SU2_CFD/include/integration/CMultiGridIntegration.hpp index 16499903961..1648f50b55a 100644 --- a/SU2_CFD/include/integration/CMultiGridIntegration.hpp +++ b/SU2_CFD/include/integration/CMultiGridIntegration.hpp @@ -2,14 +2,14 @@ * \file CMultiGridIntegration.hpp * \brief Declaration of class for time integration using a multigrid method. * \author F. Palacios, T. Economon - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/include/integration/CNewtonIntegration.hpp b/SU2_CFD/include/integration/CNewtonIntegration.hpp index c55b667b6a0..a3e52b857de 100644 --- a/SU2_CFD/include/integration/CNewtonIntegration.hpp +++ b/SU2_CFD/include/integration/CNewtonIntegration.hpp @@ -2,14 +2,14 @@ * \file CNewtonIntegration.hpp * \brief Newton-Krylov integration. * \author P. Gomes - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/include/integration/CSingleGridIntegration.hpp b/SU2_CFD/include/integration/CSingleGridIntegration.hpp index 6a51e11bd80..cc257378473 100644 --- a/SU2_CFD/include/integration/CSingleGridIntegration.hpp +++ b/SU2_CFD/include/integration/CSingleGridIntegration.hpp @@ -2,14 +2,14 @@ * \file CSingleGridIntegration.hpp * \brief Declaration of class for numerical integration of fine grid-only problems. * \author A. Bueno. - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/include/integration/CStructuralIntegration.hpp b/SU2_CFD/include/integration/CStructuralIntegration.hpp index 757ddf583e9..5958c72dee2 100644 --- a/SU2_CFD/include/integration/CStructuralIntegration.hpp +++ b/SU2_CFD/include/integration/CStructuralIntegration.hpp @@ -2,14 +2,14 @@ * \file CStructuralIntegration.hpp * \brief Declaration of class for numerical integration of structural problems. * \author R. Sanchez. - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/include/interfaces/CInterface.hpp b/SU2_CFD/include/interfaces/CInterface.hpp index 7830e091085..9ec0599827e 100644 --- a/SU2_CFD/include/interfaces/CInterface.hpp +++ b/SU2_CFD/include/interfaces/CInterface.hpp @@ -3,14 +3,14 @@ * \brief Declarations and inlines of the transfer structure. * The subroutines and functions are in the physics folders. * \author R. Sanchez - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -51,7 +51,7 @@ using namespace std; * \ingroup Interfaces * \brief Main class for defining the physical transfer of information. * \author R. Sanchez - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" */ class CInterface { @@ -219,13 +219,4 @@ class CInterface { */ void GatherAverageValues(CSolver *donor_solution, CSolver *target_solution, unsigned short donorZone); - /*! - * \brief Exchange Average geometrical value beteween zones . - * \param[in] donor_geometry - Geometry of the donor mesh. - * \param[in] target_geometry - Geometry of the target mesh. - * \param[in] donor_config - Definition of the problem at the donor mesh. - * \param[in] target_config - Definition of the problem at the target mesh. - */ - void GatherAverageTurboGeoValues(CGeometry *donor_geometry, CGeometry *target_geometry, unsigned short donorZone); - }; diff --git a/SU2_CFD/include/interfaces/cfd/CConservativeVarsInterface.hpp b/SU2_CFD/include/interfaces/cfd/CConservativeVarsInterface.hpp index 43300f1f336..d500d5ed6f6 100644 --- a/SU2_CFD/include/interfaces/cfd/CConservativeVarsInterface.hpp +++ b/SU2_CFD/include/interfaces/cfd/CConservativeVarsInterface.hpp @@ -3,14 +3,14 @@ * \brief Declaration and inlines of the class to transfer conservative variables * from a generic zone into another one. * \author Ruben Sanchez - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/include/interfaces/cfd/CMixingPlaneInterface.hpp b/SU2_CFD/include/interfaces/cfd/CMixingPlaneInterface.hpp index 8eb2ee0aa0f..c7d25c6af97 100644 --- a/SU2_CFD/include/interfaces/cfd/CMixingPlaneInterface.hpp +++ b/SU2_CFD/include/interfaces/cfd/CMixingPlaneInterface.hpp @@ -3,14 +3,14 @@ * \brief Declaration and inlines of the class to transfer average variables * needed for MixingPlane computation from a generic zone into another one. * \author S. Vitale - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -81,14 +81,6 @@ class CMixingPlaneInterface : public CInterface { */ void SetAverageValues(CSolver *donor_solution, CSolver *target_solution, unsigned short donorZone) override; - /*! - * \brief Store all the turboperformance in the solver in ZONE_0. - * \param[in] donor_geometry - Solution from the donor mesh. - * \param[in] target_geometry - Solution from the target mesh. - * \param[in] donorZone - counter of the donor solution - */ - void SetAverageTurboGeoValues(CGeometry *donor_geometry, CGeometry *target_geometry, unsigned short donorZone) override; - }; diff --git a/SU2_CFD/include/interfaces/cfd/CSlidingInterface.hpp b/SU2_CFD/include/interfaces/cfd/CSlidingInterface.hpp index d2adc4f21e4..b033178f516 100644 --- a/SU2_CFD/include/interfaces/cfd/CSlidingInterface.hpp +++ b/SU2_CFD/include/interfaces/cfd/CSlidingInterface.hpp @@ -3,14 +3,14 @@ * \brief Declaration and inlines of the class to transfer conservative variables * from a generic zone into another * \author G. Gori Politecnico di Milano - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/include/interfaces/cht/CConjugateHeatInterface.hpp b/SU2_CFD/include/interfaces/cht/CConjugateHeatInterface.hpp index 093675bb5dc..919d4e8f7f1 100644 --- a/SU2_CFD/include/interfaces/cht/CConjugateHeatInterface.hpp +++ b/SU2_CFD/include/interfaces/cht/CConjugateHeatInterface.hpp @@ -3,14 +3,14 @@ * \brief Declaration and inlines of the class to transfer temperature and heatflux * density for conjugate heat interfaces between structure and fluid zones. * \author O. Burghardt - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/include/interfaces/fsi/CDiscAdjFlowTractionInterface.hpp b/SU2_CFD/include/interfaces/fsi/CDiscAdjFlowTractionInterface.hpp index 5959bb91cf2..4b611e012b1 100644 --- a/SU2_CFD/include/interfaces/fsi/CDiscAdjFlowTractionInterface.hpp +++ b/SU2_CFD/include/interfaces/fsi/CDiscAdjFlowTractionInterface.hpp @@ -3,14 +3,14 @@ * \brief Declaration and inlines of the class to transfer flow tractions * from a fluid zone into a structural zone in a discrete adjoint simulation. * \author Ruben Sanchez - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/include/interfaces/fsi/CDisplacementsInterface.hpp b/SU2_CFD/include/interfaces/fsi/CDisplacementsInterface.hpp index 1674a6aeca7..50f29102d54 100644 --- a/SU2_CFD/include/interfaces/fsi/CDisplacementsInterface.hpp +++ b/SU2_CFD/include/interfaces/fsi/CDisplacementsInterface.hpp @@ -3,14 +3,14 @@ * \brief Declaration and inlines of the class to transfer boundary displacements * from a structural zone into a fluid zone. * \author Ruben Sanchez - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/include/interfaces/fsi/CFlowTractionInterface.hpp b/SU2_CFD/include/interfaces/fsi/CFlowTractionInterface.hpp index b0d808a5580..b27392d6c21 100644 --- a/SU2_CFD/include/interfaces/fsi/CFlowTractionInterface.hpp +++ b/SU2_CFD/include/interfaces/fsi/CFlowTractionInterface.hpp @@ -3,14 +3,14 @@ * \brief Declaration and inlines of the class to transfer flow tractions * from a fluid zone into a structural zone. * \author Ruben Sanchez - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/include/iteration/CAdjFluidIteration.hpp b/SU2_CFD/include/iteration/CAdjFluidIteration.hpp index 47dca3c765d..76845d1d955 100644 --- a/SU2_CFD/include/iteration/CAdjFluidIteration.hpp +++ b/SU2_CFD/include/iteration/CAdjFluidIteration.hpp @@ -3,14 +3,14 @@ * \brief Headers of the iteration classes used by SU2_CFD. * Each CIteration class represents an available physics package. * \author F. Palacios, T. Economon - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/include/iteration/CDiscAdjFEAIteration.hpp b/SU2_CFD/include/iteration/CDiscAdjFEAIteration.hpp index 9fec0cbd75b..399d89400b0 100644 --- a/SU2_CFD/include/iteration/CDiscAdjFEAIteration.hpp +++ b/SU2_CFD/include/iteration/CDiscAdjFEAIteration.hpp @@ -3,14 +3,14 @@ * \brief Headers of the iteration classes used by SU2_CFD. * Each CIteration class represents an available physics package. * \author F. Palacios, T. Economon - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -40,7 +40,6 @@ class CFEAIteration; */ class CDiscAdjFEAIteration final : public CIteration { private: - CFEAIteration* fem_iteration; /*!< \brief Pointer to the primal iteration class. */ unsigned short CurrentRecording; /*!< \brief Stores the current status of the recording. */ /*! diff --git a/SU2_CFD/include/iteration/CDiscAdjFluidIteration.hpp b/SU2_CFD/include/iteration/CDiscAdjFluidIteration.hpp index 1e496031f2e..f7bd46740cb 100644 --- a/SU2_CFD/include/iteration/CDiscAdjFluidIteration.hpp +++ b/SU2_CFD/include/iteration/CDiscAdjFluidIteration.hpp @@ -3,14 +3,14 @@ * \brief Headers of the iteration classes used by SU2_CFD. * Each CIteration class represents an available physics package. * \author F. Palacios, T. Economon - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/include/iteration/CDiscAdjHeatIteration.hpp b/SU2_CFD/include/iteration/CDiscAdjHeatIteration.hpp index c2d110ade8b..28d8a34a776 100644 --- a/SU2_CFD/include/iteration/CDiscAdjHeatIteration.hpp +++ b/SU2_CFD/include/iteration/CDiscAdjHeatIteration.hpp @@ -3,14 +3,14 @@ * \brief Headers of the iteration classes used by SU2_CFD. * Each CIteration class represents an available physics package. * \author F. Palacios, T. Economon - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/include/iteration/CFEAIteration.hpp b/SU2_CFD/include/iteration/CFEAIteration.hpp index 8a7ff42a40d..6c1f96413fb 100644 --- a/SU2_CFD/include/iteration/CFEAIteration.hpp +++ b/SU2_CFD/include/iteration/CFEAIteration.hpp @@ -3,14 +3,14 @@ * \brief Headers of the iteration classes used by SU2_CFD. * Each CIteration class represents an available physics package. * \author F. Palacios, T. Economon - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -35,7 +35,7 @@ * \ingroup Drivers * \brief Class for driving an iteration of structural analysis. * \author R. Sanchez - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" */ class CFEAIteration : public CIteration { public: diff --git a/SU2_CFD/include/iteration/CFEMFluidIteration.hpp b/SU2_CFD/include/iteration/CFEMFluidIteration.hpp index 964ca966250..de2c6548105 100644 --- a/SU2_CFD/include/iteration/CFEMFluidIteration.hpp +++ b/SU2_CFD/include/iteration/CFEMFluidIteration.hpp @@ -3,14 +3,14 @@ * \brief Headers of the iteration classes used by SU2_CFD. * Each CIteration class represents an available physics package. * \author F. Palacios, T. Economon - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -35,7 +35,7 @@ * \ingroup Drivers * \brief Class for driving an iteration of the finite element flow system. * \author T. Economon, E. van der Weide - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" */ class CFEMFluidIteration : public CFluidIteration { public: diff --git a/SU2_CFD/include/iteration/CFluidIteration.hpp b/SU2_CFD/include/iteration/CFluidIteration.hpp index c960b635e35..07883903a05 100644 --- a/SU2_CFD/include/iteration/CFluidIteration.hpp +++ b/SU2_CFD/include/iteration/CFluidIteration.hpp @@ -3,14 +3,14 @@ * \brief Headers of the iteration classes used by SU2_CFD. * Each CIteration class represents an available physics package. * \author F. Palacios, T. Economon - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -107,6 +107,16 @@ class CFluidIteration : public CIteration { CVolumetricMovement*** grid_movement, CFreeFormDefBox*** FFDBox, unsigned short val_iZone, unsigned short val_iInst) override; + /*! + * \brief Monitors turbo computation (pressure and turbo ramps). + */ + void TurboMonitor(CGeometry**** geometry_container, CConfig** config_container, unsigned long ExtIter); + + /*! + * \brief Computes turboperformance. + */ + void ComputeTurboPerformance(CSolver***** solver, CGeometry**** geometry_container, CConfig** config_container, unsigned long ExtIter); + /*! * \brief Postprocesses the fluid system before heading to another physics system or the next iteration. * \param[in] solver - Container vector with all the solutions. diff --git a/SU2_CFD/include/iteration/CHeatIteration.hpp b/SU2_CFD/include/iteration/CHeatIteration.hpp index b994521267d..7afc845572b 100644 --- a/SU2_CFD/include/iteration/CHeatIteration.hpp +++ b/SU2_CFD/include/iteration/CHeatIteration.hpp @@ -3,14 +3,14 @@ * \brief Headers of the iteration classes used by SU2_CFD. * Each CIteration class represents an available physics package. * \author F. Palacios, T. Economon - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/include/iteration/CIteration.hpp b/SU2_CFD/include/iteration/CIteration.hpp index da807245967..9b85c8f755e 100644 --- a/SU2_CFD/include/iteration/CIteration.hpp +++ b/SU2_CFD/include/iteration/CIteration.hpp @@ -3,14 +3,14 @@ * \brief Headers of the iteration classes used by SU2_CFD. * Each CIteration class represents an available physics package. * \author F. Palacios, T. Economon - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -35,6 +35,7 @@ #include "../../../Common/include/grid_movement/CFreeFormDefBox.hpp" #include "../../../Common/include/parallelization/mpi_structure.hpp" #include "../integration/CIntegration.hpp" +#include "../output/CTurboOutput.hpp" using namespace std; @@ -59,6 +60,9 @@ class CIteration { su2double StartTime{0.0}, /*!< \brief Tracking wall time. */ StopTime{0.0}, UsedTime{0.0}; + std::shared_ptr TurbomachineryPerformance; /*!< \brief turbo performance calculator. */ + std::shared_ptr TurbomachineryStagePerformance; /*!< \brief turbo stage performance calculator. */ + public: /*! * \brief Constructor of the class. @@ -247,7 +251,6 @@ class CIteration { unsigned short val_iInst) { return false; } - /*! * \brief A virtual member. * \param[in] output - Pointer to the COutput class. diff --git a/SU2_CFD/include/iteration/CIterationFactory.hpp b/SU2_CFD/include/iteration/CIterationFactory.hpp index 271ca8b9e3f..4eeba024bc2 100644 --- a/SU2_CFD/include/iteration/CIterationFactory.hpp +++ b/SU2_CFD/include/iteration/CIterationFactory.hpp @@ -3,14 +3,14 @@ * \brief Headers of the iteration classes used by SU2_CFD. * Each CIteration class represents an available physics package. * \author F. Palacios, T. Economon - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/include/iteration/CTurboIteration.hpp b/SU2_CFD/include/iteration/CTurboIteration.hpp index 438e23bfd1d..37970fc5041 100644 --- a/SU2_CFD/include/iteration/CTurboIteration.hpp +++ b/SU2_CFD/include/iteration/CTurboIteration.hpp @@ -3,14 +3,14 @@ * \brief Headers of the iteration classes used by SU2_CFD. * Each CIteration class represents an available physics package. * \author F. Palacios, T. Economon - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -63,4 +63,9 @@ class CTurboIteration : public CFluidIteration { CNumerics****** numerics, CConfig** config, CSurfaceMovement** surface_movement, CVolumetricMovement*** grid_movement, CFreeFormDefBox*** FFDBox, unsigned short val_iZone, unsigned short val_iInst) override; + + /*! + * \brief Initialises turboperformance classes. + */ + void InitTurboPerformance(CGeometry *geometry, CConfig** config, CFluidModel *fluid); }; diff --git a/SU2_CFD/include/limiters/CLimiterDetails.hpp b/SU2_CFD/include/limiters/CLimiterDetails.hpp index 8311bb31697..cdd7b7990d6 100644 --- a/SU2_CFD/include/limiters/CLimiterDetails.hpp +++ b/SU2_CFD/include/limiters/CLimiterDetails.hpp @@ -3,14 +3,14 @@ * \brief A class template that allows defining limiters via * specialization of particular details. * \author P. Gomes - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/include/limiters/computeLimiters.hpp b/SU2_CFD/include/limiters/computeLimiters.hpp index f33439d5294..fe92064fd04 100644 --- a/SU2_CFD/include/limiters/computeLimiters.hpp +++ b/SU2_CFD/include/limiters/computeLimiters.hpp @@ -2,14 +2,14 @@ * \file computeLimiters.hpp * \brief Compute limiters wrapper function. * \author P. Gomes - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/include/limiters/computeLimiters_impl.hpp b/SU2_CFD/include/limiters/computeLimiters_impl.hpp index 5cc8007eb00..ec835610f65 100644 --- a/SU2_CFD/include/limiters/computeLimiters_impl.hpp +++ b/SU2_CFD/include/limiters/computeLimiters_impl.hpp @@ -4,14 +4,14 @@ * \note Common methods are derived by defining small details * via specialization of CLimiterDetails. * \author P. Gomes - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/include/numerics/CGradSmoothing.hpp b/SU2_CFD/include/numerics/CGradSmoothing.hpp index 0a07d87ea30..ecdab99d869 100644 --- a/SU2_CFD/include/numerics/CGradSmoothing.hpp +++ b/SU2_CFD/include/numerics/CGradSmoothing.hpp @@ -2,14 +2,14 @@ * \file CGradSmoothing.hpp * \brief Declarations and inlines of the numerics class for gradient smoothing. * \author T.Dick - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/include/numerics/CNumerics.hpp b/SU2_CFD/include/numerics/CNumerics.hpp index 14088f021cd..450112df8f7 100644 --- a/SU2_CFD/include/numerics/CNumerics.hpp +++ b/SU2_CFD/include/numerics/CNumerics.hpp @@ -3,14 +3,14 @@ * \brief Declaration of the base numerics class, the * implementation is in the CNumerics.cpp file. * \author F. Palacios, T. Economon - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/include/numerics/NEMO/CNEMONumerics.hpp b/SU2_CFD/include/numerics/NEMO/CNEMONumerics.hpp index 895ffb304f9..d015dde0a0b 100644 --- a/SU2_CFD/include/numerics/NEMO/CNEMONumerics.hpp +++ b/SU2_CFD/include/numerics/NEMO/CNEMONumerics.hpp @@ -2,14 +2,14 @@ * \file CNEMONumerics.hpp * \brief Base class template NEMO numerics. * \author C. Garbacz, W. Maier, S. R. Copeland - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/include/numerics/NEMO/NEMO_diffusion.hpp b/SU2_CFD/include/numerics/NEMO/NEMO_diffusion.hpp index 9acd5cd9d51..de6295d5d0d 100644 --- a/SU2_CFD/include/numerics/NEMO/NEMO_diffusion.hpp +++ b/SU2_CFD/include/numerics/NEMO/NEMO_diffusion.hpp @@ -2,14 +2,14 @@ * \file NEMO_diffusion.hpp * \brief Declarations of numerics classes for viscous flux computation. * \author S.R. Copeland, W. Maier, C. Garbacz. - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -34,7 +34,7 @@ * \brief Class for computing viscous term using the average of gradients. * \ingroup ViscDiscr * \author S.R. Copeland, W. Maier, C. Garbacz - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" */ class CAvgGrad_NEMO : public CNEMONumerics { private: @@ -90,7 +90,7 @@ class CAvgGrad_NEMO : public CNEMONumerics { * \brief Class for computing viscous term using the average of gradients. * \ingroup ViscDiscr * \author C. Garbacz, W. Maier, S.R. Copeland. - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" */ class CAvgGradCorrected_NEMO : public CNEMONumerics { private: diff --git a/SU2_CFD/include/numerics/NEMO/NEMO_sources.hpp b/SU2_CFD/include/numerics/NEMO/NEMO_sources.hpp index df11b67212f..400b248f908 100644 --- a/SU2_CFD/include/numerics/NEMO/NEMO_sources.hpp +++ b/SU2_CFD/include/numerics/NEMO/NEMO_sources.hpp @@ -2,14 +2,14 @@ * \file NEMO_sources.hpp * \brief Declarations of numerics classes for source-term integration. * \author C. Garbacz, W. Maier, S. Copeland. - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -34,7 +34,7 @@ * \brief Class for two-temperature model source terms. * \ingroup SourceDiscr * \author C. Garbacz, W. Maier, S. Copeland. - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" */ class CSource_NEMO : public CNEMONumerics { private: diff --git a/SU2_CFD/include/numerics/NEMO/convection/ausm_slau.hpp b/SU2_CFD/include/numerics/NEMO/convection/ausm_slau.hpp index 0d01c9a37ad..09c2e05ea54 100644 --- a/SU2_CFD/include/numerics/NEMO/convection/ausm_slau.hpp +++ b/SU2_CFD/include/numerics/NEMO/convection/ausm_slau.hpp @@ -2,14 +2,14 @@ * \file ausm_slau.hpp * \brief Declaration of numerics classes for the AUSM and SLAU family of schemes in NEMO. * \author F. Palacios, S.R. Copeland, W. Maier, C. Garbacz - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/include/numerics/NEMO/convection/lax.hpp b/SU2_CFD/include/numerics/NEMO/convection/lax.hpp index ccf44fbfafd..5be38a758af 100644 --- a/SU2_CFD/include/numerics/NEMO/convection/lax.hpp +++ b/SU2_CFD/include/numerics/NEMO/convection/lax.hpp @@ -2,14 +2,14 @@ * \file lax.hpp * \brief Declaration of numerics classes for Lax centered scheme. * \author F. Palacios, S.R. Copeland, W. Maier, C. Garbacz - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/include/numerics/NEMO/convection/msw.hpp b/SU2_CFD/include/numerics/NEMO/convection/msw.hpp index 8968a27ea0a..4f53500eb61 100644 --- a/SU2_CFD/include/numerics/NEMO/convection/msw.hpp +++ b/SU2_CFD/include/numerics/NEMO/convection/msw.hpp @@ -2,14 +2,14 @@ * \file msw.hpp * \brief Declaration of numerics classes for modified Steger-Warming scheme. * \author ADL Stanford, S.R. Copeland, W. Maier, C. Garbacz - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -34,7 +34,7 @@ * \brief Class for solving a flux-vector splitting method by Steger & Warming, modified version. * \ingroup ConvDiscr * \author ADL Stanford, S.R. Copeland, W. Maier, C. Garbacz - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" */ class CUpwMSW_NEMO : public CNEMONumerics { private: diff --git a/SU2_CFD/include/numerics/NEMO/convection/roe.hpp b/SU2_CFD/include/numerics/NEMO/convection/roe.hpp index 004e0036e08..27ca543c8a8 100644 --- a/SU2_CFD/include/numerics/NEMO/convection/roe.hpp +++ b/SU2_CFD/include/numerics/NEMO/convection/roe.hpp @@ -2,14 +2,14 @@ * \file roe.hpp * \brief Declarations of numerics classes for Roe-type schemes in NEMO. * \author S.R. Copeland, W. Maier, C. Garbacz - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -34,7 +34,7 @@ * \brief Class for evaluating the Riemann problem using Roe's scheme for a two-temperature model. * \ingroup ConvDiscr * \author S. R. Copeland, W. Maier, C. Garbacz - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" */ class CUpwRoe_NEMO : public CNEMONumerics { private: diff --git a/SU2_CFD/include/numerics/continuous_adjoint/adj_convection.hpp b/SU2_CFD/include/numerics/continuous_adjoint/adj_convection.hpp index 0f619cc3ec3..9588d5f3284 100644 --- a/SU2_CFD/include/numerics/continuous_adjoint/adj_convection.hpp +++ b/SU2_CFD/include/numerics/continuous_adjoint/adj_convection.hpp @@ -3,14 +3,14 @@ * \brief Declarations of numerics classes for continuous adjoint * convective discretization. Implemented in adj_convection.cpp. * \author F. Palacios, T. Economon - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/include/numerics/continuous_adjoint/adj_diffusion.hpp b/SU2_CFD/include/numerics/continuous_adjoint/adj_diffusion.hpp index e236a4e1b8b..0e098b4124c 100644 --- a/SU2_CFD/include/numerics/continuous_adjoint/adj_diffusion.hpp +++ b/SU2_CFD/include/numerics/continuous_adjoint/adj_diffusion.hpp @@ -3,14 +3,14 @@ * \brief Declarations of numerics classes for continuous adjoint * diffusion discretization. Implemented in adj_diffusion.cpp. * \author F. Palacios, T. Economon - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/include/numerics/continuous_adjoint/adj_sources.hpp b/SU2_CFD/include/numerics/continuous_adjoint/adj_sources.hpp index 24b87d49d1a..f104a623edd 100644 --- a/SU2_CFD/include/numerics/continuous_adjoint/adj_sources.hpp +++ b/SU2_CFD/include/numerics/continuous_adjoint/adj_sources.hpp @@ -3,14 +3,14 @@ * \brief Declarations of numerics classes for continuous adjoint * source term integration. Implemented in adj_sources.cpp. * \author F. Palacios, T. Economon - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/include/numerics/elasticity/CFEAElasticity.hpp b/SU2_CFD/include/numerics/elasticity/CFEAElasticity.hpp index f0f450af2c1..49f79f340bc 100644 --- a/SU2_CFD/include/numerics/elasticity/CFEAElasticity.hpp +++ b/SU2_CFD/include/numerics/elasticity/CFEAElasticity.hpp @@ -2,14 +2,14 @@ * \file CFEAElasticity.hpp * \brief Declaration and inlines of the base class for elasticity problems. * \author Ruben Sanchez - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -38,7 +38,7 @@ * The methods we override in this class with an empty implementation are here just to better * document the public interface of this class hierarchy. * \author R.Sanchez - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" */ class CFEAElasticity : public CNumerics { diff --git a/SU2_CFD/include/numerics/elasticity/CFEALinearElasticity.hpp b/SU2_CFD/include/numerics/elasticity/CFEALinearElasticity.hpp index a874286ae21..bd4086bf9fd 100644 --- a/SU2_CFD/include/numerics/elasticity/CFEALinearElasticity.hpp +++ b/SU2_CFD/include/numerics/elasticity/CFEALinearElasticity.hpp @@ -2,14 +2,14 @@ * \file CFEALinearElasticity.hpp * \brief Declaration and inlines of the linear elasticity FE numerics class. * \author Ruben Sanchez - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -35,7 +35,7 @@ * \brief Class for computing the stiffness matrix of a linear, elastic problem. * \ingroup Elasticity_Equations * \author R.Sanchez - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" */ class CFEALinearElasticity : public CFEAElasticity { protected: @@ -90,7 +90,7 @@ class CFEALinearElasticity : public CFEAElasticity { * \brief Particular case of linear elasticity used for mesh deformation. * \ingroup Elasticity_Equations * \author R.Sanchez - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" */ class CFEAMeshElasticity final : public CFEALinearElasticity { diff --git a/SU2_CFD/include/numerics/elasticity/CFEANonlinearElasticity.hpp b/SU2_CFD/include/numerics/elasticity/CFEANonlinearElasticity.hpp index 4309d9308c3..388418c64cd 100644 --- a/SU2_CFD/include/numerics/elasticity/CFEANonlinearElasticity.hpp +++ b/SU2_CFD/include/numerics/elasticity/CFEANonlinearElasticity.hpp @@ -2,14 +2,14 @@ * \file CFEANonlinearElasticity.hpp * \brief Declaration and inlines of the nonlinear elasticity FE numerics class. * \author Ruben Sanchez - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -37,7 +37,7 @@ * Compute_Plane_Stress_Term and Compute_Stress_Tensor. * \ingroup Elasticity_Equations * \author R.Sanchez - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" */ class CFEANonlinearElasticity : public CFEAElasticity { diff --git a/SU2_CFD/include/numerics/elasticity/nonlinear_models.hpp b/SU2_CFD/include/numerics/elasticity/nonlinear_models.hpp index 8ff904987d0..c817990d57b 100644 --- a/SU2_CFD/include/numerics/elasticity/nonlinear_models.hpp +++ b/SU2_CFD/include/numerics/elasticity/nonlinear_models.hpp @@ -2,14 +2,14 @@ * \file nonlinear_models.hpp * \brief Declarations of nonlinear constitutive models. * \author Ruben Sanchez - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -35,7 +35,7 @@ * \brief Class for computing the constitutive and stress tensors for a neo-Hookean material model, compressible. * \ingroup Elasticity_Equations * \author R.Sanchez - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" */ class CFEM_NeoHookean_Comp final : public CFEANonlinearElasticity { @@ -83,7 +83,7 @@ class CFEM_NeoHookean_Comp final : public CFEANonlinearElasticity { * \brief Constitutive and stress tensors for a Knowles stored-energy function, nearly incompressible. * \ingroup Elasticity_Equations * \author R.Sanchez - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" */ class CFEM_Knowles_NearInc final : public CFEANonlinearElasticity { @@ -134,7 +134,7 @@ class CFEM_Knowles_NearInc final : public CFEANonlinearElasticity { * \brief Class for computing the constitutive and stress tensors for a dielectric elastomer. * \ingroup Elasticity_Equations * \author R.Sanchez - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" */ class CFEM_DielectricElastomer final : public CFEANonlinearElasticity { @@ -182,7 +182,7 @@ class CFEM_DielectricElastomer final : public CFEANonlinearElasticity { * \brief Class for computing the constitutive and stress tensors for a nearly-incompressible ideal DE. * \ingroup Elasticity_Equations * \author R.Sanchez - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" */ class CFEM_IdealDE final : public CFEANonlinearElasticity { diff --git a/SU2_CFD/include/numerics/flow/convection/ausm_slau.hpp b/SU2_CFD/include/numerics/flow/convection/ausm_slau.hpp index 5fbc59f5c85..8eb1b67dd65 100644 --- a/SU2_CFD/include/numerics/flow/convection/ausm_slau.hpp +++ b/SU2_CFD/include/numerics/flow/convection/ausm_slau.hpp @@ -3,14 +3,14 @@ * \brief Declaration of numerics classes for the AUSM family of schemes, * including SLAU. The implementation is in ausm.cpp. * \author F. Palacios, T. Economon - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/include/numerics/flow/convection/centered.hpp b/SU2_CFD/include/numerics/flow/convection/centered.hpp index 808ab86bc06..b5884f95747 100644 --- a/SU2_CFD/include/numerics/flow/convection/centered.hpp +++ b/SU2_CFD/include/numerics/flow/convection/centered.hpp @@ -3,14 +3,14 @@ * \brief Declaration of numerics classes for centered schemes, * the implementation is in centered.cpp. * \author F. Palacios, T. Economon - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/include/numerics/flow/convection/fds.hpp b/SU2_CFD/include/numerics/flow/convection/fds.hpp index 77d155c8509..61c6a331b2b 100644 --- a/SU2_CFD/include/numerics/flow/convection/fds.hpp +++ b/SU2_CFD/include/numerics/flow/convection/fds.hpp @@ -3,14 +3,14 @@ * \brief Declarations of classes for Flux-Difference-Spliting schemes, * the implementations are in fds.cpp * \author F. Palacios, T. Economon - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/include/numerics/flow/convection/fvs.hpp b/SU2_CFD/include/numerics/flow/convection/fvs.hpp index dd8091fa67b..c39a7a838fe 100644 --- a/SU2_CFD/include/numerics/flow/convection/fvs.hpp +++ b/SU2_CFD/include/numerics/flow/convection/fvs.hpp @@ -3,14 +3,14 @@ * \brief Declarations of classes for Flux-Vector-Spliting schemes, * the implementations are in fvs.cpp. * \author F. Palacios, T. Economon - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/include/numerics/flow/convection/hllc.hpp b/SU2_CFD/include/numerics/flow/convection/hllc.hpp index 5765b566101..5cac798825e 100644 --- a/SU2_CFD/include/numerics/flow/convection/hllc.hpp +++ b/SU2_CFD/include/numerics/flow/convection/hllc.hpp @@ -2,14 +2,14 @@ * \file hllc.hpp * \brief Declaration of HLLC numerics classes, implemented in hllc.cpp. * \author F. Palacios, T. Economon - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -34,7 +34,7 @@ * \brief Class for solving an approximate Riemann HLLC. * \ingroup ConvDiscr * \author G. Gori, Politecnico di Milano - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" */ class CUpwHLLC_Flow final : public CNumerics { private: @@ -86,7 +86,7 @@ class CUpwHLLC_Flow final : public CNumerics { * \brief Class for solving an approximate Riemann HLLC. * \ingroup ConvDiscr * \author G. Gori, Politecnico di Milano - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" */ class CUpwGeneralHLLC_Flow final : public CNumerics { private: diff --git a/SU2_CFD/include/numerics/flow/convection/roe.hpp b/SU2_CFD/include/numerics/flow/convection/roe.hpp index 02c0d6a4236..1035aaf08fd 100644 --- a/SU2_CFD/include/numerics/flow/convection/roe.hpp +++ b/SU2_CFD/include/numerics/flow/convection/roe.hpp @@ -3,14 +3,14 @@ * \brief Declarations of numerics classes for Roe-type schemes, * implemented in roe.cpp. * \author F. Palacios, T. Economon - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -119,7 +119,7 @@ class CUpwRoe_Flow final : public CUpwRoeBase_Flow { * \brief Class for solving an approximate Riemann solver of L2Roe for the flow equations. * \ingroup ConvDiscr * \author E. Molina, A. Bueno, F. Palacios, P. Gomes - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" */ class CUpwL2Roe_Flow final : public CUpwRoeBase_Flow { private: @@ -149,7 +149,7 @@ class CUpwL2Roe_Flow final : public CUpwRoeBase_Flow { * \brief Class for solving an approximate Riemann solver of LMRoe for the flow equations. * \ingroup ConvDiscr * \author E. Molina, A. Bueno, F. Palacios, P. Gomes - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" */ class CUpwLMRoe_Flow final : public CUpwRoeBase_Flow { private: diff --git a/SU2_CFD/include/numerics/flow/flow_diffusion.hpp b/SU2_CFD/include/numerics/flow/flow_diffusion.hpp index 4cdcccac404..a78c23bd270 100644 --- a/SU2_CFD/include/numerics/flow/flow_diffusion.hpp +++ b/SU2_CFD/include/numerics/flow/flow_diffusion.hpp @@ -2,14 +2,14 @@ * \file flow_diffusion.hpp * \brief Declarations of numerics classes for viscous flux computation. * \author F. Palacios, T. Economon - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/include/numerics/flow/flow_sources.hpp b/SU2_CFD/include/numerics/flow/flow_sources.hpp index 39e6bd25d09..ab9bedc8037 100644 --- a/SU2_CFD/include/numerics/flow/flow_sources.hpp +++ b/SU2_CFD/include/numerics/flow/flow_sources.hpp @@ -2,14 +2,14 @@ * \file flow_sources.hpp * \brief Declarations of numerics classes for source-term integration. * \author F. Palacios, T. Economon - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -177,7 +177,7 @@ class CSourceBodyForce final : public CSourceBase_Flow { * \brief Class for the source term integration of a body force in the incompressible solver. * \ingroup SourceDiscr * \author T. Economon - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" */ class CSourceIncBodyForce final : public CSourceBase_Flow { su2double Body_Force_Vector[3]; @@ -204,7 +204,7 @@ class CSourceIncBodyForce final : public CSourceBase_Flow { * \brief Class for the source term integration of the Boussinesq approximation for incompressible flow. * \ingroup SourceDiscr * \author T. Economon - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" */ class CSourceBoussinesq final : public CSourceBase_Flow { su2double Gravity_Vector[3]; diff --git a/SU2_CFD/include/numerics/heat.hpp b/SU2_CFD/include/numerics/heat.hpp index 5aff4bed14f..52b0bd8e5a1 100644 --- a/SU2_CFD/include/numerics/heat.hpp +++ b/SU2_CFD/include/numerics/heat.hpp @@ -2,14 +2,14 @@ * \file heat.hpp * \brief Declarations of numerics classes for heat transfer problems. * \author F. Palacios, T. Economon - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -36,7 +36,7 @@ * \brief Class for doing a scalar upwind solver for the heat convection equation. * \ingroup ConvDiscr * \author O. Burghardt. - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" */ class CUpwSca_Heat final : public CUpwScalar> { public: @@ -70,7 +70,7 @@ class CUpwSca_Heat final : public CUpwScalar { public: diff --git a/SU2_CFD/include/numerics/radiation.hpp b/SU2_CFD/include/numerics/radiation.hpp index 08adecd8936..f55ea3ddac9 100644 --- a/SU2_CFD/include/numerics/radiation.hpp +++ b/SU2_CFD/include/numerics/radiation.hpp @@ -3,14 +3,14 @@ * \brief Declaration and inlines of the classes used to compute * residual terms in radiation problems. * \author Ruben Sanchez - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/include/numerics/scalar/scalar_convection.hpp b/SU2_CFD/include/numerics/scalar/scalar_convection.hpp index 5c4d7fadf5b..d25647404c1 100644 --- a/SU2_CFD/include/numerics/scalar/scalar_convection.hpp +++ b/SU2_CFD/include/numerics/scalar/scalar_convection.hpp @@ -3,14 +3,14 @@ * \brief Declarations of numerics classes for discretization of * convective fluxes in scalar problems. * \author F. Palacios, T. Economon - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/include/numerics/scalar/scalar_diffusion.hpp b/SU2_CFD/include/numerics/scalar/scalar_diffusion.hpp index eb615aed053..2723ba046e7 100644 --- a/SU2_CFD/include/numerics/scalar/scalar_diffusion.hpp +++ b/SU2_CFD/include/numerics/scalar/scalar_diffusion.hpp @@ -3,14 +3,14 @@ * \brief Declarations of numerics classes for discretization of * viscous fluxes in scalar problems. * \author F. Palacios, T. Economon - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/include/numerics/scalar/scalar_sources.hpp b/SU2_CFD/include/numerics/scalar/scalar_sources.hpp index 2505ff6af3b..1fa42a0bb95 100644 --- a/SU2_CFD/include/numerics/scalar/scalar_sources.hpp +++ b/SU2_CFD/include/numerics/scalar/scalar_sources.hpp @@ -1,14 +1,14 @@ /*! * \file scalar_sources.hpp * \brief Declarations of numerics classes for integration of source terms in scalar problems. - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/include/numerics/species/species_convection.hpp b/SU2_CFD/include/numerics/species/species_convection.hpp index df210050ed3..3bc627b4508 100644 --- a/SU2_CFD/include/numerics/species/species_convection.hpp +++ b/SU2_CFD/include/numerics/species/species_convection.hpp @@ -3,14 +3,14 @@ * \brief Declarations of numerics classes for discretization of * convective fluxes in species problems. * \author T. Kattmann - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/include/numerics/species/species_diffusion.hpp b/SU2_CFD/include/numerics/species/species_diffusion.hpp index afe9a93e61f..8cbd6dcc995 100644 --- a/SU2_CFD/include/numerics/species/species_diffusion.hpp +++ b/SU2_CFD/include/numerics/species/species_diffusion.hpp @@ -3,14 +3,14 @@ * \brief Declarations of numerics classes for discretization of * viscous fluxes in species problems. * \author T. Kattmann - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/include/numerics/species/species_sources.hpp b/SU2_CFD/include/numerics/species/species_sources.hpp index 3c1dd09e596..fc50eef1279 100644 --- a/SU2_CFD/include/numerics/species/species_sources.hpp +++ b/SU2_CFD/include/numerics/species/species_sources.hpp @@ -3,14 +3,14 @@ * \brief Declarations of numerics classes for integration of source * terms in species problems. * \author T. Kattmann - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/include/numerics/template.hpp b/SU2_CFD/include/numerics/template.hpp index aafe52f0b9e..dc705789cb1 100644 --- a/SU2_CFD/include/numerics/template.hpp +++ b/SU2_CFD/include/numerics/template.hpp @@ -5,14 +5,14 @@ * new schemes in SU2, in practice you should look for a similar * scheme and try to re-use functionality (not by copy-paste). * \author F. Palacios, T. Economon - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/include/numerics/turbulent/transition/trans_convection.hpp b/SU2_CFD/include/numerics/turbulent/transition/trans_convection.hpp index c48c7556e32..669c3a3dfa4 100644 --- a/SU2_CFD/include/numerics/turbulent/transition/trans_convection.hpp +++ b/SU2_CFD/include/numerics/turbulent/transition/trans_convection.hpp @@ -3,14 +3,14 @@ * \brief Delarations of numerics classes for discretization of * convective fluxes in transition problems. * \author S. Kang - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/include/numerics/turbulent/transition/trans_correlations.hpp b/SU2_CFD/include/numerics/turbulent/transition/trans_correlations.hpp index c429ab764d9..b8102120701 100644 --- a/SU2_CFD/include/numerics/turbulent/transition/trans_correlations.hpp +++ b/SU2_CFD/include/numerics/turbulent/transition/trans_correlations.hpp @@ -1,14 +1,14 @@ /*! * \file trans_correlations.hpp * \brief Numerics class for the LM model's correlation functions. - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/include/numerics/turbulent/transition/trans_diffusion.hpp b/SU2_CFD/include/numerics/turbulent/transition/trans_diffusion.hpp index 9a56ccfb82d..50153606860 100644 --- a/SU2_CFD/include/numerics/turbulent/transition/trans_diffusion.hpp +++ b/SU2_CFD/include/numerics/turbulent/transition/trans_diffusion.hpp @@ -3,14 +3,14 @@ * \brief Declarations of numerics classes for discretization of * viscous fluxes in transition problems. * \author S. Kang - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/include/numerics/turbulent/transition/trans_sources.hpp b/SU2_CFD/include/numerics/turbulent/transition/trans_sources.hpp index 715dbbfdb86..c1388c2df9c 100644 --- a/SU2_CFD/include/numerics/turbulent/transition/trans_sources.hpp +++ b/SU2_CFD/include/numerics/turbulent/transition/trans_sources.hpp @@ -1,14 +1,14 @@ /*! * \file trans_sources.hpp * \brief Numerics classes for integration of source terms in transition problems. - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/include/numerics/turbulent/turb_convection.hpp b/SU2_CFD/include/numerics/turbulent/turb_convection.hpp index 50bd2ff190d..e219190e05f 100644 --- a/SU2_CFD/include/numerics/turbulent/turb_convection.hpp +++ b/SU2_CFD/include/numerics/turbulent/turb_convection.hpp @@ -3,14 +3,14 @@ * \brief Declarations of numerics classes for discretization of * convective fluxes in turbulence problems. * \author F. Palacios, T. Economon - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/include/numerics/turbulent/turb_diffusion.hpp b/SU2_CFD/include/numerics/turbulent/turb_diffusion.hpp index 8e1bad1c3b5..355a8cde58d 100644 --- a/SU2_CFD/include/numerics/turbulent/turb_diffusion.hpp +++ b/SU2_CFD/include/numerics/turbulent/turb_diffusion.hpp @@ -3,14 +3,14 @@ * \brief Declarations of numerics classes for discretization of * viscous fluxes in turbulence problems. * \author F. Palacios, T. Economon - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/include/numerics/turbulent/turb_sources.hpp b/SU2_CFD/include/numerics/turbulent/turb_sources.hpp index af920cd34c1..bdf9d0c6fc4 100644 --- a/SU2_CFD/include/numerics/turbulent/turb_sources.hpp +++ b/SU2_CFD/include/numerics/turbulent/turb_sources.hpp @@ -1,14 +1,14 @@ /*! * \file turb_sources.hpp * \brief Numerics classes for integration of source terms in turbulence problems. - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/include/numerics_simd/CNumericsSIMD.cpp b/SU2_CFD/include/numerics_simd/CNumericsSIMD.cpp index a4b64527892..43cc3dc424d 100644 --- a/SU2_CFD/include/numerics_simd/CNumericsSIMD.cpp +++ b/SU2_CFD/include/numerics_simd/CNumericsSIMD.cpp @@ -4,14 +4,14 @@ * \note This should be the only cpp for this family of classes * (which are all templates). All compilation takes place here. * \author P. Gomes - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/include/numerics_simd/CNumericsSIMD.hpp b/SU2_CFD/include/numerics_simd/CNumericsSIMD.hpp index fc242dd3aea..d5702990213 100644 --- a/SU2_CFD/include/numerics_simd/CNumericsSIMD.hpp +++ b/SU2_CFD/include/numerics_simd/CNumericsSIMD.hpp @@ -2,14 +2,14 @@ * \file CNumericsSIMD.hpp * \brief Vectorized (SIMD) numerics classes. * \author P. Gomes - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/include/numerics_simd/flow/convection/centered.hpp b/SU2_CFD/include/numerics_simd/flow/convection/centered.hpp index 49e03b333e5..ae5c23c259c 100644 --- a/SU2_CFD/include/numerics_simd/flow/convection/centered.hpp +++ b/SU2_CFD/include/numerics_simd/flow/convection/centered.hpp @@ -2,14 +2,14 @@ * \file centered.hpp * \brief Centered convective schemes. * \author P. Gomes, F. Palacios, T. Economon - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/include/numerics_simd/flow/convection/common.hpp b/SU2_CFD/include/numerics_simd/flow/convection/common.hpp index 6037e2c15e1..e1807f99f6b 100644 --- a/SU2_CFD/include/numerics_simd/flow/convection/common.hpp +++ b/SU2_CFD/include/numerics_simd/flow/convection/common.hpp @@ -2,14 +2,14 @@ * \file common.hpp * \brief Common convection-related methods. * \author P. Gomes, F. Palacios, T. Economon - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/include/numerics_simd/flow/convection/roe.hpp b/SU2_CFD/include/numerics_simd/flow/convection/roe.hpp index cdb2e091ed8..d128ae4cbca 100644 --- a/SU2_CFD/include/numerics_simd/flow/convection/roe.hpp +++ b/SU2_CFD/include/numerics_simd/flow/convection/roe.hpp @@ -2,14 +2,14 @@ * \file roe.hpp * \brief Roe-family of convective schemes. * \author P. Gomes, A. Bueno, F. Palacios - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/include/numerics_simd/flow/diffusion/common.hpp b/SU2_CFD/include/numerics_simd/flow/diffusion/common.hpp index 1b8ace29209..77b4d41fce9 100644 --- a/SU2_CFD/include/numerics_simd/flow/diffusion/common.hpp +++ b/SU2_CFD/include/numerics_simd/flow/diffusion/common.hpp @@ -2,14 +2,14 @@ * \file common.hpp * \brief Helper functions for viscous methods. * \author P. Gomes, C. Pederson, A. Bueno, F. Palacios, T. Economon - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/include/numerics_simd/flow/diffusion/viscous_fluxes.hpp b/SU2_CFD/include/numerics_simd/flow/diffusion/viscous_fluxes.hpp index 2de5572555e..9b34873fcdd 100644 --- a/SU2_CFD/include/numerics_simd/flow/diffusion/viscous_fluxes.hpp +++ b/SU2_CFD/include/numerics_simd/flow/diffusion/viscous_fluxes.hpp @@ -2,14 +2,14 @@ * \file viscous_fluxes.hpp * \brief Decorator classes for computation of viscous fluxes. * \author P. Gomes, C. Pederson, A. Bueno, F. Palacios, T. Economon - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/include/numerics_simd/flow/variables.hpp b/SU2_CFD/include/numerics_simd/flow/variables.hpp index 380ee975907..17e6f4a090f 100644 --- a/SU2_CFD/include/numerics_simd/flow/variables.hpp +++ b/SU2_CFD/include/numerics_simd/flow/variables.hpp @@ -2,14 +2,14 @@ * \file variables.hpp * \brief Collection of types to store physical variables. * \author P. Gomes - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/include/numerics_simd/util.hpp b/SU2_CFD/include/numerics_simd/util.hpp index 3a0f8a68841..d1bdfacf046 100644 --- a/SU2_CFD/include/numerics_simd/util.hpp +++ b/SU2_CFD/include/numerics_simd/util.hpp @@ -2,14 +2,14 @@ * \file util.hpp * \brief Generic auxiliary functions. * \author P. Gomes - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/include/output/CAdjElasticityOutput.hpp b/SU2_CFD/include/output/CAdjElasticityOutput.hpp index 36f0c63b723..5f44a509697 100644 --- a/SU2_CFD/include/output/CAdjElasticityOutput.hpp +++ b/SU2_CFD/include/output/CAdjElasticityOutput.hpp @@ -2,14 +2,14 @@ * \file CAdjElasticityOutput.hpp * \brief Headers of the adjoint elasticity output class. * \author T. Albring, R. Sanchez - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/include/output/CAdjFlowCompOutput.hpp b/SU2_CFD/include/output/CAdjFlowCompOutput.hpp index 36d6655ad92..01787e3e6e1 100644 --- a/SU2_CFD/include/output/CAdjFlowCompOutput.hpp +++ b/SU2_CFD/include/output/CAdjFlowCompOutput.hpp @@ -2,14 +2,14 @@ * \file CAdjFlowCompOutput.hpp * \brief Headers of the adjoint compressible flow output. * \author T. Albring - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/include/output/CAdjFlowIncOutput.hpp b/SU2_CFD/include/output/CAdjFlowIncOutput.hpp index 6ec4b7b3851..02b5ddf9433 100644 --- a/SU2_CFD/include/output/CAdjFlowIncOutput.hpp +++ b/SU2_CFD/include/output/CAdjFlowIncOutput.hpp @@ -2,14 +2,14 @@ * \file CAdjFlowIncOutput.hpp * \brief Headers of the adjoint incompressible flow output. * \author T. Albring - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/include/output/CAdjFlowOutput.hpp b/SU2_CFD/include/output/CAdjFlowOutput.hpp index 18477f28672..6bc4f4e1d93 100644 --- a/SU2_CFD/include/output/CAdjFlowOutput.hpp +++ b/SU2_CFD/include/output/CAdjFlowOutput.hpp @@ -2,14 +2,14 @@ * \file CAdjFlowOutput.hpp * \brief Headers of the adjoint flow output. * \author T. Kattmann - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/include/output/CAdjHeatOutput.hpp b/SU2_CFD/include/output/CAdjHeatOutput.hpp index 9b995aec1f0..61b2409477c 100644 --- a/SU2_CFD/include/output/CAdjHeatOutput.hpp +++ b/SU2_CFD/include/output/CAdjHeatOutput.hpp @@ -2,14 +2,14 @@ * \file CAdjHeatOutput.hpp * \brief Headers of the adjoint heat output. * \author T. Albring - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/include/output/CBaselineOutput.hpp b/SU2_CFD/include/output/CBaselineOutput.hpp index 4134972a73a..c9328904522 100644 --- a/SU2_CFD/include/output/CBaselineOutput.hpp +++ b/SU2_CFD/include/output/CBaselineOutput.hpp @@ -2,14 +2,14 @@ * \file CBaselineOutput.hpp * \brief Headers of the baseline output. * \author T. Albring - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/include/output/CElasticityOutput.hpp b/SU2_CFD/include/output/CElasticityOutput.hpp index 2e6581f59db..486c0934dc6 100644 --- a/SU2_CFD/include/output/CElasticityOutput.hpp +++ b/SU2_CFD/include/output/CElasticityOutput.hpp @@ -2,14 +2,14 @@ * \file CElasticityOutput.hpp * \brief Headers of the elasticity output. * \author F. Palacios, T. Economon, M. Colonno - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/include/output/CFVMOutput.hpp b/SU2_CFD/include/output/CFVMOutput.hpp index f47790e5a8e..c351c8f3981 100644 --- a/SU2_CFD/include/output/CFVMOutput.hpp +++ b/SU2_CFD/include/output/CFVMOutput.hpp @@ -2,14 +2,14 @@ * \file CFVMOutput.hpp * \brief Headers of the Finite Volume Method output. * \author T. Kattmann - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/include/output/CFlowCompFEMOutput.hpp b/SU2_CFD/include/output/CFlowCompFEMOutput.hpp index 657551f0caf..2204247cf14 100644 --- a/SU2_CFD/include/output/CFlowCompFEMOutput.hpp +++ b/SU2_CFD/include/output/CFlowCompFEMOutput.hpp @@ -2,14 +2,14 @@ * \file CFlowCompFEMOutput.hpp * \brief Headers of the compressible FEM flow output. * \author R. Sanchez, T. Albring. - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/include/output/CFlowCompOutput.hpp b/SU2_CFD/include/output/CFlowCompOutput.hpp index e458e78b161..f56ffb1e4b7 100644 --- a/SU2_CFD/include/output/CFlowCompOutput.hpp +++ b/SU2_CFD/include/output/CFlowCompOutput.hpp @@ -2,14 +2,14 @@ * \file CFlowCompOutput.hpp * \brief Headers of the compressible flow output. * \author R. Sanchez, T. Albring. - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -92,4 +92,40 @@ class CFlowCompOutput final: public CFlowOutput { * \param[in] config - Definition of the particular problem. */ bool WriteHistoryFileOutput(const CConfig *config) override ; + + /*! + * \brief Sets the turboperformance screen output + * \param[in] TurboPerf - Turboperformance class + * \param[in] config - Definition of the particular problem + * \param[in] TimeIter - Index of the current time-step + * \param[in] OuterIter - Index of current outer iteration + * \param[in] InnerIter - Index of current inner iteration + */ + void SetTurboPerformance_Output(std::shared_ptr TurboPerf, CConfig *config, unsigned long TimeIter, unsigned long OuterIter, unsigned long InnerIter) override; + + /*! + * \brief Sets the multizone turboperformacne screen output + * \param[in] TurboStagePerf - Stage turboperformance class + * \param[in] TurboPerf - Turboperformance class + * \param[in] config - Definition of the particular problem + */ + void SetTurboMultiZonePerformance_Output(std::shared_ptr TurboStagePerf, std::shared_ptr TurboPerf, CConfig *config) override; + + /*! + * \brief Loads the turboperformacne history data + * \param[in] TurboStagePerf - Stage turboperformance class + * \param[in] TurboPerf - Turboperformance class + * \param[in] config - Definition of the particular problem + */ + void LoadTurboHistoryData(std::shared_ptr TurboStagePerf, std::shared_ptr TurboPerf, CConfig *config) override; + + /*! + * \brief Write the kinematic and thermodynamic variables at each spanwise division + * \param[in] TurboPerf - Turboperformance class + * \param[in] geometry - Geometrical definiton of the problem + * \param[in] config - Descripiton of the particular problem + * \param[in] val_iZone - Idientifier of current zone + */ + void WriteTurboSpanwisePerformance(std::shared_ptr TurboPerf, CGeometry *geometry, CConfig **config, + unsigned short val_iZone) override; }; diff --git a/SU2_CFD/include/output/CFlowIncOutput.hpp b/SU2_CFD/include/output/CFlowIncOutput.hpp index caa3197c8bb..f1d88002683 100644 --- a/SU2_CFD/include/output/CFlowIncOutput.hpp +++ b/SU2_CFD/include/output/CFlowIncOutput.hpp @@ -2,14 +2,14 @@ * \file CFlowIncOutput.hpp * \brief Headers of the incompressible flow output. * \author T. Albring, R. Sanchez - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/include/output/CFlowOutput.hpp b/SU2_CFD/include/output/CFlowOutput.hpp index c9b63cb1ed6..a6925c28e94 100644 --- a/SU2_CFD/include/output/CFlowOutput.hpp +++ b/SU2_CFD/include/output/CFlowOutput.hpp @@ -2,14 +2,14 @@ * \file CFlowOutput.hpp * \brief Headers of the flow output. * \author F. Palacios, T. Economon, M. Colonno - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -44,6 +44,12 @@ class CFlowOutput : public CFVMOutput{ */ CFlowOutput(const CConfig *config, unsigned short nDim, bool femOutput); + /* + * \brief Add turboperformance outputs as history field + * \param[in] nZone - Number of zones in problem + */ + void AddTurboOutput(unsigned short nZone); + /*! * \brief Set the values of the volume output fields for a surface point. * \param[in] config - Definition of the particular problem. @@ -346,5 +352,4 @@ class CFlowOutput : public CFVMOutput{ * \param[in] config - Definition of the particular problem per zone. */ void SetFixedCLScreenOutput(const CConfig *config); - }; diff --git a/SU2_CFD/include/output/CHeatOutput.hpp b/SU2_CFD/include/output/CHeatOutput.hpp index 7c6276a5df3..97c75b76a5c 100644 --- a/SU2_CFD/include/output/CHeatOutput.hpp +++ b/SU2_CFD/include/output/CHeatOutput.hpp @@ -2,14 +2,14 @@ * \file CHeatOutput.hpp * \brief Headers of the heat output. * \author R. Sanchez, T. Albring. - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/include/output/CMeshOutput.hpp b/SU2_CFD/include/output/CMeshOutput.hpp index 7fe2fc5cef9..d7d0625de70 100644 --- a/SU2_CFD/include/output/CMeshOutput.hpp +++ b/SU2_CFD/include/output/CMeshOutput.hpp @@ -2,14 +2,14 @@ * \file CMeshOutput.hpp * \brief Headers of the mesh output. * \author R. Sanchez, T. Albring. - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/include/output/CMultizoneOutput.hpp b/SU2_CFD/include/output/CMultizoneOutput.hpp index 1057978fb99..e3debededda 100644 --- a/SU2_CFD/include/output/CMultizoneOutput.hpp +++ b/SU2_CFD/include/output/CMultizoneOutput.hpp @@ -2,14 +2,14 @@ * \file CMultizoneOutput.hpp * \brief Headers of the main subroutines for screen and history output in multizone problems. * \author R. Sanchez, T. Albring - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/include/output/CNEMOCompOutput.hpp b/SU2_CFD/include/output/CNEMOCompOutput.hpp index eb7c26e099c..008c0473aed 100644 --- a/SU2_CFD/include/output/CNEMOCompOutput.hpp +++ b/SU2_CFD/include/output/CNEMOCompOutput.hpp @@ -2,14 +2,14 @@ * \file CNEMOCompOutput.hpp * \brief Headers of the compressible flow output. * \author R. Sanchez, W. Maier. - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/include/output/COutput.hpp b/SU2_CFD/include/output/COutput.hpp index 0060e60501f..477ebf341a4 100644 --- a/SU2_CFD/include/output/COutput.hpp +++ b/SU2_CFD/include/output/COutput.hpp @@ -2,14 +2,14 @@ * \file COutput.hpp * \brief Headers of the output class. * \author T.Albring - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -38,6 +38,7 @@ #include "../../../Common/include/toolboxes/printing_toolbox.hpp" #include "tools/CWindowingTools.hpp" #include "../../../Common/include/option_structure.hpp" +#include "CTurboOutput.hpp" /*--- AD workaround for a cmath function not defined in CoDi. ---*/ namespace mel { @@ -325,7 +326,6 @@ class COutput { bool TimeConvergence; /*!< \brief To indicate, if the windowed time average of the time loop has converged*/ public: - /*----------------------------- Public member functions ----------------------------*/ /*! @@ -375,7 +375,6 @@ class COutput { */ void SetHistoryOutput(CGeometry *geometry, CSolver **solver_container, CConfig *config, unsigned long TimeIter, unsigned long OuterIter, unsigned long InnerIter); - /*! * \brief Collects history data from the solvers and monitors the convergence. Does not write to screen or file. * \param[in] geometry - Geometrical definition of the problem. @@ -384,10 +383,24 @@ class COutput { */ void SetHistoryOutput(CGeometry *geometry, CSolver **solver_container, CConfig *config); + /*! + * \brief Collects history data from the solvers, monitors the convergence and writes to screen and history file. + * \param[in] geometry - Geometrical definition of the problem. + * \param[in] solver_container - Container vector with all the solutions. + * \param[in] config - Definition of the particular problem. + * \param[in] TimeIter - Value of the time iteration index + * \param[in] OuterIter - Value of outer iteration index + * \param[in] InnerIter - Value of the inner iteration index + * \param[in] val_iInst - Index of the instance layer + */ + void SetHistoryOutput(CGeometry ****geometry, CSolver *****solver_container, CConfig **config, + std::shared_ptr TurboStagePerf, + std::shared_ptr TurboPerf, unsigned short val_iZone, + unsigned long TimeIter, unsigned long OuterIter, unsigned long InnerIter, unsigned short val_iInst); + /*! * Collects history data from the individual output per zone, * monitors the convergence and writes to screen and history file. - * \param[in] output - Container holding the output instances per zone. * \param[in] config - Definition of the particular problem per zone. * \param[in] driver_config - Base definition of the particular problem. @@ -754,7 +767,7 @@ class COutput { /*! * \brief CheckHistoryOutput */ - void CheckHistoryOutput(); + void CheckHistoryOutput(unsigned short nZone); /*! * \brief Open the history file and write the header. @@ -806,6 +819,11 @@ class COutput { */ void SetCommonHistoryFields(); + /*! + * \brief Request the history fields common for all solvers. + */ + void RequestCommonHistory(bool dynamic); + /*! * \brief Parses user-defined outputs. */ @@ -924,7 +942,6 @@ class COutput { */ inline virtual void SetVolumeOutputFields(CConfig *config){} - /*! * \brief Load the history output field values * \param[in] config - Definition of the particular problem. @@ -940,6 +957,42 @@ class COutput { */ inline virtual void LoadMultizoneHistoryData(const COutput* const* output, const CConfig* const* config) {} + /*! + * \brief Sets the turboperformance screen output + * \param[in] TurboPerf - Turboperformance class + * \param[in] config - Definition of the particular problem + * \param[in] TimeIter - Index of the current time-step + * \param[in] OuterIter - Index of current outer iteration + * \param[in] InnerIter - Index of current inner iteration + */ + inline virtual void SetTurboPerformance_Output(std::shared_ptr TurboPerf, CConfig *config, unsigned long TimeIter, unsigned long OuterIter, unsigned long InnerIter) {} + + /*! + * \brief Sets the multizone turboperformacne screen output + * \param[in] TurboStagePerf - Stage turboperformance class + * \param[in] TurboPerf - Turboperformance class + * \param[in] config - Definition of the particular problem + */ + inline virtual void SetTurboMultiZonePerformance_Output(std::shared_ptr TurboStagePerf, std::shared_ptr TurboPerf, CConfig *config) {} + + /*! + * \brief Loads the turboperformacne history data + * \param[in] TurboStagePerf - Stage turboperformance class + * \param[in] TurboPerf - Turboperformance class + * \param[in] config - Definition of the particular problem + */ + inline virtual void LoadTurboHistoryData(std::shared_ptr TurboStagePerf, std::shared_ptr TurboPerf, CConfig *config) {} + + /*! + * \brief Write the kinematic and thermodynamic variables at each spanwise division + * \param[in] solver - The container hold all solution data + * \param[in] geometry - Geometrical definiton of the problem + * \param[in] config - Descripiton of the particular problem + * \param[in] val_iZone - Idientifier of current zone + */ + inline virtual void WriteTurboSpanwisePerformance(std::shared_ptr TurboPerf, CGeometry *geometry, CConfig **config, + unsigned short val_iZone) {}; + /*! * \brief Set the available history output fields * \param[in] config - Definition of the particular problem. diff --git a/SU2_CFD/include/output/COutputFactory.hpp b/SU2_CFD/include/output/COutputFactory.hpp index 1268ff2161d..5b9e4eee5df 100644 --- a/SU2_CFD/include/output/COutputFactory.hpp +++ b/SU2_CFD/include/output/COutputFactory.hpp @@ -2,14 +2,14 @@ * \file COutputFactory.hpp * \brief Headers of the output class. * \author T.Albring - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/include/output/CTurboOutput.hpp b/SU2_CFD/include/output/CTurboOutput.hpp new file mode 100644 index 00000000000..cc7e2356f07 --- /dev/null +++ b/SU2_CFD/include/output/CTurboOutput.hpp @@ -0,0 +1,256 @@ +/*! + * \file CTurboOutput.hpp + * \brief Headers of the Turbomachinery Performance class. + * \author S. Vitale, N. Anand + * \version 7.5.1 "Blackbird" + * + * SU2 Project Website: https://su2code.github.io + * + * The SU2 Project is maintained by the SU2 Foundation + * (http://su2foundation.org) + * + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) + * + * SU2 is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * SU2 is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with SU2. If not, see . + */ + +#pragma once + +#include +#include +#include +#include +#include +#include "../../../Common/include/geometry/CGeometry.hpp" +#include "../../../Common/include/CConfig.hpp" +#include "../fluid/CFluidModel.hpp" + +/*! + * \brief Class containing the required primitive variables for initiating a turboperformance calculation + * \author S. Vitale, N. Anand, J. Kelly + * \ingroup Output + */ +class CTurbomachineryPrimitiveState { + private: + su2double Density, Pressure, TangVelocity; + vector Velocity; + + public: + CTurbomachineryPrimitiveState(); + + CTurbomachineryPrimitiveState(vector TurboPrimitives, unsigned short nDim, su2double tangVel); + + const su2double& GetDensity() const { return Density; } + + const su2double& GetPressure() const { return Pressure; } + + const su2double& GetTangVelocity() const { return TangVelocity; } + + const std::vector& GetVelocity() const { return Velocity; } +}; + +/*! + * \brief Class containing the combined primitive inlet and outlet states for a given blade + * \author S. Vitale, N. Anand, J. Kelly + * \ingroup Output + */ +class CTurbomachineryCombinedPrimitiveStates { + private: + CTurbomachineryPrimitiveState InletPrimitiveState; + CTurbomachineryPrimitiveState OutletPrimitiveState; + + public: + CTurbomachineryCombinedPrimitiveStates(const CTurbomachineryPrimitiveState& inletPrimitiveState, + const CTurbomachineryPrimitiveState& outletPrimitiveState); + + const CTurbomachineryPrimitiveState& GetInletPrimitiveState() const& { return InletPrimitiveState; } + + const CTurbomachineryPrimitiveState& GetOutletPrimitiveState() const& { return OutletPrimitiveState; } +}; + +/*! + * \brief Class containing state information for a turbomachine + * \author S. Vitale, N. Anand, J. Kelly + * \ingroup Output + */ +class CTurbomachineryState { + private: + su2double Density, Pressure, Entropy, Enthalpy, Temperature, TotalTemperature, TotalPressure, TotalEnthalpy; + su2double AbsFlowAngle, FlowAngle, MassFlow, Rothalpy, TotalRelPressure; + vector Velocity, RelVelocity, Mach, RelMach; + su2double Area, Radius; + + public: + CTurbomachineryState(); + + CTurbomachineryState(unsigned short nDim, su2double area, su2double radius); + + void ComputeState(CFluidModel& fluidModel, const CTurbomachineryPrimitiveState& primitiveState); + + const su2double& GetDensity() const { return Density; } + + const su2double& GetPressure() const { return Pressure; } + + const su2double& GetEntropy() const { return Entropy; } + + const su2double& GetEnthalpy() const { return Enthalpy; } + + const su2double& GetTemperature() const { return Temperature; } + + const su2double& GetTotalTemperature() const { return TotalTemperature; } + + const su2double& GetTotalPressure() const { return TotalPressure; } + + const su2double& GetTotalRelPressure() const { return TotalRelPressure; } + + const su2double& GetTotalEnthalpy() const { return TotalEnthalpy; } + + const su2double& GetAbsFlowAngle() const { return AbsFlowAngle; } + + const su2double& GetFlowAngle() const { return FlowAngle; } + + const su2double& GetMassFlow() const { return MassFlow; } + + const su2double& GetRothalpy() const { return Rothalpy; } + + const vector& GetVelocity() const { return Velocity; } + + const vector& GetMach() const { return Mach; } + + su2double GetVelocityValue() const { return Norm(Velocity); } + + su2double GetMachValue() const { return Norm(Mach); } + + su2double GetRelVelocityValue() const { return Norm(RelVelocity); } + + su2double GetRelMachValue() const { return Norm(RelMach); } + + su2double Norm(const vector& u) const { + su2double accum = 0.; + for (auto i = 0u; i < u.size(); ++i) { + accum += u[i] * u[i]; + } + return sqrt(accum); + } +}; + +/*! + * \brief Class containing additional states and performance calculation routines for blades in different turbomachines + * \author S. Vitale, N. Anand, J. Kelly + * \ingroup Output + */ +class CTurbomachineryBladePerformance { + protected: + CTurbomachineryState InletState; + CTurbomachineryState OutletState; + su2double KineticEnergyLoss, TotalPressureLoss, EntropyGen, PressureRatio, EulerianWork; + CFluidModel& FluidModel; + + public: + CTurbomachineryBladePerformance(CFluidModel& fluidModel, unsigned short nDim, su2double areaIn, su2double radiusIn, su2double areaOut, su2double radiusOut); + + virtual ~CTurbomachineryBladePerformance() = default; + + virtual void ComputePerformance(const CTurbomachineryCombinedPrimitiveStates& primitives){}; + + const CTurbomachineryState& GetInletState() { return InletState; } + + const CTurbomachineryState& GetOutletState() { return OutletState; } + + const su2double& GetKineticEnergyLoss() const { return KineticEnergyLoss; } + + const su2double& GetTotalPressureLoss() const { return TotalPressureLoss; } + + const su2double& GetEntropyGen() const { return EntropyGen; } + + const su2double& GetPressureRatio() const { return PressureRatio; } + + const su2double& GetEulerianWork() const { return EulerianWork; } +}; + +class CTurbineBladePerformance : public CTurbomachineryBladePerformance { + public: + CTurbineBladePerformance(CFluidModel& fluidModel, unsigned short nDim, su2double areaIn, su2double radiusIn, su2double areaOut, su2double radiusOut); + + void ComputePerformance(const CTurbomachineryCombinedPrimitiveStates& primitives) override; +}; + +class CCompressorBladePerformance : public CTurbomachineryBladePerformance { + public: + CCompressorBladePerformance(CFluidModel& fluidModel, unsigned short nDim, su2double areaIn, su2double radiusIn, su2double areaOut, su2double radiusOut); + + void ComputePerformance(const CTurbomachineryCombinedPrimitiveStates& primitives) override; +}; + +class CPropellorBladePerformance : public CTurbomachineryBladePerformance { + public: + CPropellorBladePerformance(CFluidModel& fluidModel, unsigned short nDim, su2double areaIn, su2double radiusIn, su2double areaOut, su2double radiusOut); + + void ComputePerformance(const CTurbomachineryCombinedPrimitiveStates& primitives) override; +}; + +/*! + * \brief Class for computng full stage performance + * \author S. Vitale, N. Anand, J. Kelly + * \ingroup Output + */ +class CTurbomachineryStagePerformance { + protected: + su2double TotalStaticEfficiency, TotalTotalEfficiency, NormEntropyGen, TotalStaticPressureRatio, TotalTotalPressureRatio, EulerianWork; + CFluidModel& fluidModel; + + public: + CTurbomachineryStagePerformance(CFluidModel& fluid); + + virtual ~CTurbomachineryStagePerformance() = default; + + virtual void ComputePerformanceStage(const CTurbomachineryState& InState, const CTurbomachineryState& OutState, const CConfig* config); + + virtual void ComputeTurbineStagePerformance(const CTurbomachineryState& InState, const CTurbomachineryState& OutState); + + virtual void ComputeCompressorStagePerformance(const CTurbomachineryState& InState, const CTurbomachineryState& OutState); + + su2double GetTotalStaticEfficiency() const { return TotalStaticEfficiency; } + + su2double GetTotalTotalEfficiency() const { return TotalTotalEfficiency; } + + su2double GetEulerianWork() const { return EulerianWork; } + + su2double GetNormEntropyGen() const { return NormEntropyGen; } + + su2double GetTotalStaticPressureRatio() const { return TotalStaticPressureRatio; } + + su2double GetTotalTotalPressureRatio() const { return TotalTotalPressureRatio; } +}; + +/*! + * \brief Class for handling the calculation of turboperformance variables across a blade, span and full machine + * \author S. Vitale, N. Anand, J. Kelly + * \ingroup Output + */ +class CTurboOutput { + private: + vector>> BladesPerformances; + + static void ComputePerBlade(vector> const bladePerformances, vector const bladePrimitives); + + static void ComputePerSpan(shared_ptr const spanPerformances, const CTurbomachineryCombinedPrimitiveStates& spanPrimitives); + + public: + CTurboOutput(CConfig** config, const CGeometry& geometry, CFluidModel& fluidModel); + + const vector>>& GetBladesPerformances() const { return BladesPerformances; } + + void ComputeTurbomachineryPerformance(vector> const primitives); +}; \ No newline at end of file diff --git a/SU2_CFD/include/output/filewriter/CCGNSFileWriter.hpp b/SU2_CFD/include/output/filewriter/CCGNSFileWriter.hpp index 4a8ddfa3b98..c13e8bce7b1 100644 --- a/SU2_CFD/include/output/filewriter/CCGNSFileWriter.hpp +++ b/SU2_CFD/include/output/filewriter/CCGNSFileWriter.hpp @@ -2,14 +2,14 @@ * \file CCGNSFileWriter.hpp * \brief Headers for CGNS file writer class. * \author G. Baldan - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/include/output/filewriter/CCSVFileWriter.hpp b/SU2_CFD/include/output/filewriter/CCSVFileWriter.hpp index 1ef1b905f65..5e35cea6038 100644 --- a/SU2_CFD/include/output/filewriter/CCSVFileWriter.hpp +++ b/SU2_CFD/include/output/filewriter/CCSVFileWriter.hpp @@ -2,14 +2,14 @@ * \file CCSVFileWriter.hpp * \brief Headers fo the CSV file writer class. * \author T. Albring - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/include/output/filewriter/CFEMDataSorter.hpp b/SU2_CFD/include/output/filewriter/CFEMDataSorter.hpp index 152abb97dbf..c6ade1de686 100644 --- a/SU2_CFD/include/output/filewriter/CFEMDataSorter.hpp +++ b/SU2_CFD/include/output/filewriter/CFEMDataSorter.hpp @@ -2,14 +2,14 @@ * \file CFEMDataSorter.hpp * \brief Headers fo the FEM data sorter class. * \author T. Albring, T. Economon - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/include/output/filewriter/CFVMDataSorter.hpp b/SU2_CFD/include/output/filewriter/CFVMDataSorter.hpp index 9a70396f1ad..45a6441b6ce 100644 --- a/SU2_CFD/include/output/filewriter/CFVMDataSorter.hpp +++ b/SU2_CFD/include/output/filewriter/CFVMDataSorter.hpp @@ -2,14 +2,14 @@ * \file CFVMDataSorter.hpp * \brief Headers fo the FVM data sorter class. * \author T. Albring - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/include/output/filewriter/CFileWriter.hpp b/SU2_CFD/include/output/filewriter/CFileWriter.hpp index 9349e6dc27b..6749b03682f 100644 --- a/SU2_CFD/include/output/filewriter/CFileWriter.hpp +++ b/SU2_CFD/include/output/filewriter/CFileWriter.hpp @@ -2,14 +2,14 @@ * \file CFileWriter.hpp * \brief Headers fo the file writer class. * \author T. Albring - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/include/output/filewriter/CParallelDataSorter.hpp b/SU2_CFD/include/output/filewriter/CParallelDataSorter.hpp index 53a98e7ff8c..13e0619dd1b 100644 --- a/SU2_CFD/include/output/filewriter/CParallelDataSorter.hpp +++ b/SU2_CFD/include/output/filewriter/CParallelDataSorter.hpp @@ -2,14 +2,14 @@ * \file CParallelDataSorter.hpp * \brief Headers fo the data sorter class. * \author T. Albring, T. Economon - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/include/output/filewriter/CParaviewBinaryFileWriter.hpp b/SU2_CFD/include/output/filewriter/CParaviewBinaryFileWriter.hpp index 24fdbfb8c1e..18fdb6325b3 100644 --- a/SU2_CFD/include/output/filewriter/CParaviewBinaryFileWriter.hpp +++ b/SU2_CFD/include/output/filewriter/CParaviewBinaryFileWriter.hpp @@ -2,14 +2,14 @@ * \file CParaviewBinaryFileWriter.hpp * \brief Headers fo paraview binary file writer class. * \author T. Albring - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/include/output/filewriter/CParaviewFileWriter.hpp b/SU2_CFD/include/output/filewriter/CParaviewFileWriter.hpp index 2d87ab3f6fb..9b890050dea 100644 --- a/SU2_CFD/include/output/filewriter/CParaviewFileWriter.hpp +++ b/SU2_CFD/include/output/filewriter/CParaviewFileWriter.hpp @@ -2,14 +2,14 @@ * \file CParaviewFileWriter.hpp * \brief Headers fo the paraview file writer class. * \author T. Albring - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/include/output/filewriter/CParaviewVTMFileWriter.hpp b/SU2_CFD/include/output/filewriter/CParaviewVTMFileWriter.hpp index f80527bb1b4..18c0919eaef 100644 --- a/SU2_CFD/include/output/filewriter/CParaviewVTMFileWriter.hpp +++ b/SU2_CFD/include/output/filewriter/CParaviewVTMFileWriter.hpp @@ -2,14 +2,14 @@ * \file CParaviewVTMFileWriter.hpp * \brief Headers fo paraview binary file writer class. * \author T. Albring - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/include/output/filewriter/CParaviewXMLFileWriter.hpp b/SU2_CFD/include/output/filewriter/CParaviewXMLFileWriter.hpp index d411993e880..2a2b352f043 100644 --- a/SU2_CFD/include/output/filewriter/CParaviewXMLFileWriter.hpp +++ b/SU2_CFD/include/output/filewriter/CParaviewXMLFileWriter.hpp @@ -2,14 +2,14 @@ * \file CParaviewXMLFileWriter.hpp * \brief Headers fo paraview binary file writer class. * \author T. Albring - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/include/output/filewriter/CSTLFileWriter.hpp b/SU2_CFD/include/output/filewriter/CSTLFileWriter.hpp index 072aadc1b45..52c67948501 100644 --- a/SU2_CFD/include/output/filewriter/CSTLFileWriter.hpp +++ b/SU2_CFD/include/output/filewriter/CSTLFileWriter.hpp @@ -2,14 +2,14 @@ * \file CSTLFileWriter.hpp * \brief Headers fo the STL file writer class. * \author T. Kattmann, T. Albring - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -33,7 +33,7 @@ * \class CSTLFileWriter * \brief Class for writing STL output files. * \author T. Kattmann, T. Albring - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" */ class CSTLFileWriter final : public CFileWriter{ private: diff --git a/SU2_CFD/include/output/filewriter/CSU2BinaryFileWriter.hpp b/SU2_CFD/include/output/filewriter/CSU2BinaryFileWriter.hpp index d5ae0b76f10..3e4d8cd974a 100644 --- a/SU2_CFD/include/output/filewriter/CSU2BinaryFileWriter.hpp +++ b/SU2_CFD/include/output/filewriter/CSU2BinaryFileWriter.hpp @@ -2,14 +2,14 @@ * \file CSU2BinaryFileWriter.hpp * \brief Headers fo the SU2 binary file writer class. * \author T. Albring - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/include/output/filewriter/CSU2FileWriter.hpp b/SU2_CFD/include/output/filewriter/CSU2FileWriter.hpp index 8d360e3f7c3..132e831fe18 100644 --- a/SU2_CFD/include/output/filewriter/CSU2FileWriter.hpp +++ b/SU2_CFD/include/output/filewriter/CSU2FileWriter.hpp @@ -2,14 +2,14 @@ * \file CSU2FileWriter.hpp * \brief Headers fo the CSV file writer class. * \author T. Albring - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/include/output/filewriter/CSU2MeshFileWriter.hpp b/SU2_CFD/include/output/filewriter/CSU2MeshFileWriter.hpp index 87910dd88e4..dcc745a7d09 100644 --- a/SU2_CFD/include/output/filewriter/CSU2MeshFileWriter.hpp +++ b/SU2_CFD/include/output/filewriter/CSU2MeshFileWriter.hpp @@ -2,14 +2,14 @@ * \file CSU2MeshFileWriter.hpp * \brief Headers fo the CSV file writer class. * \author T. Albring - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/include/output/filewriter/CSurfaceFEMDataSorter.hpp b/SU2_CFD/include/output/filewriter/CSurfaceFEMDataSorter.hpp index fdda43a2d92..bf03326c7bb 100644 --- a/SU2_CFD/include/output/filewriter/CSurfaceFEMDataSorter.hpp +++ b/SU2_CFD/include/output/filewriter/CSurfaceFEMDataSorter.hpp @@ -2,14 +2,14 @@ * \file CSurfaceFEMDataSorter.hpp * \brief Headers fo the surface FEM data sorter class. * \author T. Albring - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/include/output/filewriter/CSurfaceFVMDataSorter.hpp b/SU2_CFD/include/output/filewriter/CSurfaceFVMDataSorter.hpp index 99c755699e3..6948f6c910a 100644 --- a/SU2_CFD/include/output/filewriter/CSurfaceFVMDataSorter.hpp +++ b/SU2_CFD/include/output/filewriter/CSurfaceFVMDataSorter.hpp @@ -2,14 +2,14 @@ * \file CSurfaceFVMDataSorter.hpp * \brief Headers for the surface FVM data sorter class. * \author T. Albring - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/include/output/filewriter/CTecplotBinaryFileWriter.hpp b/SU2_CFD/include/output/filewriter/CTecplotBinaryFileWriter.hpp index da464f972ef..092bff7e3f6 100644 --- a/SU2_CFD/include/output/filewriter/CTecplotBinaryFileWriter.hpp +++ b/SU2_CFD/include/output/filewriter/CTecplotBinaryFileWriter.hpp @@ -2,14 +2,14 @@ * \file CTecplotBinaryFileWriter.hpp * \brief Headers fo the tecplot binary writer class. * \author T. Albring - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/include/output/filewriter/CTecplotFileWriter.hpp b/SU2_CFD/include/output/filewriter/CTecplotFileWriter.hpp index 27b0506a80b..b728476e41b 100644 --- a/SU2_CFD/include/output/filewriter/CTecplotFileWriter.hpp +++ b/SU2_CFD/include/output/filewriter/CTecplotFileWriter.hpp @@ -2,14 +2,14 @@ * \file CTecplotFileWriter.hpp * \brief Headers fo the tecplot ASCII writer class. * \author T. Albring - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/include/output/tools/CWindowingTools.hpp b/SU2_CFD/include/output/tools/CWindowingTools.hpp index d3bcec9d29d..b4052f06ede 100644 --- a/SU2_CFD/include/output/tools/CWindowingTools.hpp +++ b/SU2_CFD/include/output/tools/CWindowingTools.hpp @@ -2,14 +2,14 @@ * \file signal_processing_toolbox.hpp * \brief Header file for the signal processing toolbox. * \author S. Schotthöfer - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/include/sgs_model.hpp b/SU2_CFD/include/sgs_model.hpp index 374a3a14010..e47be518476 100644 --- a/SU2_CFD/include/sgs_model.hpp +++ b/SU2_CFD/include/sgs_model.hpp @@ -2,14 +2,14 @@ * \file sgs_model.hpp * \brief Headers of the LES subgrid scale models of the SU2 solvers. * \author E. van der Weide, T. Economon, P. Urbanczyk - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -38,7 +38,7 @@ using namespace std; * \class CSGSModel * \brief Base class for defining the LES subgrid scale model. * \author: E. van der Weide, T. Economon, P. Urbanczyk - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" */ class CSGSModel { @@ -224,7 +224,7 @@ class CSGSModel { * \class CSmagorinskyModel * \brief Derived class for defining the Smagorinsky SGS model. * \author: E. van der Weide, T. Economon, P. Urbanczyk - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" */ class CSmagorinskyModel : public CSGSModel { @@ -413,7 +413,7 @@ class CSmagorinskyModel : public CSGSModel { * \class CWALEModel * \brief Derived class for defining the WALE SGS model. * \author: E. van der Weide, T. Economon, P. Urbanczyk - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" */ class CWALEModel : public CSGSModel { @@ -601,7 +601,7 @@ class CWALEModel : public CSGSModel { * \class CVremanModel * \brief Derived class for defining the WALE SGS model. * \author: E. van der Weide, T. Economon, P. Urbanczyk, E. Molina - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" */ class CVremanModel : public CSGSModel { diff --git a/SU2_CFD/include/sgs_model.inl b/SU2_CFD/include/sgs_model.inl index 55af9414684..57f7d0c04cf 100644 --- a/SU2_CFD/include/sgs_model.inl +++ b/SU2_CFD/include/sgs_model.inl @@ -2,14 +2,14 @@ * \file sgs_model.inl * \brief In-Line subroutines of the sgs_model.hpp file. * \author E. van der Weide, T. Economon, P. Urbanczyk - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/include/solvers/CAdjEulerSolver.hpp b/SU2_CFD/include/solvers/CAdjEulerSolver.hpp index 97e46646b9d..e644c56f66b 100644 --- a/SU2_CFD/include/solvers/CAdjEulerSolver.hpp +++ b/SU2_CFD/include/solvers/CAdjEulerSolver.hpp @@ -2,14 +2,14 @@ * \file CAdjEulerSolver.hpp * \brief Headers of the CAdjEulerSolver class * \author F. Palacios - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -49,8 +49,8 @@ class CAdjEulerSolver : public CSolver { *Sens_Press, /*!< \brief Pressure sensitivity coefficient for each boundary. */ *Sens_Temp, /*!< \brief Temperature sensitivity coefficient for each boundary. */ *Sens_BPress, /*!< \brief Back pressure sensitivity coefficient for each boundary. */ - **CSensitivity, /*!< \brief Shape sensitivity coefficient for each boundary and vertex. */ - ***DonorAdjVar; /*!< \brief Value of the donor variables at each boundary. */ + **CSensitivity; /*!< \brief Shape sensitivity coefficient for each boundary and vertex. */ + vector>> DonorAdjVar; /*!< \brief Value of the donor variables at each boundary. */ su2double Total_Sens_Mach; /*!< \brief Total mach sensitivity coefficient for all the boundaries. */ su2double Total_Sens_AoA; /*!< \brief Total angle of attack sensitivity coefficient for all the boundaries. */ su2double Total_Sens_Geo; /*!< \brief Total shape sensitivity coefficient for all the boundaries. */ @@ -63,7 +63,7 @@ class CAdjEulerSolver : public CSolver { su2double Gamma_Minus_One; /*!< \brief Fluids's Gamma - 1.0 . */ su2double *FlowPrimVar_i, /*!< \brief Store the flow solution at point i. */ *FlowPrimVar_j; /*!< \brief Store the flow solution at point j. */ - unsigned long **DonorGlobalIndex; /*!< \brief Value of the donor global index. */ + vector> DonorGlobalIndex; /*!< \brief Value of the donor global index. */ su2double pnorm, Area_Monitored; /*!< \brief Store the total area of the monitored outflow surface (used for normalization in continuous adjoint outflow conditions) */ @@ -219,8 +219,8 @@ class CAdjEulerSolver : public CSolver { * \param[in] val_vertex - Vertex of the marker val_marker where the coefficient is evaluated. * \return Value of the pressure coefficient. */ - inline su2double *GetDonorAdjVar(unsigned short val_marker, unsigned long val_vertex) const { - return DonorAdjVar[val_marker][val_vertex]; + inline const su2double* GetDonorAdjVar(unsigned short val_marker, unsigned long val_vertex) const { + return DonorAdjVar[val_marker][val_vertex].data(); } /*! diff --git a/SU2_CFD/include/solvers/CAdjNSSolver.hpp b/SU2_CFD/include/solvers/CAdjNSSolver.hpp index 22c8246b71b..e833ac06427 100644 --- a/SU2_CFD/include/solvers/CAdjNSSolver.hpp +++ b/SU2_CFD/include/solvers/CAdjNSSolver.hpp @@ -2,14 +2,14 @@ * \file CAdjNSSolver.hpp * \brief Headers of the CAdjNSSolver class * \author F. Palacios - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/include/solvers/CAdjTurbSolver.hpp b/SU2_CFD/include/solvers/CAdjTurbSolver.hpp index aa45ea72eee..a39162bfa0e 100644 --- a/SU2_CFD/include/solvers/CAdjTurbSolver.hpp +++ b/SU2_CFD/include/solvers/CAdjTurbSolver.hpp @@ -2,14 +2,14 @@ * \file CAdjTurbSolver.hpp * \brief Headers of the CAdjTurbSolver class * \author F. Palacios, A. Bueno. - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/include/solvers/CBaselineSolver.hpp b/SU2_CFD/include/solvers/CBaselineSolver.hpp index 45d76a22489..bf402218091 100644 --- a/SU2_CFD/include/solvers/CBaselineSolver.hpp +++ b/SU2_CFD/include/solvers/CBaselineSolver.hpp @@ -2,14 +2,14 @@ * \file CBaslineSolver.hpp * \brief Headers of the CBaselineSolver class * \author F. Palacios, T. Economon - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/include/solvers/CBaselineSolver_FEM.hpp b/SU2_CFD/include/solvers/CBaselineSolver_FEM.hpp index f831d2cee9d..49c78a71033 100644 --- a/SU2_CFD/include/solvers/CBaselineSolver_FEM.hpp +++ b/SU2_CFD/include/solvers/CBaselineSolver_FEM.hpp @@ -2,14 +2,14 @@ * \file CBaslineSolver_FEM.hpp * \brief Headers of the CBaselineSolver class * \author F. Palacios, T. Economon - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -31,7 +31,7 @@ * \class CBaselineSolver_FEM * \brief Main class for defining a baseline solution from a restart file for the DG-FEM solver output. * \author T. Economon. - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" */ class CBaselineSolver_FEM final : public CSolver { protected: diff --git a/SU2_CFD/include/solvers/CDiscAdjFEASolver.hpp b/SU2_CFD/include/solvers/CDiscAdjFEASolver.hpp index 296500b6112..6329fe2bbfc 100644 --- a/SU2_CFD/include/solvers/CDiscAdjFEASolver.hpp +++ b/SU2_CFD/include/solvers/CDiscAdjFEASolver.hpp @@ -2,14 +2,14 @@ * \file CDiscAdjFEASolver.hpp * \brief Headers of the CDiscAdjFEASolver class * \author R. Sanchez - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/include/solvers/CDiscAdjMeshSolver.hpp b/SU2_CFD/include/solvers/CDiscAdjMeshSolver.hpp index 7505ae5275d..af02b61780c 100644 --- a/SU2_CFD/include/solvers/CDiscAdjMeshSolver.hpp +++ b/SU2_CFD/include/solvers/CDiscAdjMeshSolver.hpp @@ -3,14 +3,14 @@ * \brief Declaration and inlines of the class to compute the * the discrete adjoint of the linear-elastic mesh solver. * \author Ruben Sanchez - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/include/solvers/CDiscAdjSolver.hpp b/SU2_CFD/include/solvers/CDiscAdjSolver.hpp index 7ea1653b1f1..0df0830513f 100644 --- a/SU2_CFD/include/solvers/CDiscAdjSolver.hpp +++ b/SU2_CFD/include/solvers/CDiscAdjSolver.hpp @@ -2,14 +2,14 @@ * \file CDiscAdjSolver.hpp * \brief Headers of the CDiscAdjSolver class * \author T. Albring - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/include/solvers/CEulerSolver.hpp b/SU2_CFD/include/solvers/CEulerSolver.hpp index 04b49d9c523..5dbef8b6784 100644 --- a/SU2_CFD/include/solvers/CEulerSolver.hpp +++ b/SU2_CFD/include/solvers/CEulerSolver.hpp @@ -2,14 +2,14 @@ * \file CEulerSolver.hpp * \brief Headers of the CEulerSolver class * \author F. Palacios, T. Economon - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -65,6 +65,9 @@ class CEulerSolver : public CFVMFlowSolverBase > DonorGlobalIndex; /*!< \brief Value of the donor global index. */ vector DonorPrimVar; /*!< \brief Value of the donor variables at each boundary. */ vector > ActDisk_DeltaP; /*!< \brief Value of the Delta P. */ + vector > ActDisk_DeltaP_r; /*!< \brief Value of the DeltaP_r. */ + vector > ActDisk_Thrust_r; /*!< \brief Value of the Thrust_r. */ + vector > ActDisk_Torque_r; /*!< \brief Value of the Torque_r. */ vector > ActDisk_DeltaT; /*!< \brief Value of the Delta T. */ su2activevector @@ -76,6 +79,10 @@ class CEulerSolver : public CFVMFlowSolverBase > ActDisk_Fx; /*!< \brief Value of the actuator disk X component of the radial and tangential forces per Unit Area resultant. */ vector > ActDisk_Fy; /*!< \brief Value of the actuator disk Y component of the radial and tangential forces per Unit Area resultant. */ vector > ActDisk_Fz; /*!< \brief Value of the actuator disk Z component of the radial and tangential forces per Unit Area resultant. */ + vector > ActDisk_Fa_BEM; /*!< \brief Value of the actuator disk Axial Force per Unit Area. */ + vector > ActDisk_Fx_BEM; /*!< \brief Value of the actuator disk X component of the radial and tangential forces per Unit Area resultant. */ + vector > ActDisk_Fy_BEM; /*!< \brief Value of the actuator disk Y component of the radial and tangential forces per Unit Area resultant. */ + vector > ActDisk_Fz_BEM; /*!< \brief Value of the actuator disk Z component of the radial and tangential forces per Unit Area resultant. */ su2double Total_CL_Prev = 0.0, /*!< \brief Total lift coefficient for all the boundaries (fixed lift mode). */ @@ -217,6 +224,18 @@ class CEulerSolver : public CFVMFlowSolverBase GetTurboPrimitive(unsigned short iBlade, unsigned short iSpan, bool INLET) override { + vector TurboPrimitive; + TurboPrimitive.reserve(5); + if (INLET) { + TurboPrimitive.push_back(DensityIn[iBlade][iSpan]); + TurboPrimitive.push_back(PressureIn[iBlade][iSpan]); + TurboPrimitive.push_back(TurboVelocityIn[iBlade][iSpan][0]); + TurboPrimitive.push_back(TurboVelocityIn[iBlade][iSpan][1]); + if (nDim==3) + TurboPrimitive.push_back(TurboVelocityIn[iBlade][iSpan][2]); + } + else { + TurboPrimitive.push_back(DensityOut[iBlade][iSpan]); + TurboPrimitive.push_back(PressureOut[iBlade][iSpan]); + TurboPrimitive.push_back(TurboVelocityOut[iBlade][iSpan][0]); + TurboPrimitive.push_back(TurboVelocityOut[iBlade][iSpan][1]); + if (nDim==3) + TurboPrimitive.push_back(TurboVelocityOut[iBlade][iSpan][2]); + } + return TurboPrimitive; + } /*! * \brief Set the solution using the Freestream values. * \param[in] config - Definition of the particular problem. */ void SetFreeStream_TurboSolution(CConfig *config) final; - /*! * \brief It computes average quantities along the span for turbomachinery analysis. * \param[in] geometry - Geometrical definition of the problem. @@ -1088,9 +1132,9 @@ class CEulerSolver : public CFVMFlowSolverBase::HybridParallelInitialization(const CConfig& confi * sum the fluxes for each cell and set the diagonal of the system matrix. ---*/ su2double parallelEff = 1.0; + +#ifdef CODI_REVERSE_TYPE + /*--- For the discrete adjoint, the reducer strategy is costly. Prefer coloring, possibly with reduced edge color + * group size. Find the maximum edge color group size that yields an efficient coloring. Also, allow larger numbers + * of colors. ---*/ + const bool relax = config.GetEdgeColoringRelaxDiscAdj(); + const auto& coloring = geometry.GetEdgeColoring(¶llelEff, relax); +#else const auto& coloring = geometry.GetEdgeColoring(¶llelEff); +#endif /*--- The decision to use the strategy is local to each rank. ---*/ ReducerStrategy = parallelEff < COLORING_EFF_THRESH; @@ -324,6 +333,29 @@ void CFVMFlowSolverBase::HybridParallelInitialization(const CConfig& confi << "\n The memory usage of the discrete adjoint solver is higher when using the fallback." #endif << endl; + } else { + if (SU2_MPI::GetRank() == MASTER_NODE) { + cout << "All ranks use edge coloring." << endl; + } + } + + const su2double coloredParallelEff = ReducerStrategy ? 1.0 : parallelEff; + su2double minColoredParallelEff = 1.0; + SU2_MPI::Reduce(&coloredParallelEff, &minColoredParallelEff, 1, MPI_DOUBLE, MPI_MIN, MASTER_NODE, SU2_MPI::GetComm()); + + const unsigned long coloredNumColors = ReducerStrategy ? 0 : coloring.getOuterSize(); + unsigned long maxColoredNumColors = 0; + SU2_MPI::Reduce(&coloredNumColors, &maxColoredNumColors, 1, MPI_UNSIGNED_LONG, MPI_MAX, MASTER_NODE, SU2_MPI::GetComm()); + + const unsigned long coloredEdgeColorGroupSize = ReducerStrategy ? 1 << 30 : geometry.GetEdgeColorGroupSize(); + unsigned long minColoredEdgeColorGroupSize = 1 << 30; + SU2_MPI::Reduce(&coloredEdgeColorGroupSize, &minColoredEdgeColorGroupSize, 1, MPI_UNSIGNED_LONG, MPI_MIN, MASTER_NODE, SU2_MPI::GetComm()); + + if (SU2_MPI::GetRank() == MASTER_NODE && numRanksUsingReducer != SU2_MPI::GetSize()) { + cout << "Among the ranks that use edge coloring,\n" + << " the minimum efficiency is " << minColoredParallelEff << ",\n" + << " the maximum number of colors is " << maxColoredNumColors << ",\n" + << " the minimum edge color group size is " << minColoredEdgeColorGroupSize << "." << endl; } } @@ -947,10 +979,8 @@ void CFVMFlowSolverBase::LoadRestart_impl(CGeometry **geometry, CSolver ** { /*--- Delete the class memory that is used to load the restart. ---*/ - delete [] Restart_Vars; - Restart_Vars = nullptr; - delete [] Restart_Data; - Restart_Data = nullptr; + Restart_Vars = decltype(Restart_Vars){}; + Restart_Data = decltype(Restart_Data){}; } END_SU2_OMP_SAFE_GLOBAL_ACCESS } diff --git a/SU2_CFD/include/solvers/CGradientSmoothingSolver.hpp b/SU2_CFD/include/solvers/CGradientSmoothingSolver.hpp index 4ff452ef94e..d3c60ebc1e7 100644 --- a/SU2_CFD/include/solvers/CGradientSmoothingSolver.hpp +++ b/SU2_CFD/include/solvers/CGradientSmoothingSolver.hpp @@ -2,14 +2,14 @@ * \file CGradientSmoothingSolver.hpp * \brief SOlver class for Sobolev smoothing of sensitivities. * \author T. Dick - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/include/solvers/CHeatSolver.hpp b/SU2_CFD/include/solvers/CHeatSolver.hpp index cbce9cd622e..e82c96881d7 100644 --- a/SU2_CFD/include/solvers/CHeatSolver.hpp +++ b/SU2_CFD/include/solvers/CHeatSolver.hpp @@ -2,14 +2,14 @@ * \file CHeatSolver.hpp * \brief Headers of the CHeatSolver class * \author F. Palacios, T. Economon - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -34,7 +34,7 @@ * \class CHeatSolver * \brief Main class for defining the finite-volume heat solver. * \author O. Burghardt - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" */ class CHeatSolver final : public CScalarSolver { protected: diff --git a/SU2_CFD/include/solvers/CIncEulerSolver.hpp b/SU2_CFD/include/solvers/CIncEulerSolver.hpp index 972d49f6413..6f96628ddc1 100644 --- a/SU2_CFD/include/solvers/CIncEulerSolver.hpp +++ b/SU2_CFD/include/solvers/CIncEulerSolver.hpp @@ -2,14 +2,14 @@ * \file CIncEulerSolver.hpp * \brief Headers of the CIncEulerSolver class * \author F. Palacios, T. Economon, T. Albring - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/include/solvers/CIncNSSolver.hpp b/SU2_CFD/include/solvers/CIncNSSolver.hpp index 7827458f4dd..f64c10f7d9b 100644 --- a/SU2_CFD/include/solvers/CIncNSSolver.hpp +++ b/SU2_CFD/include/solvers/CIncNSSolver.hpp @@ -2,14 +2,14 @@ * \file CIncNSSolver.hpp * \brief Headers of the CIncNSSolver class * \author F. Palacios, T. Economon, T. Albring - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/include/solvers/CMeshSolver.hpp b/SU2_CFD/include/solvers/CMeshSolver.hpp index 852066ad643..8e812326dbb 100644 --- a/SU2_CFD/include/solvers/CMeshSolver.hpp +++ b/SU2_CFD/include/solvers/CMeshSolver.hpp @@ -3,14 +3,14 @@ * \brief Declaration and inlines of the class to compute the deformation of * the volumetric numerical grid using the linear elasticity solver. * \author Ruben Sanchez, based on CVolumetricMovement developments (F. Palacios, A. Bueno, T. Economon, S. Padron) - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/include/solvers/CNEMOEulerSolver.hpp b/SU2_CFD/include/solvers/CNEMOEulerSolver.hpp index 5369647e6bf..90e97407792 100644 --- a/SU2_CFD/include/solvers/CNEMOEulerSolver.hpp +++ b/SU2_CFD/include/solvers/CNEMOEulerSolver.hpp @@ -2,14 +2,14 @@ * \file CNEMOEulerSolver.hpp * \brief Headers of the CNEMOEulerSolver class * \author S. R. Copeland, F. Palacios, W. Maier. - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -36,7 +36,7 @@ * \brief Main class for defining the NEMO Euler's flow solver. * \ingroup Euler_Equations * \author S. R. Copeland, F. Palacios, W. Maier. - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" */ class CNEMOEulerSolver : public CFVMFlowSolverBase { protected: diff --git a/SU2_CFD/include/solvers/CNEMONSSolver.hpp b/SU2_CFD/include/solvers/CNEMONSSolver.hpp index 0f120901e46..933687a802d 100644 --- a/SU2_CFD/include/solvers/CNEMONSSolver.hpp +++ b/SU2_CFD/include/solvers/CNEMONSSolver.hpp @@ -2,14 +2,14 @@ * \file CNEMONSSolver.hpp * \brief Headers of the CNEMONSSolver class * \author S. R. Copeland, F. Palacios, W. Maier. - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/include/solvers/CNSSolver.hpp b/SU2_CFD/include/solvers/CNSSolver.hpp index bea8562388e..8de4ba7b1aa 100644 --- a/SU2_CFD/include/solvers/CNSSolver.hpp +++ b/SU2_CFD/include/solvers/CNSSolver.hpp @@ -2,14 +2,14 @@ * \file CNSSolver.hpp * \brief Headers of the CNSSolver class * \author F. Palacios, T. Economon - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/include/solvers/CRadP1Solver.hpp b/SU2_CFD/include/solvers/CRadP1Solver.hpp index aeea803c4fe..05f7a714193 100644 --- a/SU2_CFD/include/solvers/CRadP1Solver.hpp +++ b/SU2_CFD/include/solvers/CRadP1Solver.hpp @@ -2,14 +2,14 @@ * \file CRadP1Solver.hpp * \brief Declaration and inlines of the class to compute a P1 radiation problem. * \author Ruben Sanchez - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/include/solvers/CRadSolver.hpp b/SU2_CFD/include/solvers/CRadSolver.hpp index 034c9a3c9de..4c1dbb966ae 100644 --- a/SU2_CFD/include/solvers/CRadSolver.hpp +++ b/SU2_CFD/include/solvers/CRadSolver.hpp @@ -2,14 +2,14 @@ * \file CRadSolver.hpp * \brief Declaration and inlines of the class to compute a generic radiation solver. * \author Ruben Sanchez - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/include/solvers/CScalarSolver.hpp b/SU2_CFD/include/solvers/CScalarSolver.hpp index bd854d4e51c..ca84ea7c644 100644 --- a/SU2_CFD/include/solvers/CScalarSolver.hpp +++ b/SU2_CFD/include/solvers/CScalarSolver.hpp @@ -1,14 +1,14 @@ /*! * \file CScalarSolver.hpp * \brief Headers of the CScalarSolver class - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/include/solvers/CScalarSolver.inl b/SU2_CFD/include/solvers/CScalarSolver.inl index 5b6415d65b0..6f9aeafac4a 100644 --- a/SU2_CFD/include/solvers/CScalarSolver.inl +++ b/SU2_CFD/include/solvers/CScalarSolver.inl @@ -1,14 +1,14 @@ /*! * \file CScalarSolver.inl * \brief Main subroutines of CScalarSolver class - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -46,7 +46,15 @@ CScalarSolver::CScalarSolver(CGeometry* geometry, CConfig* config, #ifdef HAVE_OMP /*--- Get the edge coloring, see notes in CEulerSolver's constructor. ---*/ su2double parallelEff = 1.0; +#ifdef CODI_REVERSE_TYPE + /*--- For the discrete adjoint, the reducer strategy is costly. Prefer coloring, possibly with reduced edge color + * group size. Find the maximum edge color group size that yields an efficient coloring. Also, allow larger numbers + * of colors. ---*/ + const bool relax = config->GetEdgeColoringRelaxDiscAdj(); + const auto& coloring = geometry->GetEdgeColoring(¶llelEff, relax); +#else const auto& coloring = geometry->GetEdgeColoring(¶llelEff); +#endif ReducerStrategy = parallelEff < COLORING_EFF_THRESH; diff --git a/SU2_CFD/include/solvers/CSolver.hpp b/SU2_CFD/include/solvers/CSolver.hpp index 44eb07c3465..2b114a7714b 100644 --- a/SU2_CFD/include/solvers/CSolver.hpp +++ b/SU2_CFD/include/solvers/CSolver.hpp @@ -2,14 +2,14 @@ * \file CSolver.hpp * \brief Headers of the CSolver class which is inherited by all of the other solvers * \author F. Palacios, T. Economon - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -133,10 +133,10 @@ class CSolver { su2activevector iPoint_UndLapl; /*!< \brief Auxiliary variable for the undivided Laplacians. */ su2activevector jPoint_UndLapl; /*!< \brief Auxiliary variable for the undivided Laplacians. */ - int *Restart_Vars; /*!< \brief Auxiliary structure for holding the number of variables and points in a restart. */ - int Restart_ExtIter; /*!< \brief Auxiliary structure for holding the external iteration offset from a restart. */ - passivedouble *Restart_Data; /*!< \brief Auxiliary structure for holding the data values from a restart. */ - unsigned short nOutputVariables; /*!< \brief Number of variables to write. */ + vector Restart_Vars; /*!< \brief Auxiliary structure for holding the number of variables and points in a restart. */ + int Restart_ExtIter; /*!< \brief Auxiliary structure for holding the external iteration offset from a restart. */ + vector Restart_Data; /*!< \brief Auxiliary structure for holding the data values from a restart. */ + unsigned short nOutputVariables; /*!< \brief Number of variables to write. */ unsigned long nMarker; /*!< \brief Total number of markers using the grid information. */ vector nVertex; /*!< \brief Store nVertex at each marker for deallocation */ @@ -3754,6 +3754,13 @@ class CSolver { */ inline virtual void InitTurboContainers(CGeometry *geometry, CConfig *config) { } + /*! + * \brief Get Primal variables for turbo performance computation + * iteration can be executed by multiple threads. + * \return returns Density, pressure and TurboVelocity (IN/OUTLET) + */ + virtual vector GetTurboPrimitive(unsigned short iBlade, unsigned short iSpan, bool Inlet) { return {}; } + /*! * \brief virtual member. * \param[in] geometry - Geometrical definition of the problem. diff --git a/SU2_CFD/include/solvers/CSolverFactory.hpp b/SU2_CFD/include/solvers/CSolverFactory.hpp index ab8d757c280..f202b6ee7f8 100644 --- a/SU2_CFD/include/solvers/CSolverFactory.hpp +++ b/SU2_CFD/include/solvers/CSolverFactory.hpp @@ -2,14 +2,14 @@ * \file CSolverFactory.hpp * \brief Headers of the CSolverFactory class * \author T. Albring - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/include/solvers/CSpeciesFlameletSolver.hpp b/SU2_CFD/include/solvers/CSpeciesFlameletSolver.hpp index f3a957dbc42..e821e1d6a9e 100644 --- a/SU2_CFD/include/solvers/CSpeciesFlameletSolver.hpp +++ b/SU2_CFD/include/solvers/CSpeciesFlameletSolver.hpp @@ -2,14 +2,14 @@ * \file CSpeciesFlameletSolver.hpp * \brief Headers of the CSpeciesFlameletSolver class * \author D. Mayer, N. Beishuizen, T. Economon, E. Bunschoten - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/include/solvers/CSpeciesSolver.hpp b/SU2_CFD/include/solvers/CSpeciesSolver.hpp index 5b78696d9ac..1ee78d90286 100644 --- a/SU2_CFD/include/solvers/CSpeciesSolver.hpp +++ b/SU2_CFD/include/solvers/CSpeciesSolver.hpp @@ -2,14 +2,14 @@ * \file CSpeciesSolver.hpp * \brief Headers of the CSpeciesSolver class * \author T. Kattmann. - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/include/solvers/CTemplateSolver.hpp b/SU2_CFD/include/solvers/CTemplateSolver.hpp index 0083cf778fb..b0459559fe6 100644 --- a/SU2_CFD/include/solvers/CTemplateSolver.hpp +++ b/SU2_CFD/include/solvers/CTemplateSolver.hpp @@ -2,14 +2,14 @@ * \file CTemplateSolver.hpp * \brief Headers of the CTemplateSolver class * \author F. Palacios - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/include/solvers/CTransLMSolver.hpp b/SU2_CFD/include/solvers/CTransLMSolver.hpp index 613be3b6da6..220f2b01ed7 100644 --- a/SU2_CFD/include/solvers/CTransLMSolver.hpp +++ b/SU2_CFD/include/solvers/CTransLMSolver.hpp @@ -2,14 +2,14 @@ * \file CTransLMSolver.hpp * \brief Headers of the CTransLMSolver class * \author A. Aranake - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/include/solvers/CTurbSASolver.hpp b/SU2_CFD/include/solvers/CTurbSASolver.hpp index 35f403b13c1..cb0307817e7 100644 --- a/SU2_CFD/include/solvers/CTurbSASolver.hpp +++ b/SU2_CFD/include/solvers/CTurbSASolver.hpp @@ -2,14 +2,14 @@ * \file CTurbSASolver.hpp * \brief Headers of the CTurbSASolver class * \author A. Bueno. - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/include/solvers/CTurbSSTSolver.hpp b/SU2_CFD/include/solvers/CTurbSSTSolver.hpp index 6dbed05fd9d..f4cf89d38d0 100644 --- a/SU2_CFD/include/solvers/CTurbSSTSolver.hpp +++ b/SU2_CFD/include/solvers/CTurbSSTSolver.hpp @@ -2,14 +2,14 @@ * \file CTurbSSTSolver.hpp * \brief Headers of the CTurbSSTSolver class * \author A. Campos, F. Palacios, T. Economon - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/include/solvers/CTurbSolver.hpp b/SU2_CFD/include/solvers/CTurbSolver.hpp index b1a46887617..a1b6103ca28 100644 --- a/SU2_CFD/include/solvers/CTurbSolver.hpp +++ b/SU2_CFD/include/solvers/CTurbSolver.hpp @@ -2,14 +2,14 @@ * \file CTurbSolver.hpp * \brief Headers of the CTurbSolver class * \author A. Bueno. - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/include/task_definition.hpp b/SU2_CFD/include/task_definition.hpp index ee97b080141..bdbea4336df 100644 --- a/SU2_CFD/include/task_definition.hpp +++ b/SU2_CFD/include/task_definition.hpp @@ -2,14 +2,14 @@ * \file task_definition.hpp * \brief Header of the task definition class for the SU2 solvers. * \author E. van der Weide, T. Economon - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -37,7 +37,7 @@ using namespace std; * \class CTaskDefinition * \brief Class for defining a task to be carried out * \author: E. van der Weide, T. Economon - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" */ class CTaskDefinition { diff --git a/SU2_CFD/include/task_definition.inl b/SU2_CFD/include/task_definition.inl index 5d9d9e939f7..1fb3c983136 100644 --- a/SU2_CFD/include/task_definition.inl +++ b/SU2_CFD/include/task_definition.inl @@ -2,14 +2,14 @@ * \file task_definition.inl * \brief In-Line subroutines of the task_definition.hpp file. * \author E. van der Weide, T. Economon - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/include/variables/CAdjEulerVariable.hpp b/SU2_CFD/include/variables/CAdjEulerVariable.hpp index 4d00e9a5b1b..3a675d2e082 100644 --- a/SU2_CFD/include/variables/CAdjEulerVariable.hpp +++ b/SU2_CFD/include/variables/CAdjEulerVariable.hpp @@ -2,14 +2,14 @@ * \file CAdjEulerVariable.hpp * \brief Main class for defining the variables of the adjoint Euler solver. * \author F. Palacios, T. Economon - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/include/variables/CAdjNSVariable.hpp b/SU2_CFD/include/variables/CAdjNSVariable.hpp index f5f6c996bb6..0e48f03abc9 100644 --- a/SU2_CFD/include/variables/CAdjNSVariable.hpp +++ b/SU2_CFD/include/variables/CAdjNSVariable.hpp @@ -2,14 +2,14 @@ * \file CAdjNSVariable.hpp * \brief Main class for defining the variables of the adjoint Navier-Stokes solver. * \author F. Palacios, T. Economon - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/include/variables/CAdjTurbVariable.hpp b/SU2_CFD/include/variables/CAdjTurbVariable.hpp index 30620b8b084..9731d23f4ca 100644 --- a/SU2_CFD/include/variables/CAdjTurbVariable.hpp +++ b/SU2_CFD/include/variables/CAdjTurbVariable.hpp @@ -2,14 +2,14 @@ * \file CAdjTurbVariable.hpp * \brief Main class for defining the variables of the adjoint turbulence model. * \author F. Palacios, T. Economon - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/include/variables/CBaselineVariable.hpp b/SU2_CFD/include/variables/CBaselineVariable.hpp index 03c60788972..f1955fe7ac3 100644 --- a/SU2_CFD/include/variables/CBaselineVariable.hpp +++ b/SU2_CFD/include/variables/CBaselineVariable.hpp @@ -2,14 +2,14 @@ * \file CBaselineVariable.hpp * \brief Main class for defining the variables of a baseline solution from a restart file (for output). * \author F. Palacios, T. Economon - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/include/variables/CDiscAdjFEABoundVariable.hpp b/SU2_CFD/include/variables/CDiscAdjFEABoundVariable.hpp index e77c33d8898..47cfd48ddbf 100644 --- a/SU2_CFD/include/variables/CDiscAdjFEABoundVariable.hpp +++ b/SU2_CFD/include/variables/CDiscAdjFEABoundVariable.hpp @@ -2,14 +2,14 @@ * \file CDiscAdjFEABoundVariable.hpp * \brief Main class for defining the variables of the adjoint FEA solver at the boundary. * \author Ruben Sanchez - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -35,7 +35,7 @@ * \ingroup DiscAdj * \brief Main class for defining the variables on the FEA boundaries for adjoint applications. * \author R. Sanchez. - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" */ class CDiscAdjFEABoundVariable final : public CDiscAdjVariable { private: diff --git a/SU2_CFD/include/variables/CDiscAdjMeshBoundVariable.hpp b/SU2_CFD/include/variables/CDiscAdjMeshBoundVariable.hpp index f889f48c38a..eaf27fc15e7 100644 --- a/SU2_CFD/include/variables/CDiscAdjMeshBoundVariable.hpp +++ b/SU2_CFD/include/variables/CDiscAdjMeshBoundVariable.hpp @@ -3,14 +3,14 @@ * \brief Declaration and inlines of the class * to define the adjoint variables of the mesh movement. * \author Ruben Sanchez - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/include/variables/CDiscAdjVariable.hpp b/SU2_CFD/include/variables/CDiscAdjVariable.hpp index 5dba843fdfe..fdf2d3a4f10 100644 --- a/SU2_CFD/include/variables/CDiscAdjVariable.hpp +++ b/SU2_CFD/include/variables/CDiscAdjVariable.hpp @@ -2,14 +2,14 @@ * \file CDiscAdjVariable.hpp * \brief Main class for defining the variables of the adjoint solver. * \author F. Palacios, T. Economon - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/include/variables/CEulerVariable.hpp b/SU2_CFD/include/variables/CEulerVariable.hpp index e9445674273..d2880fce420 100644 --- a/SU2_CFD/include/variables/CEulerVariable.hpp +++ b/SU2_CFD/include/variables/CEulerVariable.hpp @@ -2,14 +2,14 @@ * \file CEulerVariable.hpp * \brief Class for defining the variables of the compressible Euler solver. * \author F. Palacios, T. Economon - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/include/variables/CFEABoundVariable.hpp b/SU2_CFD/include/variables/CFEABoundVariable.hpp index 43f3ca6602e..37cc1d0dae4 100644 --- a/SU2_CFD/include/variables/CFEABoundVariable.hpp +++ b/SU2_CFD/include/variables/CFEABoundVariable.hpp @@ -2,14 +2,14 @@ * \file CFEABoundVariable.hpp * \brief Class for defining the variables on the FEA boundaries for FSI applications. * \author F. Palacios, T. Economon - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -37,7 +37,7 @@ * A map is constructed so that variables can be referenced by iPoint instead of iVertex. * \ingroup Structural Finite Element Analysis Variables * \author R. Sanchez. - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" */ class CFEABoundVariable final : public CFEAVariable { protected: diff --git a/SU2_CFD/include/variables/CFEAVariable.hpp b/SU2_CFD/include/variables/CFEAVariable.hpp index 0a353a7a04f..bbd579b01cf 100644 --- a/SU2_CFD/include/variables/CFEAVariable.hpp +++ b/SU2_CFD/include/variables/CFEAVariable.hpp @@ -2,14 +2,14 @@ * \file CFEAVariable.hpp * \brief Class for defining the variables of the FEM structural problem. * \author F. Palacios, T. Economon - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -34,7 +34,7 @@ * \brief Class for defining the variables of the FEM structural problem. * \ingroup Structural Finite Element Analysis Variables * \author F. Palacios, R. Sanchez. - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" */ class CFEAVariable : public CVariable { protected: diff --git a/SU2_CFD/include/variables/CFlowVariable.hpp b/SU2_CFD/include/variables/CFlowVariable.hpp index d13c386456b..5a28c16ea6b 100644 --- a/SU2_CFD/include/variables/CFlowVariable.hpp +++ b/SU2_CFD/include/variables/CFlowVariable.hpp @@ -1,14 +1,14 @@ /*! * \file CFlowVariable.hpp * \brief Class for defining the common variables of flow solvers. - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/include/variables/CHeatVariable.hpp b/SU2_CFD/include/variables/CHeatVariable.hpp index 4192b85508d..5fa5ada0ca3 100644 --- a/SU2_CFD/include/variables/CHeatVariable.hpp +++ b/SU2_CFD/include/variables/CHeatVariable.hpp @@ -2,14 +2,14 @@ * \file CHeatVariable.hpp * \brief Class for defining the variables of the finite-volume heat equation solver. * \author F. Palacios, T. Economon - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -33,7 +33,7 @@ * \class CHeatVariable * \brief Class for defining the variables of the finite-volume heat equation solver. * \author O. Burghardt - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" */ class CHeatVariable final : public CScalarVariable { public: diff --git a/SU2_CFD/include/variables/CIncEulerVariable.hpp b/SU2_CFD/include/variables/CIncEulerVariable.hpp index f72e2ef9c69..618d2b6af65 100644 --- a/SU2_CFD/include/variables/CIncEulerVariable.hpp +++ b/SU2_CFD/include/variables/CIncEulerVariable.hpp @@ -2,14 +2,14 @@ * \file CIncEulerVariable.hpp * \brief Class for defining the variables of the incompressible Euler solver. * \author F. Palacios, T. Economon - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/include/variables/CIncNSVariable.hpp b/SU2_CFD/include/variables/CIncNSVariable.hpp index a5b42a512cc..d69e0a81a22 100644 --- a/SU2_CFD/include/variables/CIncNSVariable.hpp +++ b/SU2_CFD/include/variables/CIncNSVariable.hpp @@ -3,14 +3,14 @@ * \brief Class for defining the variables of the incompressible Navier-Stokes solver. * \author F. Palacios, T. Economon - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/include/variables/CMeshBoundVariable.hpp b/SU2_CFD/include/variables/CMeshBoundVariable.hpp index 3b26d60ac37..c8f46df9507 100644 --- a/SU2_CFD/include/variables/CMeshBoundVariable.hpp +++ b/SU2_CFD/include/variables/CMeshBoundVariable.hpp @@ -3,14 +3,14 @@ * \brief Declaration and inlines of the class * to define the variables of the mesh movement at the moving boundaries. * \author Ruben Sanchez - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -131,17 +131,22 @@ class CMeshBoundVariable final : public CMeshVariable { } /*! - * \brief Get whether a node is on the boundary + * \brief Get whether a node is on the boundary. */ inline bool Get_isVertex(unsigned long iPoint) const override { return VertexMap.GetIsVertex(iPoint); } /*! - * \brief Set whether a node is on the boundary + * \brief Set whether a node is on the boundary. */ inline void Set_isVertex(unsigned long iPoint, bool isVertex) override { VertexMap.SetIsVertex(iPoint,isVertex); } + /*! + * \brief Get the vertex map used by this class. + */ + inline const CVertexMap& GetVertexMap() const { return VertexMap; } + }; diff --git a/SU2_CFD/include/variables/CMeshElement.hpp b/SU2_CFD/include/variables/CMeshElement.hpp index eda6615ef29..348d47e14a4 100644 --- a/SU2_CFD/include/variables/CMeshElement.hpp +++ b/SU2_CFD/include/variables/CMeshElement.hpp @@ -3,14 +3,14 @@ * \brief Declaration and inlines of the class * to define the variables of the mesh movement. * \author Ruben Sanchez - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/include/variables/CMeshVariable.hpp b/SU2_CFD/include/variables/CMeshVariable.hpp index 145cbc81968..636aac28dce 100644 --- a/SU2_CFD/include/variables/CMeshVariable.hpp +++ b/SU2_CFD/include/variables/CMeshVariable.hpp @@ -3,14 +3,14 @@ * \brief Declaration and inlines of the class * to define the variables of the mesh movement. * \author Ruben Sanchez - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/include/variables/CNEMOEulerVariable.hpp b/SU2_CFD/include/variables/CNEMOEulerVariable.hpp index d41ae5e73e1..5f90300960e 100644 --- a/SU2_CFD/include/variables/CNEMOEulerVariable.hpp +++ b/SU2_CFD/include/variables/CNEMOEulerVariable.hpp @@ -2,14 +2,14 @@ * \file CNEMOEulerVariable.hpp * \brief Class for defining the variables of the compressible NEMO Euler solver. * \author C. Garbacz, W. Maier, S.R. Copeland - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/include/variables/CNEMONSVariable.hpp b/SU2_CFD/include/variables/CNEMONSVariable.hpp index a54291fb0b7..4f99a411259 100644 --- a/SU2_CFD/include/variables/CNEMONSVariable.hpp +++ b/SU2_CFD/include/variables/CNEMONSVariable.hpp @@ -2,14 +2,14 @@ * \file CNEMONSVariable.hpp * \brief Class for defining the variables of the compressible NEMO Navier-Stokes solver. * \author C. Garbacz, W. Maier, S.R. Copeland. - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/include/variables/CNSVariable.hpp b/SU2_CFD/include/variables/CNSVariable.hpp index d23b7a16eb4..f33279800e6 100644 --- a/SU2_CFD/include/variables/CNSVariable.hpp +++ b/SU2_CFD/include/variables/CNSVariable.hpp @@ -2,14 +2,14 @@ * \file CNSVariable.hpp * \brief Class for defining the variables of the compressible Navier-Stokes solver. * \author F. Palacios, T. Economon - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/include/variables/CPrimitiveIndices.hpp b/SU2_CFD/include/variables/CPrimitiveIndices.hpp index 1ffbaa341f6..65d3fa4c26e 100644 --- a/SU2_CFD/include/variables/CPrimitiveIndices.hpp +++ b/SU2_CFD/include/variables/CPrimitiveIndices.hpp @@ -1,14 +1,14 @@ /*! * \file CPrimitiveIndices.hpp * \brief Abstract representation of flow primitive variable indices that tries to be efficient. - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/include/variables/CRadP1Variable.hpp b/SU2_CFD/include/variables/CRadP1Variable.hpp index bcfd89f9a31..32779a4bf91 100644 --- a/SU2_CFD/include/variables/CRadP1Variable.hpp +++ b/SU2_CFD/include/variables/CRadP1Variable.hpp @@ -2,14 +2,14 @@ * \file CRadP1Variable.hpp * \brief Class for defining the variables of the P1 radiation model. * \author Ruben Sanchez - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/include/variables/CRadVariable.hpp b/SU2_CFD/include/variables/CRadVariable.hpp index 1fa9c735b7c..5b90b765447 100644 --- a/SU2_CFD/include/variables/CRadVariable.hpp +++ b/SU2_CFD/include/variables/CRadVariable.hpp @@ -2,14 +2,14 @@ * \file CRadVariable.hpp * \brief Class for defining the variables of the radiation solver. * \author Ruben Sanchez - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/include/variables/CScalarVariable.hpp b/SU2_CFD/include/variables/CScalarVariable.hpp index bd255208c2d..fd9a142712b 100644 --- a/SU2_CFD/include/variables/CScalarVariable.hpp +++ b/SU2_CFD/include/variables/CScalarVariable.hpp @@ -2,14 +2,14 @@ * \file CScalarVariable.hpp * \brief Base class for defining the shared variables of scalar solvers. * \author F. Palacios, T. Economon - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/include/variables/CSobolevSmoothingVariable.hpp b/SU2_CFD/include/variables/CSobolevSmoothingVariable.hpp index cee4cb26ce6..22c85228a45 100644 --- a/SU2_CFD/include/variables/CSobolevSmoothingVariable.hpp +++ b/SU2_CFD/include/variables/CSobolevSmoothingVariable.hpp @@ -2,14 +2,14 @@ * \file CSobolevSmoothingVariable.hpp * \brief Class for defining the variables of the gradient smoothing. * \author T.Dick - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/include/variables/CSpeciesFlameletVariable.hpp b/SU2_CFD/include/variables/CSpeciesFlameletVariable.hpp index 9a569e15c36..e765ceaa56e 100644 --- a/SU2_CFD/include/variables/CSpeciesFlameletVariable.hpp +++ b/SU2_CFD/include/variables/CSpeciesFlameletVariable.hpp @@ -2,14 +2,14 @@ * \file CSpeciesFlameletVariable.hpp * \brief Base class for defining the variables of the flamelet transport model. * \author D. Mayer, T. Economon, N. Beishuizen - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/include/variables/CSpeciesVariable.hpp b/SU2_CFD/include/variables/CSpeciesVariable.hpp index 2c1b4a25f10..37deee63ccf 100644 --- a/SU2_CFD/include/variables/CSpeciesVariable.hpp +++ b/SU2_CFD/include/variables/CSpeciesVariable.hpp @@ -2,14 +2,14 @@ * \file CSpeciesVariable.hpp * \brief Base class for defining the variables of the species transport model. * \author T. Kattmann - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/include/variables/CTransLMVariable.hpp b/SU2_CFD/include/variables/CTransLMVariable.hpp index cb4cd0d8f97..96b556f5450 100644 --- a/SU2_CFD/include/variables/CTransLMVariable.hpp +++ b/SU2_CFD/include/variables/CTransLMVariable.hpp @@ -2,14 +2,14 @@ * \file CTransLMVariable.hpp * \brief Declaration of the variables of the transition model. * \author F. Palacios, T. Economon - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/include/variables/CTurbSAVariable.hpp b/SU2_CFD/include/variables/CTurbSAVariable.hpp index 569e416fa15..f7f7c4ea512 100644 --- a/SU2_CFD/include/variables/CTurbSAVariable.hpp +++ b/SU2_CFD/include/variables/CTurbSAVariable.hpp @@ -2,14 +2,14 @@ * \file CTurbSAVariable.hpp * \brief Declaration of the variables of the SA turbulence model. * \author F. Palacios, T. Economon - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/include/variables/CTurbSSTVariable.hpp b/SU2_CFD/include/variables/CTurbSSTVariable.hpp index 0113a0ead3a..8735ddc6de6 100644 --- a/SU2_CFD/include/variables/CTurbSSTVariable.hpp +++ b/SU2_CFD/include/variables/CTurbSSTVariable.hpp @@ -2,14 +2,14 @@ * \file CTurbSSTVariable.hpp * \brief Declaration of the variables of the SST turbulence model. * \author F. Palacios, T. Economon - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/include/variables/CTurbVariable.hpp b/SU2_CFD/include/variables/CTurbVariable.hpp index 1a476fdac70..eb74e40dbf1 100644 --- a/SU2_CFD/include/variables/CTurbVariable.hpp +++ b/SU2_CFD/include/variables/CTurbVariable.hpp @@ -2,14 +2,14 @@ * \file CTurbVariable.hpp * \brief Base class for defining the variables of the turbulence model. * \author F. Palacios, T. Economon - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/include/variables/CVariable.hpp b/SU2_CFD/include/variables/CVariable.hpp index 050be2b7787..358824ae8d7 100644 --- a/SU2_CFD/include/variables/CVariable.hpp +++ b/SU2_CFD/include/variables/CVariable.hpp @@ -4,14 +4,14 @@ variables, function definitions in file CVariable.cpp. All variables are children of at least this class. * \author F. Palacios, T. Economon - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -2170,13 +2170,19 @@ class CVariable { } inline void GetAdjointSolution_time_n(unsigned long iPoint, su2double *adj_sol) const { - for (unsigned long iVar = 0; iVar < Solution_time_n.cols(); iVar++) - adj_sol[iVar] = SU2_TYPE::GetDerivative(Solution_time_n(iPoint,iVar)); + int index = 0; + for (unsigned long iVar = 0; iVar < Solution_time_n.cols(); iVar++) { + AD::SetIndex(index, Solution_time_n(iPoint, iVar)); + adj_sol[iVar] = AD::GetDerivative(index); + } } inline void GetAdjointSolution_time_n1(unsigned long iPoint, su2double *adj_sol) const { - for (unsigned long iVar = 0; iVar < Solution_time_n1.cols(); iVar++) - adj_sol[iVar] = SU2_TYPE::GetDerivative(Solution_time_n1(iPoint,iVar)); + int index = 0; + for (unsigned long iVar = 0; iVar < Solution_time_n1.cols(); iVar++) { + AD::SetIndex(index, Solution_time_n1(iPoint, iVar)); + adj_sol[iVar] = AD::GetDerivative(index); + } } /*! diff --git a/SU2_CFD/src/CMarkerProfileReaderFVM.cpp b/SU2_CFD/src/CMarkerProfileReaderFVM.cpp index 485b004be9b..b9b27a176aa 100644 --- a/SU2_CFD/src/CMarkerProfileReaderFVM.cpp +++ b/SU2_CFD/src/CMarkerProfileReaderFVM.cpp @@ -2,14 +2,14 @@ * \file CMarkerProfileReaderFVM.cpp * \brief Class that handles the reading of marker profile files. * \author T. Economon - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/src/SU2_CFD.cpp b/SU2_CFD/src/SU2_CFD.cpp index 8cbd711ec99..353a744c891 100644 --- a/SU2_CFD/src/SU2_CFD.cpp +++ b/SU2_CFD/src/SU2_CFD.cpp @@ -2,14 +2,14 @@ * \file SU2_CFD.cpp * \brief Main file of the SU2 Computational Fluid Dynamics code * \author F. Palacios, T. Economon - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -47,7 +47,7 @@ int main(int argc, char *argv[]) { /*--- Command line parsing ---*/ - CLI::App app{"SU2 v8.0.0 \"Harrier\", The Open-Source CFD Code"}; + CLI::App app{"SU2 v8.0.1 \"Harrier\", The Open-Source CFD Code"}; app.add_flag("-d,--dryrun", dry_run, "Enable dry run mode.\n" "Only execute preprocessing steps using a dummy geometry."); app.add_option("-t,--threads", num_threads, "Number of OpenMP threads per MPI rank."); diff --git a/SU2_CFD/src/definition_structure.cpp b/SU2_CFD/src/definition_structure.cpp index bc3c4bcc191..2351a0f6180 100644 --- a/SU2_CFD/src/definition_structure.cpp +++ b/SU2_CFD/src/definition_structure.cpp @@ -2,14 +2,14 @@ * \file definition_structure.cpp * \brief Main subroutines used by SU2_CFD * \author F. Palacios, T. Economon - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/src/drivers/CDiscAdjMultizoneDriver.cpp b/SU2_CFD/src/drivers/CDiscAdjMultizoneDriver.cpp index 10afe73d7c6..fd70eaf1a4f 100644 --- a/SU2_CFD/src/drivers/CDiscAdjMultizoneDriver.cpp +++ b/SU2_CFD/src/drivers/CDiscAdjMultizoneDriver.cpp @@ -2,14 +2,14 @@ * \file CDiscAdjMultizoneDriver.cpp * \brief The main subroutines for driving adjoint multi-zone problems * \author O. Burghardt, P. Gomes, T. Albring, R. Sanchez - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -781,7 +781,9 @@ void CDiscAdjMultizoneDriver::SetAdjObjFunction() { } if (rank == MASTER_NODE) { AD::ResizeAdjoints(); + AD::BeginUseAdjoints(); AD::SetDerivative(ObjFunc_Index, SU2_TYPE::GetValue(seeding)); + AD::EndUseAdjoints(); } } diff --git a/SU2_CFD/src/drivers/CDiscAdjSinglezoneDriver.cpp b/SU2_CFD/src/drivers/CDiscAdjSinglezoneDriver.cpp index 9511f87a7fd..693388784a7 100644 --- a/SU2_CFD/src/drivers/CDiscAdjSinglezoneDriver.cpp +++ b/SU2_CFD/src/drivers/CDiscAdjSinglezoneDriver.cpp @@ -2,14 +2,14 @@ * \file driver_adjoint_singlezone.cpp * \brief The main subroutines for driving adjoint single-zone problems. * \author R. Sanchez - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -255,7 +255,9 @@ void CDiscAdjSinglezoneDriver::SetRecording(RECORDING kind_recording){ for (unsigned short iMesh = 0; iMesh <= config_container[ZONE_0]->GetnMGLevels(); iMesh++) { auto solver = solver_container[ZONE_0][INST_0][iMesh][iSol]; if (solver && solver->GetAdjoint()) { + SU2_OMP_PARALLEL_(if (solver->GetHasHybridParallel())) solver->SetRecording(geometry_container[ZONE_0][INST_0][iMesh], config_container[ZONE_0]); + END_SU2_OMP_PARALLEL } } } diff --git a/SU2_CFD/src/drivers/CDriver.cpp b/SU2_CFD/src/drivers/CDriver.cpp index c33977ad33f..7160cc93e6f 100644 --- a/SU2_CFD/src/drivers/CDriver.cpp +++ b/SU2_CFD/src/drivers/CDriver.cpp @@ -2,14 +2,14 @@ * \file CDriver.cpp * \brief The main subroutines for driving single or multi-zone problems. * \author T. Economon, H. Kline, R. Sanchez, F. Palacios - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -247,7 +247,9 @@ CDriverBase(confFile, val_nZone, MPICommunicator), StopCalc(false), fsi(false), if (rank == MASTER_NODE) cout << endl <<"---------------------- Turbomachinery Preprocessing ---------------------" << endl; - PreprocessTurbomachinery(config_container, geometry_container, solver_container, interface_container); + PreprocessTurbomachinery(config_container, geometry_container, solver_container, interface_container, dummy_geo); + } else { + mixingplane = false; } @@ -2486,10 +2488,22 @@ void CDriver::InitializeInterface(CConfig **config, CSolver***** solver, CGeomet if (rank == MASTER_NODE) cout << "boundary displacements from the structural solver." << endl; } else if (fluid_donor && fluid_target) { - interface_type = SLIDING_INTERFACE; - auto nVar = solver[donor][INST_0][MESH_0][FLOW_SOL]->GetnPrimVar(); - interface[donor][target] = new CSlidingInterface(nVar, 0); - if (rank == MASTER_NODE) cout << "sliding interface." << endl; + /*--- Mixing plane for turbo machinery applications. ---*/ + if (config[donor]->GetBoolMixingPlaneInterface()) { + interface_type = MIXING_PLANE; + auto nVar = solver[donor][INST_0][MESH_0][FLOW_SOL]->GetnVar(); + interface[donor][target] = new CMixingPlaneInterface(nVar, 0); + if (rank == MASTER_NODE) { + cout << "Set mixing-plane interface from donor zone " + << donor << " to target zone " << target << "." << endl; + } + } + else{ + auto nVar = solver[donor][INST_0][MESH_0][FLOW_SOL]->GetnPrimVar(); + interface_type = SLIDING_INTERFACE; + interface[donor][target] = new CSlidingInterface(nVar, 0); + if (rank == MASTER_NODE) cout << "sliding interface." << endl; + } } else if (heat_donor || heat_target) { if (heat_donor && heat_target) @@ -2525,18 +2539,6 @@ void CDriver::InitializeInterface(CConfig **config, CSolver***** solver, CGeomet } } - /*--- Mixing plane for turbo machinery applications. ---*/ - - if (config[donor]->GetBoolMixingPlaneInterface()) { - interface_type = MIXING_PLANE; - auto nVar = solver[donor][INST_0][MESH_0][FLOW_SOL]->GetnVar(); - interface[donor][target] = new CMixingPlaneInterface(nVar, 0); - if (rank == MASTER_NODE) { - cout << "Set mixing-plane interface from donor zone " - << donor << " to target zone " << target << "." << endl; - } - } - } } @@ -2628,7 +2630,7 @@ void CDriver::PreprocessOutput(CConfig **config, CConfig *driver_config, COutput void CDriver::PreprocessTurbomachinery(CConfig** config, CGeometry**** geometry, CSolver***** solver, - CInterface*** interface){ + CInterface*** interface, bool dummy){ unsigned short donorZone,targetZone, nMarkerInt, iMarkerInt; unsigned short nSpanMax = 0; @@ -2648,7 +2650,7 @@ void CDriver::PreprocessTurbomachinery(CConfig** config, CGeometry**** geometry, nSpanMax = config[iZone]->GetnSpanWiseSections(); } - config[ZONE_0]->SetnSpan_iZones(config[iZone]->GetnSpanWiseSections(), iZone); + config[nZone-1]->SetnSpan_iZones(config[iZone]->GetnSpanWiseSections(), iZone); geometry[iZone][INST_0][MESH_0]->SetTurboVertex(config[iZone], iZone, INFLOW, true); geometry[iZone][INST_0][MESH_0]->SetTurboVertex(config[iZone], iZone, OUTFLOW, true); @@ -2664,7 +2666,7 @@ void CDriver::PreprocessTurbomachinery(CConfig** config, CGeometry**** geometry, if (rank == MASTER_NODE) cout<<"Max number of span-wise sections among all zones: "<< nSpanMax<<"."<< endl; - if (rank == MASTER_NODE) cout<<"Initialize solver containers for average and performance quantities." << endl; + if (rank == MASTER_NODE) cout<<"Initialize solver containers for average quantities." << endl; for (iZone = 0; iZone < nZone; iZone++) { solver[iZone][INST_0][MESH_0][FLOW_SOL]->InitTurboContainers(geometry[iZone][INST_0][MESH_0],config[iZone]); } @@ -2682,16 +2684,15 @@ void CDriver::PreprocessTurbomachinery(CConfig** config, CGeometry**** geometry, if (rank == MASTER_NODE) cout << "Set span-wise sections between zones on Mixing-Plane interface." << endl; for (donorZone = 0; donorZone < nZone; donorZone++) { for (targetZone = 0; targetZone < nZone; targetZone++) { - if (targetZone != donorZone){ + if (interface_container[donorZone][targetZone] != nullptr){ interface[donorZone][targetZone]->SetSpanWiseLevels(config[donorZone], config[targetZone]); } } } } - if (rank == MASTER_NODE) cout << "Transfer average geometric quantities to zone 0." << endl; - for (iZone = 1; iZone < nZone; iZone++) { - interface[iZone][ZONE_0]->GatherAverageTurboGeoValues(geometry[iZone][INST_0][MESH_0],geometry[ZONE_0][INST_0][MESH_0], iZone); + for (iZone = 0; iZone < nZone-1; iZone++) { + geometry[nZone-1][INST_0][MESH_0]->SetAvgTurboGeoValues(config[iZone],geometry[iZone][INST_0][MESH_0], iZone); } /*--- Transfer number of blade to ZONE_0 to correctly compute turbo performance---*/ @@ -2700,7 +2701,7 @@ void CDriver::PreprocessTurbomachinery(CConfig** config, CGeometry**** geometry, config[ZONE_0]->SetnBlades(iZone, nBlades); } - if (rank == MASTER_NODE){ + if (rank == MASTER_NODE && !dummy){ for (iZone = 0; iZone < nZone; iZone++) { areaIn = geometry[iZone][INST_0][MESH_0]->GetSpanAreaIn(iZone, config[iZone]->GetnSpanWiseSections()); areaOut = geometry[iZone][INST_0][MESH_0]->GetSpanAreaOut(iZone, config[iZone]->GetnSpanWiseSections()); @@ -2718,7 +2719,7 @@ void CDriver::PreprocessTurbomachinery(CConfig** config, CGeometry**** geometry, nMarkerInt = config_container[donorZone]->GetnMarker_MixingPlaneInterface()/2; for (iMarkerInt = 1; iMarkerInt <= nMarkerInt; iMarkerInt++){ for (targetZone = 0; targetZone < nZone; targetZone++) { - if (targetZone != donorZone){ + if (interface_types[donorZone][targetZone]==MIXING_PLANE){ interface[donorZone][targetZone]->PreprocessAverage(geometry[donorZone][INST_0][MESH_0], geometry[targetZone][INST_0][MESH_0], config[donorZone], config[targetZone], iMarkerInt); @@ -2873,81 +2874,6 @@ void CDriver::PrintDirectResidual(RECORDING kind_recording) { } -void CDriver::RampTurbomachineryValues(unsigned long iter) { - auto* config = config_container[ZONE_0]; - - /*--- ROTATING FRAME Ramp: Compute the updated rotational velocity. ---*/ - if (config->GetGrid_Movement() && config->GetRampRotatingFrame()) { - const unsigned long rampFreq = SU2_TYPE::Int(config->GetRampRotatingFrame_Coeff(1)); - const unsigned long finalRamp_Iter = SU2_TYPE::Int(config->GetRampRotatingFrame_Coeff(2)); - const su2double rot_z_ini = config->GetRampRotatingFrame_Coeff(0); - const bool print = false; - - if(iter % rampFreq == 0 && iter <= finalRamp_Iter){ - - for (auto iZone = 0u; iZone < nZone; iZone++) { - const su2double rot_z_final = config_container[iZone]->GetFinalRotation_Rate_Z(); - - if (fabs(rot_z_final) > 0.0) { - const su2double rot_z = rot_z_ini + iter * ( rot_z_final - rot_z_ini) / finalRamp_Iter; - config_container[iZone]->SetRotation_Rate(2, rot_z); - if (rank == MASTER_NODE && print && iter > 0) { - cout << "\nUpdated rotating frame grid velocities for zone " << iZone << ".\n"; - } - geometry_container[iZone][INST_0][MESH_0]->SetRotationalVelocity(config_container[iZone], print); - geometry_container[iZone][INST_0][MESH_0]->SetShroudVelocity(config_container[iZone]); - } - } - - for (auto iZone = 0u; iZone < nZone; iZone++) { - geometry_container[iZone][INST_0][MESH_0]->SetAvgTurboValue(config_container[iZone], iZone, INFLOW, false); - geometry_container[iZone][INST_0][MESH_0]->SetAvgTurboValue(config_container[iZone],iZone, OUTFLOW, false); - geometry_container[iZone][INST_0][MESH_0]->GatherInOutAverageValues(config_container[iZone], false); - } - - for (auto iZone = 1u; iZone < nZone; iZone++) { - interface_container[iZone][ZONE_0]->GatherAverageTurboGeoValues( - geometry_container[iZone][INST_0][MESH_0], geometry_container[ZONE_0][INST_0][MESH_0], iZone); - } - } - } - - /*--- Outlet Pressure Ramp: Compute the updated pressure. ---*/ - if (config->GetRampOutletPressure()) { - const unsigned long rampFreq = SU2_TYPE::Int(config->GetRampOutletPressure_Coeff(1)); - const unsigned long finalRamp_Iter = SU2_TYPE::Int(config->GetRampOutletPressure_Coeff(2)); - const su2double outPres_ini = config->GetRampOutletPressure_Coeff(0); - const su2double outPres_final = config->GetFinalOutletPressure(); - - if (iter % rampFreq == 0 && iter <= finalRamp_Iter) { - const su2double outPres = outPres_ini + iter * (outPres_final - outPres_ini) / finalRamp_Iter; - if (rank == MASTER_NODE) config->SetMonitotOutletPressure(outPres); - - for (auto iZone = 0u; iZone < nZone; iZone++) { - for (auto iMarker = 0; iMarker < config_container[iZone]->GetnMarker_All(); iMarker++) { - const auto KindBC = config_container[iZone]->GetMarker_All_KindBC(iMarker); - const auto Marker_Tag = config_container[iZone]->GetMarker_All_TagBound(iMarker); - unsigned short KindBCOption; - switch (KindBC) { - case RIEMANN_BOUNDARY: - KindBCOption = config_container[iZone]->GetKind_Data_Riemann(Marker_Tag); - if (KindBCOption == STATIC_PRESSURE || KindBCOption == RADIAL_EQUILIBRIUM) { - SU2_MPI::Error("Outlet pressure ramp only implemented for NRBC", CURRENT_FUNCTION); - } - break; - case GILES_BOUNDARY: - KindBCOption = config_container[iZone]->GetKind_Data_Giles(Marker_Tag); - if (KindBCOption == STATIC_PRESSURE || KindBCOption == STATIC_PRESSURE_1D || - KindBCOption == RADIAL_EQUILIBRIUM ) { - config_container[iZone]->SetGiles_Var1(outPres, Marker_Tag); - } - break; - } - } - } - } - } -} CFluidDriver::CFluidDriver(char* confFile, unsigned short val_nZone, SU2_Comm MPICommunicator) : CDriver(confFile, val_nZone, MPICommunicator, false) { Max_Iter = config_container[ZONE_0]->GetnInner_Iter(); diff --git a/SU2_CFD/src/drivers/CDriverBase.cpp b/SU2_CFD/src/drivers/CDriverBase.cpp index 0a9e02bb8c4..c964677e623 100644 --- a/SU2_CFD/src/drivers/CDriverBase.cpp +++ b/SU2_CFD/src/drivers/CDriverBase.cpp @@ -2,14 +2,14 @@ * \file CDriverBase.hpp * \brief Base class template for all drivers. * \author H. Patel, A. Gastaldi - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser/ General Public diff --git a/SU2_CFD/src/drivers/CDummyDriver.cpp b/SU2_CFD/src/drivers/CDummyDriver.cpp index fba8430bdc7..12df347f406 100644 --- a/SU2_CFD/src/drivers/CDummyDriver.cpp +++ b/SU2_CFD/src/drivers/CDummyDriver.cpp @@ -2,14 +2,14 @@ * \file CDummyDriver.cpp * \brief Dummy driver class for running the preprocessing without geometry preprocessing. * \author T. Albring - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/src/drivers/CMultizoneDriver.cpp b/SU2_CFD/src/drivers/CMultizoneDriver.cpp index 49a9c58e724..641307e7a19 100644 --- a/SU2_CFD/src/drivers/CMultizoneDriver.cpp +++ b/SU2_CFD/src/drivers/CMultizoneDriver.cpp @@ -2,14 +2,14 @@ * \file driver_structure.cpp * \brief The main subroutines for driving multi-zone problems. * \author R. Sanchez, O. Burghardt - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -181,7 +181,6 @@ void CMultizoneDriver::StartSolver() { Preprocess(TimeIter); /*--- Run a block iteration of the multizone problem. ---*/ - Run(); /*--- Update the solution for dual time stepping strategy ---*/ @@ -252,11 +251,6 @@ void CMultizoneDriver::Preprocess(unsigned long TimeIter) { } - /*--- Ramp turbo values for unsteady problems here, otherwise do it over outer iterations. ---*/ - if (config_container[ZONE_0]->GetTime_Domain()) { - RampTurbomachineryValues(TimeIter); - } - SU2_MPI::Barrier(SU2_MPI::GetComm()); /*--- Run a predictor step ---*/ @@ -290,19 +284,11 @@ void CMultizoneDriver::RunGaussSeidel() { for (iZone = 0; iZone < nZone; iZone++) { config_container[iZone]->SetOuterIter(0ul); - /*--- This is required for correct restarts with mixing plane interfaces and GS iterations, - * for Jacobi we always do all the transfers before iterating all zones. ---*/ - if (mixingplane) SetMixingPlane(iZone); } /*--- Loop over the number of outer iterations ---*/ for (auto iOuter_Iter = 0ul; iOuter_Iter < driver_config->GetnOuter_Iter(); iOuter_Iter++) { - /*--- Ramp turbo values for steady problems here, otherwise do it over time steps. ---*/ - if (!config_container[ZONE_0]->GetTime_Domain()) { - RampTurbomachineryValues(iOuter_Iter); - } - /*--- Loop over the number of zones (IZONE) ---*/ for (iZone = 0; iZone < nZone; iZone++) { @@ -322,7 +308,6 @@ void CMultizoneDriver::RunGaussSeidel() { if (DeformMesh) UpdateMesh+=1; } } - /*--- If a mesh update is required due to the transfer of data ---*/ if (UpdateMesh > 0) DynamicMeshUpdate(iZone, TimeIter); @@ -331,8 +316,6 @@ void CMultizoneDriver::RunGaussSeidel() { solver_container, numerics_container, config_container, surface_movement, grid_movement, FFDBox, iZone, INST_0); - if (mixingplane) SetMixingPlane(iZone); - /*--- A corrector step can help preventing numerical instabilities ---*/ Corrector(iZone); @@ -356,10 +339,6 @@ void CMultizoneDriver::RunJacobi() { /*--- Loop over the number of outer iterations ---*/ for (auto iOuter_Iter = 0ul; iOuter_Iter < driver_config->GetnOuter_Iter(); iOuter_Iter++){ - /*--- Ramp turbo values for steady problems here, otherwise do it over time steps. ---*/ - if (!config_container[ZONE_0]->GetTime_Domain()) { - RampTurbomachineryValues(iOuter_Iter); - } /*--- Transfer from all zones ---*/ for (iZone = 0; iZone < nZone; iZone++){ @@ -382,7 +361,6 @@ void CMultizoneDriver::RunJacobi() { /*--- If a mesh update is required due to the transfer of data ---*/ if (UpdateMesh > 0) DynamicMeshUpdate(iZone, TimeIter); - if (mixingplane) SetMixingPlane(iZone); } /*--- Loop over the number of zones (IZONE) ---*/ @@ -605,6 +583,25 @@ bool CMultizoneDriver::TransferData(unsigned short donorZone, unsigned short tar BroadcastData(FLOW_SOL, FEA_SOL); break; case MIXING_PLANE: + { + const auto nMarkerInt = config_container[donorZone]->GetnMarker_MixingPlaneInterface() / 2; + + /*--- Transfer the average value from the donorZone to the targetZone ---*/ + for (auto iMarkerInt = 1; iMarkerInt <= nMarkerInt; iMarkerInt++) { + interface_container[donorZone][targetZone]->AllgatherAverage(solver_container[donorZone][INST_0][MESH_0][FLOW_SOL],solver_container[targetZone][INST_0][MESH_0][FLOW_SOL], + geometry_container[donorZone][INST_0][MESH_0],geometry_container[targetZone][INST_0][MESH_0], + config_container[donorZone], config_container[targetZone], iMarkerInt ); + } + + for (donorZone = 0; donorZone < nZone; donorZone++) { + if (interface_types[donorZone][targetZone]==MIXING_PLANE) { + interface_container[donorZone][targetZone]->GatherAverageValues(solver_container[donorZone][INST_0][MESH_0][FLOW_SOL],solver_container[targetZone][INST_0][MESH_0][FLOW_SOL], donorZone); + geometry_container[targetZone][INST_0][MESH_0]->SetAvgTurboGeoValues(config_container[iZone],geometry_container[iZone][INST_0][MESH_0], iZone); + } + } + + break; + } case NO_TRANSFER: case ZONES_ARE_EQUAL: case NO_COMMON_INTERFACE: @@ -619,21 +616,7 @@ bool CMultizoneDriver::TransferData(unsigned short donorZone, unsigned short tar return UpdateMesh; } -void CMultizoneDriver::SetMixingPlane(unsigned short donorZone) { - const auto nMarkerInt = config_container[donorZone]->GetnMarker_MixingPlaneInterface() / 2; - - /*--- Transfer the average value from the donor zones to the target zones ---*/ - for (auto iMarkerInt = 1; iMarkerInt <= nMarkerInt; iMarkerInt++) { - for (auto targetZone = 0u; targetZone < nZone; targetZone++) { - if (targetZone == donorZone) continue; - interface_container[donorZone][targetZone]->AllgatherAverage( - solver_container[donorZone][INST_0][MESH_0][FLOW_SOL], solver_container[targetZone][INST_0][MESH_0][FLOW_SOL], - geometry_container[donorZone][INST_0][MESH_0], geometry_container[targetZone][INST_0][MESH_0], - config_container[donorZone], config_container[targetZone], iMarkerInt); - } - } -} void CMultizoneDriver::SetTurboPerformance() { for (auto donorZone = 1u; donorZone < nZone; donorZone++) { @@ -685,8 +668,6 @@ bool CMultizoneDriver::Monitor(unsigned long TimeIter) { cout << "-------------------------------------------------------------------------" << endl; } - if (rank == MASTER_NODE && driver_config->GetBoolTurbomachinery()) SetTurboPerformance(); - return (FinalTimeReached || MaxIterationsReached); } diff --git a/SU2_CFD/src/drivers/CSinglezoneDriver.cpp b/SU2_CFD/src/drivers/CSinglezoneDriver.cpp index c35d6b8eac5..6b1bd3eaaaa 100644 --- a/SU2_CFD/src/drivers/CSinglezoneDriver.cpp +++ b/SU2_CFD/src/drivers/CSinglezoneDriver.cpp @@ -2,14 +2,14 @@ * \file driver_direct_singlezone.cpp * \brief The main subroutines for driving single-zone problems. * \author R. Sanchez - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -119,8 +119,6 @@ void CSinglezoneDriver::Preprocess(unsigned long TimeIter) { else config_container[ZONE_0]->SetPhysicalTime(0.0); - /*--- Ramp turbo BCs for this time step. ---*/ - RampTurbomachineryValues(TimeIter); /*--- Set the initial condition for EULER/N-S/RANS ---------------------------------------------*/ if (config_container[ZONE_0]->GetFluidProblem()) { diff --git a/SU2_CFD/src/fluid/CCoolProp.cpp b/SU2_CFD/src/fluid/CCoolProp.cpp index 9c48b1da6ba..bfa4c3f11b8 100644 --- a/SU2_CFD/src/fluid/CCoolProp.cpp +++ b/SU2_CFD/src/fluid/CCoolProp.cpp @@ -2,14 +2,14 @@ * \file CCoolProp.cpp * \brief Source of the fluid model from CoolProp. * \author P. Yan, G. Gori, A. Guardone - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/src/fluid/CDataDrivenFluid.cpp b/SU2_CFD/src/fluid/CDataDrivenFluid.cpp index 40f8e1234c7..fd11176eeba 100644 --- a/SU2_CFD/src/fluid/CDataDrivenFluid.cpp +++ b/SU2_CFD/src/fluid/CDataDrivenFluid.cpp @@ -2,14 +2,14 @@ * \file CDataDrivenFluid.cpp * \brief Source of the data-driven fluid model class * \author E.C.Bunschoten M.Mayer A.Capiello - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/src/fluid/CFluidFlamelet.cpp b/SU2_CFD/src/fluid/CFluidFlamelet.cpp index 0dbdee37c5e..569c4ae6a2a 100644 --- a/SU2_CFD/src/fluid/CFluidFlamelet.cpp +++ b/SU2_CFD/src/fluid/CFluidFlamelet.cpp @@ -2,14 +2,14 @@ * \file CfluidFlamelet.cpp * \brief Main subroutines of CFluidFlamelet class * \author D. Mayer, T. Economon, N. Beishuizen, E. Bunschoten - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/src/fluid/CFluidModel.cpp b/SU2_CFD/src/fluid/CFluidModel.cpp index 4c199cb117a..74801064945 100644 --- a/SU2_CFD/src/fluid/CFluidModel.cpp +++ b/SU2_CFD/src/fluid/CFluidModel.cpp @@ -2,14 +2,14 @@ * \file CFluidModel.cpp * \brief Source of the fluid model base class containing thermo-physical subroutines. * \author S.Vitale, M.Pini, G.Gori, A.Guardone, P.Colonna, T. Economon - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/src/fluid/CFluidScalar.cpp b/SU2_CFD/src/fluid/CFluidScalar.cpp index 8171e2a515e..991e29bd562 100644 --- a/SU2_CFD/src/fluid/CFluidScalar.cpp +++ b/SU2_CFD/src/fluid/CFluidScalar.cpp @@ -2,14 +2,14 @@ * \file CFluidScalar.cpp * \brief Defines the multicomponent incompressible Ideal Gas model for mixtures. * \author T. Economon, Mark Heimgartner, Cristopher Morales Ubal - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/src/fluid/CIdealGas.cpp b/SU2_CFD/src/fluid/CIdealGas.cpp index 433fc059a78..f7b02a7cf1b 100644 --- a/SU2_CFD/src/fluid/CIdealGas.cpp +++ b/SU2_CFD/src/fluid/CIdealGas.cpp @@ -2,14 +2,14 @@ * \file CIdealGas.cpp * \brief Source of the ideal gas model. * \author S. Vitale, G. Gori, M. Pini, A. Guardone, P. Colonna - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/src/fluid/CMutationTCLib.cpp b/SU2_CFD/src/fluid/CMutationTCLib.cpp index 58629d9f327..a301e8f335e 100644 --- a/SU2_CFD/src/fluid/CMutationTCLib.cpp +++ b/SU2_CFD/src/fluid/CMutationTCLib.cpp @@ -2,14 +2,14 @@ * \file CMutationTCLib.cpp * \brief Source of the Mutation++ 2T nonequilibrium gas model. * \author C. Garbacz - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/src/fluid/CNEMOGas.cpp b/SU2_CFD/src/fluid/CNEMOGas.cpp index 929a09dc63c..b567389c6a7 100644 --- a/SU2_CFD/src/fluid/CNEMOGas.cpp +++ b/SU2_CFD/src/fluid/CNEMOGas.cpp @@ -2,14 +2,14 @@ * \file CNEMOGas.cpp * \brief Source of the nonequilibrium gas model. * \author C. Garbacz, W. Maier, S. R. Copeland - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/src/fluid/CPengRobinson.cpp b/SU2_CFD/src/fluid/CPengRobinson.cpp index 4b93a28da70..2ebcb6f0c45 100644 --- a/SU2_CFD/src/fluid/CPengRobinson.cpp +++ b/SU2_CFD/src/fluid/CPengRobinson.cpp @@ -2,14 +2,14 @@ * \file CPengRobinson.cpp * \brief Source of the Peng-Robinson model. * \author S. Vitale, G. Gori, M. Pini, A. Guardone, P. Colonna - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/src/fluid/CSU2TCLib.cpp b/SU2_CFD/src/fluid/CSU2TCLib.cpp index 40b39a449f7..84b16927f5e 100644 --- a/SU2_CFD/src/fluid/CSU2TCLib.cpp +++ b/SU2_CFD/src/fluid/CSU2TCLib.cpp @@ -2,14 +2,14 @@ * \file CSU2TCLib.cpp * \brief Source of user defined 2T nonequilibrium gas model. * \author C. Garbacz, W. Maier, S. R. Copeland, J. Needels - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/src/fluid/CVanDerWaalsGas.cpp b/SU2_CFD/src/fluid/CVanDerWaalsGas.cpp index 790fe87a2fa..65ed34fe64c 100644 --- a/SU2_CFD/src/fluid/CVanDerWaalsGas.cpp +++ b/SU2_CFD/src/fluid/CVanDerWaalsGas.cpp @@ -2,14 +2,14 @@ * \file CVanDerWaalsGas.cpp * \brief Source of the Polytropic Van der Waals model. * \author S. Vitale, G. Gori, M. Pini, A. Guardone, P. Colonna - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/src/integration/CFEM_DG_Integration.cpp b/SU2_CFD/src/integration/CFEM_DG_Integration.cpp index 3378a8aea9e..beee02eb40f 100644 --- a/SU2_CFD/src/integration/CFEM_DG_Integration.cpp +++ b/SU2_CFD/src/integration/CFEM_DG_Integration.cpp @@ -2,14 +2,14 @@ * \file CFEM_DG_Integration.cpp * \brief Definition of time and space integration for the DG solver. * \author F. Palacios, T. Economon - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/src/integration/CIntegration.cpp b/SU2_CFD/src/integration/CIntegration.cpp index 1ffc29364e2..87e34cd1c8a 100644 --- a/SU2_CFD/src/integration/CIntegration.cpp +++ b/SU2_CFD/src/integration/CIntegration.cpp @@ -2,14 +2,14 @@ * \file CIntegration.cpp * \brief Implementation of the base class for space and time integration. * \author F. Palacios, T. Economon - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -89,6 +89,15 @@ void CIntegration::Space_Integration(CGeometry *geometry, solver_container[MainSolver]->PreprocessBC_Giles(geometry, config, conv_bound_numerics, OUTFLOW); } + BEGIN_SU2_OMP_SAFE_GLOBAL_ACCESS { + if (config->GetBoolTurbomachinery()){ + /*--- Average quantities at the inflow and outflow boundaries ---*/ + solver_container[MainSolver]->TurboAverageProcess(solver_container, geometry,config,INFLOW); + solver_container[MainSolver]->TurboAverageProcess(solver_container, geometry, config, OUTFLOW); + } + } + END_SU2_OMP_SAFE_GLOBAL_ACCESS + /*--- Weak boundary conditions ---*/ for (iMarker = 0; iMarker < config->GetnMarker_All(); iMarker++) { diff --git a/SU2_CFD/src/integration/CIntegrationFactory.cpp b/SU2_CFD/src/integration/CIntegrationFactory.cpp index 9352b75b98c..66f42daacaf 100644 --- a/SU2_CFD/src/integration/CIntegrationFactory.cpp +++ b/SU2_CFD/src/integration/CIntegrationFactory.cpp @@ -2,14 +2,14 @@ * \file CIntegrationFactory.cpp * \brief Main subroutines for CIntegrationFactory . * \author T. Albring - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/src/integration/CMultiGridIntegration.cpp b/SU2_CFD/src/integration/CMultiGridIntegration.cpp index 8f5b4f01de8..a6750435d97 100644 --- a/SU2_CFD/src/integration/CMultiGridIntegration.cpp +++ b/SU2_CFD/src/integration/CMultiGridIntegration.cpp @@ -2,14 +2,14 @@ * \file CMultiGridIntegration.cpp * \brief Implementation of the multigrid integration class. * \author F. Palacios, T. Economon - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -668,6 +668,20 @@ void CMultiGridIntegration::NonDimensional_Parameters(CGeometry **geometry, CSol solver_container[FinestMesh][FLOW_SOL]->Momentum_Forces(geometry[FinestMesh], config); solver_container[FinestMesh][FLOW_SOL]->Friction_Forces(geometry[FinestMesh], config); + /*--- Calculate the turbo performance ---*/ + if (config->GetBoolTurbomachinery()){ + + /*--- Average quantities at the inflow and outflow boundaries ---*/ + + solver_container[FinestMesh][FLOW_SOL]->TurboAverageProcess(solver_container[FinestMesh], geometry[FinestMesh],config,INFLOW); + solver_container[FinestMesh][FLOW_SOL]->TurboAverageProcess(solver_container[FinestMesh], geometry[FinestMesh], config, OUTFLOW); + + /*--- Gather Inflow and Outflow quantities on the Master Node to compute performance ---*/ + + solver_container[FinestMesh][FLOW_SOL]->GatherInOutAverageValues(config, geometry[FinestMesh]); + + } + break; case RUNTIME_ADJFLOW_SYS: diff --git a/SU2_CFD/src/integration/CNewtonIntegration.cpp b/SU2_CFD/src/integration/CNewtonIntegration.cpp index 69aaa4d1883..6e476429668 100644 --- a/SU2_CFD/src/integration/CNewtonIntegration.cpp +++ b/SU2_CFD/src/integration/CNewtonIntegration.cpp @@ -2,14 +2,14 @@ * \file CNewtonIntegration.cpp * \brief Newton-Krylov integration. * \author P. Gomes - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/src/integration/CSingleGridIntegration.cpp b/SU2_CFD/src/integration/CSingleGridIntegration.cpp index f31493cddb5..56b74282cde 100644 --- a/SU2_CFD/src/integration/CSingleGridIntegration.cpp +++ b/SU2_CFD/src/integration/CSingleGridIntegration.cpp @@ -2,14 +2,14 @@ * \file CSingleGridIntegration.cpp * \brief Single (fine) grid integration class implementation. * \author F. Palacios, T. Economon - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/src/integration/CStructuralIntegration.cpp b/SU2_CFD/src/integration/CStructuralIntegration.cpp index c4a6dd10405..7642484090e 100644 --- a/SU2_CFD/src/integration/CStructuralIntegration.cpp +++ b/SU2_CFD/src/integration/CStructuralIntegration.cpp @@ -2,14 +2,14 @@ * \file CStructuralIntegration.cpp * \brief Space and time integration for structural problems. * \author F. Palacios, T. Economon - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/src/interfaces/CInterface.cpp b/SU2_CFD/src/interfaces/CInterface.cpp index 4d8d33b3ecf..050c948bc1f 100644 --- a/SU2_CFD/src/interfaces/CInterface.cpp +++ b/SU2_CFD/src/interfaces/CInterface.cpp @@ -2,14 +2,14 @@ * \file CInterface.cpp * \brief Main subroutines for MPI transfer of information between zones * \author R. Sanchez - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -645,13 +645,3 @@ void CInterface::GatherAverageValues(CSolver *donor_solution, CSolver *target_so SetAverageValues(donor_solution, target_solution, donorZone); } - -void CInterface::GatherAverageTurboGeoValues(CGeometry *donor_geometry, CGeometry *target_geometry, - unsigned short donorZone){ - - - /*--- here we made the strong assumption that the mesh zone order - * follows the same order of the turbomachinery markers ---*/ - SetAverageTurboGeoValues(donor_geometry, target_geometry, donorZone); - -} diff --git a/SU2_CFD/src/interfaces/cfd/CConservativeVarsInterface.cpp b/SU2_CFD/src/interfaces/cfd/CConservativeVarsInterface.cpp index 85a4a72d4e7..14215c87622 100644 --- a/SU2_CFD/src/interfaces/cfd/CConservativeVarsInterface.cpp +++ b/SU2_CFD/src/interfaces/cfd/CConservativeVarsInterface.cpp @@ -3,14 +3,14 @@ * \brief Declaration and inlines of the class to transfer conservative variables * from a generic zone into another one. * \author Ruben Sanchez - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/src/interfaces/cfd/CMixingPlaneInterface.cpp b/SU2_CFD/src/interfaces/cfd/CMixingPlaneInterface.cpp index 76e7509edce..f35dc776f9e 100644 --- a/SU2_CFD/src/interfaces/cfd/CMixingPlaneInterface.cpp +++ b/SU2_CFD/src/interfaces/cfd/CMixingPlaneInterface.cpp @@ -3,14 +3,14 @@ * \brief Declaration and inlines of the class to transfer average variables * needed for MixingPlane computation from a generic zone into another one. * \author S. Vitale - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -136,18 +136,3 @@ void CMixingPlaneInterface::SetAverageValues(CSolver *donor_solution, CSolver *t } } - -void CMixingPlaneInterface::SetAverageTurboGeoValues(CGeometry *donor_geometry, CGeometry *target_geometry, - unsigned short donorZone){ - unsigned short iSpan; - - for(iSpan = 0; iSpanSetTurboRadiusIn(donor_geometry->GetTurboRadiusIn(donorZone, iSpan), donorZone, iSpan); - target_geometry->SetSpanAreaIn(donor_geometry->GetSpanAreaIn(donorZone, iSpan), donorZone, iSpan); - target_geometry->SetTangGridVelIn(donor_geometry->GetTangGridVelIn(donorZone, iSpan), donorZone, iSpan); - target_geometry->SetTurboRadiusOut(donor_geometry->GetTurboRadiusOut(donorZone, iSpan), donorZone, iSpan); - target_geometry->SetSpanAreaOut(donor_geometry->GetSpanAreaOut(donorZone, iSpan), donorZone, iSpan); - target_geometry->SetTangGridVelOut(donor_geometry->GetTangGridVelOut(donorZone, iSpan), donorZone, iSpan); - } - -} diff --git a/SU2_CFD/src/interfaces/cfd/CSlidingInterface.cpp b/SU2_CFD/src/interfaces/cfd/CSlidingInterface.cpp index 5eb7437bdfd..48f300323c5 100644 --- a/SU2_CFD/src/interfaces/cfd/CSlidingInterface.cpp +++ b/SU2_CFD/src/interfaces/cfd/CSlidingInterface.cpp @@ -3,14 +3,14 @@ * \brief Declaration and inlines of the class to transfer conservative variables * from a generic zone into another * \author G. Gori Politecnico di Milano - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/src/interfaces/cht/CConjugateHeatInterface.cpp b/SU2_CFD/src/interfaces/cht/CConjugateHeatInterface.cpp index 5aa6772907f..54ad481b488 100644 --- a/SU2_CFD/src/interfaces/cht/CConjugateHeatInterface.cpp +++ b/SU2_CFD/src/interfaces/cht/CConjugateHeatInterface.cpp @@ -3,14 +3,14 @@ * \brief Declaration and inlines of the class to transfer temperature and heatflux * density for conjugate heat interfaces between structure and fluid zones. * \author O. Burghardt - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/src/interfaces/fsi/CDiscAdjFlowTractionInterface.cpp b/SU2_CFD/src/interfaces/fsi/CDiscAdjFlowTractionInterface.cpp index 84ddc14f79f..299e4111986 100644 --- a/SU2_CFD/src/interfaces/fsi/CDiscAdjFlowTractionInterface.cpp +++ b/SU2_CFD/src/interfaces/fsi/CDiscAdjFlowTractionInterface.cpp @@ -3,14 +3,14 @@ * \brief Declaration and inlines of the class to transfer flow tractions * from a fluid zone into a structural zone in a discrete adjoint simulation. * \author Ruben Sanchez - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/src/interfaces/fsi/CDisplacementsInterface.cpp b/SU2_CFD/src/interfaces/fsi/CDisplacementsInterface.cpp index d05fb1f55c0..cd13b3e1f35 100644 --- a/SU2_CFD/src/interfaces/fsi/CDisplacementsInterface.cpp +++ b/SU2_CFD/src/interfaces/fsi/CDisplacementsInterface.cpp @@ -2,14 +2,14 @@ * \file CDisplacementsInterface.cpp * \brief Main subroutines for transferring boundary displacements. * \author Ruben Sanchez - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/src/interfaces/fsi/CFlowTractionInterface.cpp b/SU2_CFD/src/interfaces/fsi/CFlowTractionInterface.cpp index f3ca34dcbe0..f4395640df1 100644 --- a/SU2_CFD/src/interfaces/fsi/CFlowTractionInterface.cpp +++ b/SU2_CFD/src/interfaces/fsi/CFlowTractionInterface.cpp @@ -3,14 +3,14 @@ * \brief Declaration and inlines of the class to transfer flow tractions * from a fluid zone into a structural zone. * \author R. Sanchez - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/src/iteration/CAdjFluidIteration.cpp b/SU2_CFD/src/iteration/CAdjFluidIteration.cpp index df2be8f0884..f04d4b9b6c5 100644 --- a/SU2_CFD/src/iteration/CAdjFluidIteration.cpp +++ b/SU2_CFD/src/iteration/CAdjFluidIteration.cpp @@ -2,14 +2,14 @@ * \file CAdjFluidIteration.cpp * \brief Main subroutines used by SU2_CFD * \author F. Palacios, T. Economon - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/src/iteration/CDiscAdjFEAIteration.cpp b/SU2_CFD/src/iteration/CDiscAdjFEAIteration.cpp index 2887abf7d8c..d7848499f62 100644 --- a/SU2_CFD/src/iteration/CDiscAdjFEAIteration.cpp +++ b/SU2_CFD/src/iteration/CDiscAdjFEAIteration.cpp @@ -2,14 +2,14 @@ * \file CDiscAdjFEAIteration.cpp * \brief Main subroutines used by SU2_CFD * \author F. Palacios, T. Economon - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -30,11 +30,9 @@ #include "../../include/solvers/CFEASolver.hpp" #include "../../include/output/COutput.hpp" -CDiscAdjFEAIteration::CDiscAdjFEAIteration(const CConfig *config) : CIteration(config), CurrentRecording(NONE) { - fem_iteration = new CFEAIteration(config); -} +CDiscAdjFEAIteration::CDiscAdjFEAIteration(const CConfig *config) : CIteration(config), CurrentRecording(NONE) {} -CDiscAdjFEAIteration::~CDiscAdjFEAIteration() = default; +CDiscAdjFEAIteration::~CDiscAdjFEAIteration() {} void CDiscAdjFEAIteration::Preprocess(COutput* output, CIntegration**** integration, CGeometry**** geometry, CSolver***** solver, CNumerics****** numerics, CConfig** config, @@ -275,7 +273,9 @@ void CDiscAdjFEAIteration::InitializeAdjoint(CSolver***** solver, CGeometry**** /*--- Initialize the adjoints the conservative variables ---*/ AD::ResizeAdjoints(); + AD::BeginUseAdjoints(); solver[iZone][iInst][MESH_0][ADJFEA_SOL]->SetAdjoint_Output(geometry[iZone][iInst][MESH_0], config[iZone]); + AD::EndUseAdjoints(); } bool CDiscAdjFEAIteration::Monitor(COutput* output, CIntegration**** integration, CGeometry**** geometry, diff --git a/SU2_CFD/src/iteration/CDiscAdjFluidIteration.cpp b/SU2_CFD/src/iteration/CDiscAdjFluidIteration.cpp index 3e5c8b8d85f..6bde7b99418 100644 --- a/SU2_CFD/src/iteration/CDiscAdjFluidIteration.cpp +++ b/SU2_CFD/src/iteration/CDiscAdjFluidIteration.cpp @@ -2,14 +2,14 @@ * \file CDiscAdjFluidIteration.cpp * \brief Main subroutines used by SU2_CFD * \author F. Palacios, T. Economon - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -361,6 +361,7 @@ void CDiscAdjFluidIteration::InitializeAdjoint(CSolver***** solver, CGeometry*** auto geometry0 = geometry[iZone][iInst][MESH_0]; AD::ResizeAdjoints(); + AD::BeginUseAdjoints(); SU2_OMP_PARALLEL_(if(solvers0[ADJFLOW_SOL]->GetHasHybridParallel())) { @@ -392,6 +393,8 @@ void CDiscAdjFluidIteration::InitializeAdjoint(CSolver***** solver, CGeometry*** } END_SU2_OMP_PARALLEL + + AD::EndUseAdjoints(); } void CDiscAdjFluidIteration::RegisterInput(CSolver***** solver, CGeometry**** geometry, CConfig** config, @@ -454,7 +457,9 @@ void CDiscAdjFluidIteration::SetDependencies(CSolver***** solver, CGeometry**** (kind_recording == RECORDING::SOLUTION_AND_MESH)) { /*--- Update geometry to get the influence on other geometry variables (normals, volume etc) ---*/ + SU2_OMP_PARALLEL CGeometry::UpdateGeometry(geometry[iZone][iInst], config[iZone]); + END_SU2_OMP_PARALLEL CGeometry::ComputeWallDistance(config, geometry); } @@ -477,10 +482,6 @@ void CDiscAdjFluidIteration::SetDependencies(CSolver***** solver, CGeometry**** solvers0[SPECIES_SOL]->InitiateComms(geometry0, config[iZone], SOLUTION); solvers0[SPECIES_SOL]->CompleteComms(geometry0, config[iZone], SOLUTION); } - - } - END_SU2_OMP_PARALLEL - if (config[iZone]->GetWeakly_Coupled_Heat()) { solvers0[HEAT_SOL]->Set_Heatflux_Areas(geometry0, config[iZone]); solvers0[HEAT_SOL]->Preprocessing(geometry0, solvers0, config[iZone], MESH_0, NO_RK_ITER, RUNTIME_HEAT_SYS, true); @@ -488,6 +489,10 @@ void CDiscAdjFluidIteration::SetDependencies(CSolver***** solver, CGeometry**** solvers0[HEAT_SOL]->InitiateComms(geometry0, config[iZone], SOLUTION); solvers0[HEAT_SOL]->CompleteComms(geometry0, config[iZone], SOLUTION); } + + } + END_SU2_OMP_PARALLEL + if (config[iZone]->AddRadiation()) { solvers0[RAD_SOL]->Postprocessing(geometry0, solvers0, config[iZone], MESH_0); solvers0[RAD_SOL]->InitiateComms(geometry0, config[iZone], SOLUTION); diff --git a/SU2_CFD/src/iteration/CDiscAdjHeatIteration.cpp b/SU2_CFD/src/iteration/CDiscAdjHeatIteration.cpp index 90d7c5ab85d..1c3666d5216 100644 --- a/SU2_CFD/src/iteration/CDiscAdjHeatIteration.cpp +++ b/SU2_CFD/src/iteration/CDiscAdjHeatIteration.cpp @@ -2,14 +2,14 @@ * \file CDiscAdjHeatIteration.cpp * \brief Main subroutines used by SU2_CFD * \author F. Palacios, T. Economon - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -159,7 +159,9 @@ void CDiscAdjHeatIteration::InitializeAdjoint(CSolver***** solver, CGeometry**** /*--- Initialize the adjoints the solution variables ---*/ AD::ResizeAdjoints(); + AD::BeginUseAdjoints(); solver[iZone][iInst][MESH_0][ADJHEAT_SOL]->SetAdjoint_Output(geometry[iZone][iInst][MESH_0], config[iZone]); + AD::EndUseAdjoints(); } void CDiscAdjHeatIteration::RegisterInput(CSolver***** solver, CGeometry**** geometry, CConfig** config, diff --git a/SU2_CFD/src/iteration/CFEAIteration.cpp b/SU2_CFD/src/iteration/CFEAIteration.cpp index 3d1b5fd857e..8ff8deb14ef 100644 --- a/SU2_CFD/src/iteration/CFEAIteration.cpp +++ b/SU2_CFD/src/iteration/CFEAIteration.cpp @@ -2,14 +2,14 @@ * \file CFEAIteration.cpp * \brief Main subroutines used by SU2_CFD * \author F. Palacios, T. Economon - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/src/iteration/CFEMFluidIteration.cpp b/SU2_CFD/src/iteration/CFEMFluidIteration.cpp index a599fec41a3..d04f5163d26 100644 --- a/SU2_CFD/src/iteration/CFEMFluidIteration.cpp +++ b/SU2_CFD/src/iteration/CFEMFluidIteration.cpp @@ -2,14 +2,14 @@ * \file CFEMFluidIteration.cpp * \brief Main subroutines used by SU2_CFD * \author F. Palacios, T. Economon - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/src/iteration/CFluidIteration.cpp b/SU2_CFD/src/iteration/CFluidIteration.cpp index f879606b66e..d5ae7bd22e4 100644 --- a/SU2_CFD/src/iteration/CFluidIteration.cpp +++ b/SU2_CFD/src/iteration/CFluidIteration.cpp @@ -2,14 +2,14 @@ * \file CFluidIteration.cpp * \brief Main subroutines used by SU2_CFD * \author F. Palacios, T. Economon - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -213,11 +213,23 @@ bool CFluidIteration::Monitor(COutput* output, CIntegration**** integration, CGe UsedTime = StopTime - StartTime; + + /*--- Turbomachinery Specific Montior ---*/ + if (config[ZONE_0]->GetBoolTurbomachinery()){ + if (val_iZone == config[ZONE_0]->GetnZone()-1) { + ComputeTurboPerformance(solver, geometry, config, config[val_iZone]->GetnInner_Iter()); + + output->SetHistoryOutput(geometry, solver, + config, TurbomachineryStagePerformance, TurbomachineryPerformance, val_iZone, config[val_iZone]->GetTimeIter(), config[val_iZone]->GetOuterIter(), + config[val_iZone]->GetInnerIter(), val_iInst); + } + + TurboMonitor(geometry, config, config[val_iZone]->GetInnerIter()); + } output->SetHistoryOutput(geometry[val_iZone][val_iInst][MESH_0], solver[val_iZone][val_iInst][MESH_0], config[val_iZone], config[val_iZone]->GetTimeIter(), config[val_iZone]->GetOuterIter(), config[val_iZone]->GetInnerIter()); - - /*--- If convergence was reached --*/ + StopCalc = output->GetConvergence(); /* --- Checking convergence of Fixed CL mode to target CL, and perform finite differencing if needed --*/ @@ -230,6 +242,119 @@ bool CFluidIteration::Monitor(COutput* output, CIntegration**** integration, CGe return StopCalc; } +void CFluidIteration::TurboMonitor(CGeometry**** geometry_container, CConfig** config_container, unsigned long iter) { + + auto* config = config_container[ZONE_0]; + + if (config_container[ZONE_0]->GetMultizone_Problem()) + iter = config_container[ZONE_0]->GetOuterIter(); + + + /*--- ROTATING FRAME Ramp: Compute the updated rotational velocity. ---*/ + if (config->GetGrid_Movement() && config->GetRampRotatingFrame()) { + const unsigned long rampFreq = SU2_TYPE::Int(config->GetRampRotatingFrame_Coeff(1)); + const unsigned long finalRamp_Iter = SU2_TYPE::Int(config->GetRampRotatingFrame_Coeff(2)); + const su2double rot_z_ini = config->GetRampRotatingFrame_Coeff(0); + const bool print = false; + + if(iter % rampFreq == 0 && iter <= finalRamp_Iter){ + + for (auto iZone = 0u; iZone < nZone; iZone++) { + const su2double rot_z_final = config_container[iZone]->GetFinalRotation_Rate_Z(); + + if (fabs(rot_z_final) > 0.0) { + const su2double rot_z = rot_z_ini + iter * ( rot_z_final - rot_z_ini) / finalRamp_Iter; + config_container[iZone]->SetRotation_Rate(2, rot_z); + if (rank == MASTER_NODE && print && iter > 0) { + cout << "\nUpdated rotating frame grid velocities for zone " << iZone << ".\n"; + } + geometry_container[iZone][INST_0][MESH_0]->SetRotationalVelocity(config_container[iZone], print); + geometry_container[iZone][INST_0][MESH_0]->SetShroudVelocity(config_container[iZone]); + } + } + + for (auto iZone = 0u; iZone < nZone; iZone++) { + geometry_container[iZone][INST_0][MESH_0]->SetAvgTurboValue(config_container[iZone], iZone, INFLOW, false); + geometry_container[iZone][INST_0][MESH_0]->SetAvgTurboValue(config_container[iZone],iZone, OUTFLOW, false); + geometry_container[iZone][INST_0][MESH_0]->GatherInOutAverageValues(config_container[iZone], false); + } + + for (auto iZone = 0; iZone < nZone-1; iZone++) { + geometry_container[nZone-1][INST_0][MESH_0]->SetAvgTurboGeoValues(config_container[iZone],geometry_container[iZone][INST_0][MESH_0], iZone); + } + } + } + + /*--- Outlet Pressure Ramp: Compute the updated pressure. ---*/ + if (config->GetRampOutletPressure()) { + const unsigned long rampFreq = SU2_TYPE::Int(config->GetRampOutletPressure_Coeff(1)); + const unsigned long finalRamp_Iter = SU2_TYPE::Int(config->GetRampOutletPressure_Coeff(2)); + const su2double outPres_ini = config->GetRampOutletPressure_Coeff(0); + const su2double outPres_final = config->GetFinalOutletPressure(); + + if (iter % rampFreq == 0 && iter <= finalRamp_Iter) { + const su2double outPres = outPres_ini + iter * (outPres_final - outPres_ini) / finalRamp_Iter; + if (rank == MASTER_NODE) config->SetMonitotOutletPressure(outPres); + + for (auto iZone = 0u; iZone < nZone; iZone++) { + for (auto iMarker = 0; iMarker < config_container[iZone]->GetnMarker_All(); iMarker++) { + const auto KindBC = config_container[iZone]->GetMarker_All_KindBC(iMarker); + const auto Marker_Tag = config_container[iZone]->GetMarker_All_TagBound(iMarker); + unsigned short KindBCOption; + switch (KindBC) { + case RIEMANN_BOUNDARY: + KindBCOption = config_container[iZone]->GetKind_Data_Riemann(Marker_Tag); + if (KindBCOption == STATIC_PRESSURE || KindBCOption == RADIAL_EQUILIBRIUM) { + SU2_MPI::Error("Outlet pressure ramp only implemented for NRBC", CURRENT_FUNCTION); + } + break; + case GILES_BOUNDARY: + KindBCOption = config_container[iZone]->GetKind_Data_Giles(Marker_Tag); + if (KindBCOption == STATIC_PRESSURE || KindBCOption == STATIC_PRESSURE_1D || + KindBCOption == RADIAL_EQUILIBRIUM ) { + config_container[iZone]->SetGiles_Var1(outPres, Marker_Tag); + } + break; + } + } + } + } + } +} + +void CFluidIteration::ComputeTurboPerformance(CSolver***** solver, CGeometry**** geometry_container, CConfig** config_container, unsigned long ExtIter) { + unsigned short nDim = geometry_container[ZONE_0][INST_0][MESH_0]->GetnDim(); + unsigned short nBladesRow = config_container[ZONE_0]->GetnMarker_Turbomachinery(); + unsigned short iBlade=0, iSpan; + vector TurboPrimitiveIn, TurboPrimitiveOut; + std::vector> bladesPrimitives; + + if (rank == MASTER_NODE) { + for (iBlade = 0; iBlade < nBladesRow; iBlade++){ + /* Blade Primitive initialized per blade */ + std::vector bladePrimitives; + auto nSpan = config_container[iBlade]->GetnSpanWiseSections(); + for (iSpan = 0; iSpan < nSpan + 1; iSpan++) { + TurboPrimitiveIn= solver[iBlade][INST_0][MESH_0][FLOW_SOL]->GetTurboPrimitive(iBlade, iSpan, true); + TurboPrimitiveOut= solver[iBlade][INST_0][MESH_0][FLOW_SOL]->GetTurboPrimitive(iBlade, iSpan, false); + auto spanInletPrimitive = CTurbomachineryPrimitiveState(TurboPrimitiveIn, nDim, geometry_container[iBlade][INST_0][MESH_0]->GetTangGridVelIn(iBlade, iSpan)); + auto spanOutletPrimitive = CTurbomachineryPrimitiveState(TurboPrimitiveOut, nDim, geometry_container[iBlade][INST_0][MESH_0]->GetTangGridVelOut(iBlade, iSpan)); + auto spanCombinedPrimitive = CTurbomachineryCombinedPrimitiveStates(spanInletPrimitive, spanOutletPrimitive); + bladePrimitives.push_back(spanCombinedPrimitive); + } + bladesPrimitives.push_back(bladePrimitives); + } + TurbomachineryPerformance->ComputeTurbomachineryPerformance(bladesPrimitives); + + auto nSpan = config_container[ZONE_0]->GetnSpanWiseSections(); + auto InState = TurbomachineryPerformance->GetBladesPerformances().at(ZONE_0).at(nSpan)->GetInletState(); + nSpan = config_container[nZone-1]->GetnSpanWiseSections(); + auto OutState = TurbomachineryPerformance->GetBladesPerformances().at(nZone-1).at(nSpan)->GetOutletState(); + + TurbomachineryStagePerformance->ComputePerformanceStage(InState, OutState, config_container[nZone-1]); + } +} + void CFluidIteration::Postprocess(COutput* output, CIntegration**** integration, CGeometry**** geometry, CSolver***** solver, CNumerics****** numerics, CConfig** config, CSurfaceMovement** surface_movement, CVolumetricMovement*** grid_movement, diff --git a/SU2_CFD/src/iteration/CHeatIteration.cpp b/SU2_CFD/src/iteration/CHeatIteration.cpp index 6ca18523335..75519b7c432 100644 --- a/SU2_CFD/src/iteration/CHeatIteration.cpp +++ b/SU2_CFD/src/iteration/CHeatIteration.cpp @@ -2,14 +2,14 @@ * \file CHeatIteration.cpp * \brief Main subroutines used by SU2_CFD * \author F. Palacios, T. Economon - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/src/iteration/CIteration.cpp b/SU2_CFD/src/iteration/CIteration.cpp index 98190ef3972..c3194b6d07c 100644 --- a/SU2_CFD/src/iteration/CIteration.cpp +++ b/SU2_CFD/src/iteration/CIteration.cpp @@ -2,14 +2,14 @@ * \file iteration_structure.cpp * \brief Main subroutines used by SU2_CFD * \author F. Palacios, T. Economon - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -90,9 +90,11 @@ void CIteration::SetGrid_Movement(CGeometry** geometry, CSurfaceMovement* surfac break; } - if (config->GetSurface_Movement(AEROELASTIC) || config->GetSurface_Movement(AEROELASTIC_RIGID_MOTION)) { + if (config->GetSurface_Movement(AEROELASTIC) || config->GetSurface_Movement(AEROELASTIC_RIGID_MOTION) || config->GetSurface_Movement(MOVING_WALL)) { /*--- Apply rigid mesh transformation to entire grid first, if necessary ---*/ + if (IntIter == 0) { + if (Kind_Grid_Movement == AEROELASTIC_RIGID_MOTION) { if (rank == MASTER_NODE) cout << endl << " Performing rigid mesh transformation." << endl; @@ -110,6 +112,11 @@ void CIteration::SetGrid_Movement(CGeometry** geometry, CSurfaceMovement* surfac grid_movement->UpdateMultiGrid(geometry, config); } + if (config->GetSurface_Movement(MOVING_WALL)) { + for (auto iMGlevel = 0u; iMGlevel <= config->GetnMGLevels(); iMGlevel++) { + geometry[iMGlevel]->SetWallVelocity(config, iMGlevel == 0u); + } + } } diff --git a/SU2_CFD/src/iteration/CIterationFactory.cpp b/SU2_CFD/src/iteration/CIterationFactory.cpp index 159d8133c51..9265e5088a1 100644 --- a/SU2_CFD/src/iteration/CIterationFactory.cpp +++ b/SU2_CFD/src/iteration/CIterationFactory.cpp @@ -2,14 +2,14 @@ * \file CAdjFluidIteration.cpp * \brief Main subroutines used by SU2_CFD * \author F. Palacios, T. Economon - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/src/iteration/CTurboIteration.cpp b/SU2_CFD/src/iteration/CTurboIteration.cpp index 0028df639f7..c0352b60c70 100644 --- a/SU2_CFD/src/iteration/CTurboIteration.cpp +++ b/SU2_CFD/src/iteration/CTurboIteration.cpp @@ -2,14 +2,14 @@ * \file CTurboIteration.cpp * \brief Main subroutines used by SU2_CFD * \author F. Palacios, T. Economon - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -27,6 +27,7 @@ #include "../../include/iteration/CTurboIteration.hpp" #include "../../include/output/COutput.hpp" +#include "../../include/output/CTurboOutput.hpp" void CTurboIteration::Preprocess(COutput* output, CIntegration**** integration, CGeometry**** geometry, CSolver***** solver, CNumerics****** numerics, CConfig** config, @@ -37,6 +38,11 @@ void CTurboIteration::Preprocess(COutput* output, CIntegration**** integration, solver[val_iZone][val_iInst][MESH_0], geometry[val_iZone][val_iInst][MESH_0], config[val_iZone], INFLOW); solver[val_iZone][val_iInst][MESH_0][FLOW_SOL]->TurboAverageProcess( solver[val_iZone][val_iInst][MESH_0], geometry[val_iZone][val_iInst][MESH_0], config[val_iZone], OUTFLOW); + + if (config[val_iZone]->GetBoolTurbomachinery()) { + InitTurboPerformance(geometry[val_iZone][INST_0][MESH_0], config, + solver[val_iZone][val_iInst][MESH_0][FLOW_SOL]->GetFluidModel()); + } } void CTurboIteration::Postprocess(COutput* output, CIntegration**** integration, CGeometry**** geometry, @@ -53,3 +59,8 @@ void CTurboIteration::Postprocess(COutput* output, CIntegration**** integration, solver[val_iZone][val_iInst][MESH_0][FLOW_SOL]->GatherInOutAverageValues(config[val_iZone], geometry[val_iZone][val_iInst][MESH_0]); } + +void CTurboIteration::InitTurboPerformance(CGeometry* geometry, CConfig** config, CFluidModel* fluid) { + TurbomachineryPerformance = std::make_shared(config, *geometry, *fluid); + TurbomachineryStagePerformance = std::make_shared(*fluid); +} diff --git a/SU2_CFD/src/limiters/CLimiterDetails.cpp b/SU2_CFD/src/limiters/CLimiterDetails.cpp index 22636efe0b8..abcbb242a5e 100644 --- a/SU2_CFD/src/limiters/CLimiterDetails.cpp +++ b/SU2_CFD/src/limiters/CLimiterDetails.cpp @@ -3,14 +3,14 @@ * \brief A class template that allows defining limiters via * specialization of particular details. * \author P. Gomes - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/src/meson.build b/SU2_CFD/src/meson.build index 946227cd305..43e8aaed5de 100644 --- a/SU2_CFD/src/meson.build +++ b/SU2_CFD/src/meson.build @@ -32,6 +32,7 @@ su2_cfd_src += files(['output/COutputFactory.cpp', 'output/CHeatOutput.cpp', 'output/CMeshOutput.cpp', 'output/CNEMOCompOutput.cpp', + 'output/CTurboOutput.cpp' , 'output/COutput.cpp', 'output/filewriter/CParallelDataSorter.cpp', 'output/filewriter/CFVMDataSorter.cpp', diff --git a/SU2_CFD/src/numerics/CGradSmoothing.cpp b/SU2_CFD/src/numerics/CGradSmoothing.cpp index 7ce9c56d2ab..480231e52be 100644 --- a/SU2_CFD/src/numerics/CGradSmoothing.cpp +++ b/SU2_CFD/src/numerics/CGradSmoothing.cpp @@ -2,14 +2,14 @@ * \file CGradSmoothing.cpp * \brief Numerics for gradient smoothing problems. * \author T.Dick - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/src/numerics/CNumerics.cpp b/SU2_CFD/src/numerics/CNumerics.cpp index 19a73d8edeb..5cb0fd54313 100644 --- a/SU2_CFD/src/numerics/CNumerics.cpp +++ b/SU2_CFD/src/numerics/CNumerics.cpp @@ -4,14 +4,14 @@ * Contains methods for common tasks, e.g. compute flux * Jacobians. * \author F. Palacios, T. Economon - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/src/numerics/NEMO/CNEMONumerics.cpp b/SU2_CFD/src/numerics/NEMO/CNEMONumerics.cpp index f1219a0c7f2..37772801a5f 100644 --- a/SU2_CFD/src/numerics/NEMO/CNEMONumerics.cpp +++ b/SU2_CFD/src/numerics/NEMO/CNEMONumerics.cpp @@ -4,14 +4,14 @@ * Contains methods for common tasks, e.g. compute flux * Jacobians. * \author S.R. Copeland, W. Maier, C. Garbacz - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/src/numerics/NEMO/NEMO_diffusion.cpp b/SU2_CFD/src/numerics/NEMO/NEMO_diffusion.cpp index 8de786c08a9..14248f77e28 100644 --- a/SU2_CFD/src/numerics/NEMO/NEMO_diffusion.cpp +++ b/SU2_CFD/src/numerics/NEMO/NEMO_diffusion.cpp @@ -3,14 +3,14 @@ * \brief Implementation of numerics classes for discretization * of viscous fluxes in fluid flow NEMO problems. * \author S.R. Copeland, W. Maier, C. Garbacz - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/src/numerics/NEMO/NEMO_sources.cpp b/SU2_CFD/src/numerics/NEMO/NEMO_sources.cpp index c49dae47bd1..00fc6d6ad41 100644 --- a/SU2_CFD/src/numerics/NEMO/NEMO_sources.cpp +++ b/SU2_CFD/src/numerics/NEMO/NEMO_sources.cpp @@ -3,14 +3,14 @@ * \brief Implementation of numerics classes for integration * of source terms in fluid flow NEMO problems. * \author C. Garbacz, W. Maier, S. Copeland. - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/src/numerics/NEMO/convection/ausm_slau.cpp b/SU2_CFD/src/numerics/NEMO/convection/ausm_slau.cpp index 865cdc268d9..61acd0f1fe5 100644 --- a/SU2_CFD/src/numerics/NEMO/convection/ausm_slau.cpp +++ b/SU2_CFD/src/numerics/NEMO/convection/ausm_slau.cpp @@ -2,14 +2,14 @@ * \file ausm_slau.cpp * \brief Implementations of the AUSM-family of schemes in NEMO. * \author F. Palacios, S.R. Copeland, W. Maier, C. Garbacz - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/src/numerics/NEMO/convection/lax.cpp b/SU2_CFD/src/numerics/NEMO/convection/lax.cpp index f7b4922c4c6..c951cd98fb2 100644 --- a/SU2_CFD/src/numerics/NEMO/convection/lax.cpp +++ b/SU2_CFD/src/numerics/NEMO/convection/lax.cpp @@ -2,14 +2,14 @@ * \file lax.cpp * \brief Implementations of Lax centered scheme. * \author F. Palacios, S.R. Copeland, W. Maier, C. Garbacz - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/src/numerics/NEMO/convection/msw.cpp b/SU2_CFD/src/numerics/NEMO/convection/msw.cpp index 5941a4793d3..c78afaa3cf4 100644 --- a/SU2_CFD/src/numerics/NEMO/convection/msw.cpp +++ b/SU2_CFD/src/numerics/NEMO/convection/msw.cpp @@ -2,14 +2,14 @@ * \file msw.cpp * \brief Implementations of the modified Steger-Warming scheme. * \author ADL Stanford, S.R. Copeland, W. Maier, C. Garbacz - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/src/numerics/NEMO/convection/roe.cpp b/SU2_CFD/src/numerics/NEMO/convection/roe.cpp index 8ff004f79af..64b722c153e 100644 --- a/SU2_CFD/src/numerics/NEMO/convection/roe.cpp +++ b/SU2_CFD/src/numerics/NEMO/convection/roe.cpp @@ -2,14 +2,14 @@ * \file roe.cpp * \brief Implementations of Roe-type schemes in NEMO. * \author S. R. Copeland, W. Maier, C. Garbacz - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/src/numerics/continuous_adjoint/adj_convection.cpp b/SU2_CFD/src/numerics/continuous_adjoint/adj_convection.cpp index 2e17ae0db6c..cc8c0bf34d8 100644 --- a/SU2_CFD/src/numerics/continuous_adjoint/adj_convection.cpp +++ b/SU2_CFD/src/numerics/continuous_adjoint/adj_convection.cpp @@ -2,14 +2,14 @@ * \file adj_convection.cpp * \brief Implementation of adjoint convection numerics classes. * \author F. Palacios, T. Economon - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/src/numerics/continuous_adjoint/adj_diffusion.cpp b/SU2_CFD/src/numerics/continuous_adjoint/adj_diffusion.cpp index 8a407c2caa8..1e0c461e89c 100644 --- a/SU2_CFD/src/numerics/continuous_adjoint/adj_diffusion.cpp +++ b/SU2_CFD/src/numerics/continuous_adjoint/adj_diffusion.cpp @@ -2,14 +2,14 @@ * \file adj_diffusion.cpp * \brief Implementation of adjoint diffusion numerics classes. * \author F. Palacios, T. Economon - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -54,6 +54,7 @@ CAvgGrad_AdjFlow::~CAvgGrad_AdjFlow() { delete [] Mean_GradPsiE; for (unsigned short iDim = 0; iDim < nDim; iDim++) delete [] Mean_GradPhi[iDim]; + delete [] Mean_GradPhi; } void CAvgGrad_AdjFlow::ComputeResidual(su2double *val_residual_i, su2double *val_residual_j, diff --git a/SU2_CFD/src/numerics/continuous_adjoint/adj_sources.cpp b/SU2_CFD/src/numerics/continuous_adjoint/adj_sources.cpp index 061772e4ffb..ec7c0572638 100644 --- a/SU2_CFD/src/numerics/continuous_adjoint/adj_sources.cpp +++ b/SU2_CFD/src/numerics/continuous_adjoint/adj_sources.cpp @@ -2,14 +2,14 @@ * \file adj_sources.cpp * \brief Implementation of adjoint source numerics classes. * \author F. Palacios, T. Economon - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/src/numerics/elasticity/CFEAElasticity.cpp b/SU2_CFD/src/numerics/elasticity/CFEAElasticity.cpp index ac2cd9fef96..54755b3b047 100644 --- a/SU2_CFD/src/numerics/elasticity/CFEAElasticity.cpp +++ b/SU2_CFD/src/numerics/elasticity/CFEAElasticity.cpp @@ -2,14 +2,14 @@ * \file CFEAElasticity.cpp * \brief Base class for all elasticity problems. * \author R. Sanchez - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/src/numerics/elasticity/CFEALinearElasticity.cpp b/SU2_CFD/src/numerics/elasticity/CFEALinearElasticity.cpp index 06dade2a629..b6e618d8391 100644 --- a/SU2_CFD/src/numerics/elasticity/CFEALinearElasticity.cpp +++ b/SU2_CFD/src/numerics/elasticity/CFEALinearElasticity.cpp @@ -2,14 +2,14 @@ * \file CFEALinearElasticity.cpp * \brief Classes for linear elasticity problems. * \author R. Sanchez - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/src/numerics/elasticity/CFEANonlinearElasticity.cpp b/SU2_CFD/src/numerics/elasticity/CFEANonlinearElasticity.cpp index 418566611f9..dab484d3fa8 100644 --- a/SU2_CFD/src/numerics/elasticity/CFEANonlinearElasticity.cpp +++ b/SU2_CFD/src/numerics/elasticity/CFEANonlinearElasticity.cpp @@ -3,14 +3,14 @@ * \brief This file contains the routines for setting the tangent matrix and * residual of a FEM nonlinear elastic structural problem. * \author R. Sanchez - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -214,6 +214,9 @@ CFEANonlinearElasticity::~CFEANonlinearElasticity() { delete [] EField_Ref_Mod; delete [] EField_Curr_Unit; + if (maxwell_stress) { + delete [] ke_DE_i; + } } diff --git a/SU2_CFD/src/numerics/elasticity/nonlinear_models.cpp b/SU2_CFD/src/numerics/elasticity/nonlinear_models.cpp index 7e870386678..19d1d5317aa 100644 --- a/SU2_CFD/src/numerics/elasticity/nonlinear_models.cpp +++ b/SU2_CFD/src/numerics/elasticity/nonlinear_models.cpp @@ -2,14 +2,14 @@ * \file nonlinear_models.cpp * \brief Definition of nonlinear constitutive models. * \author R. Sanchez - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/src/numerics/flow/convection/ausm_slau.cpp b/SU2_CFD/src/numerics/flow/convection/ausm_slau.cpp index 525dcaae823..c068a3201c5 100644 --- a/SU2_CFD/src/numerics/flow/convection/ausm_slau.cpp +++ b/SU2_CFD/src/numerics/flow/convection/ausm_slau.cpp @@ -2,14 +2,14 @@ * \file ausm_slau.cpp * \brief Implementations of the AUSM-family of schemes. * \author F. Palacios, T. Economon - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/src/numerics/flow/convection/centered.cpp b/SU2_CFD/src/numerics/flow/convection/centered.cpp index c4568903172..29821bdb428 100644 --- a/SU2_CFD/src/numerics/flow/convection/centered.cpp +++ b/SU2_CFD/src/numerics/flow/convection/centered.cpp @@ -2,14 +2,14 @@ * \file centered.cpp * \brief Implementations of centered schemes. * \author F. Palacios, T. Economon - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/src/numerics/flow/convection/fds.cpp b/SU2_CFD/src/numerics/flow/convection/fds.cpp index 358d844e5a2..4a83dfe275d 100644 --- a/SU2_CFD/src/numerics/flow/convection/fds.cpp +++ b/SU2_CFD/src/numerics/flow/convection/fds.cpp @@ -2,14 +2,14 @@ * \file fds.cpp * \brief Implementation of Flux-Difference-Splitting schemes. * \author F. Palacios, T. Economon - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/src/numerics/flow/convection/fvs.cpp b/SU2_CFD/src/numerics/flow/convection/fvs.cpp index 171a781a54c..8dcbf1f57d8 100644 --- a/SU2_CFD/src/numerics/flow/convection/fvs.cpp +++ b/SU2_CFD/src/numerics/flow/convection/fvs.cpp @@ -2,14 +2,14 @@ * \file fvs.cpp * \brief Implementations of Flux-Vector-Splitting schemes. * \author F. Palacios, T. Economon - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/src/numerics/flow/convection/hllc.cpp b/SU2_CFD/src/numerics/flow/convection/hllc.cpp index e5893bced0d..d574f929b20 100644 --- a/SU2_CFD/src/numerics/flow/convection/hllc.cpp +++ b/SU2_CFD/src/numerics/flow/convection/hllc.cpp @@ -2,14 +2,14 @@ * \file hllc.cpp * \brief Implementations of HLLC schemes. * \author F. Palacios, T. Economon - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/src/numerics/flow/convection/roe.cpp b/SU2_CFD/src/numerics/flow/convection/roe.cpp index 67ef74124f3..07c69f2030d 100644 --- a/SU2_CFD/src/numerics/flow/convection/roe.cpp +++ b/SU2_CFD/src/numerics/flow/convection/roe.cpp @@ -2,14 +2,14 @@ * \file roe.cpp * \brief Implementations of Roe-type schemes. * \author F. Palacios, T. Economon - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/src/numerics/flow/flow_diffusion.cpp b/SU2_CFD/src/numerics/flow/flow_diffusion.cpp index d99fcb04b88..962445c2851 100644 --- a/SU2_CFD/src/numerics/flow/flow_diffusion.cpp +++ b/SU2_CFD/src/numerics/flow/flow_diffusion.cpp @@ -3,14 +3,14 @@ * \brief Implementation of numerics classes for discretization * of viscous fluxes in fluid flow problems. * \author F. Palacios, T. Economon - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/src/numerics/flow/flow_sources.cpp b/SU2_CFD/src/numerics/flow/flow_sources.cpp index 5ebcbf3096e..9ed1305f3ce 100644 --- a/SU2_CFD/src/numerics/flow/flow_sources.cpp +++ b/SU2_CFD/src/numerics/flow/flow_sources.cpp @@ -3,14 +3,14 @@ * \brief Implementation of numerics classes for integration * of source terms in fluid flow problems. * \author F. Palacios, T. Economon - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/src/numerics/radiation.cpp b/SU2_CFD/src/numerics/radiation.cpp index c6f7fc009bd..21d8b4fd36c 100644 --- a/SU2_CFD/src/numerics/radiation.cpp +++ b/SU2_CFD/src/numerics/radiation.cpp @@ -3,14 +3,14 @@ * \brief This file contains the implementation of the numerical * methods for radiation. * \author Ruben Sanchez - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/src/numerics/scalar/scalar_sources.cpp b/SU2_CFD/src/numerics/scalar/scalar_sources.cpp index b2ab84650a1..2be483b1076 100644 --- a/SU2_CFD/src/numerics/scalar/scalar_sources.cpp +++ b/SU2_CFD/src/numerics/scalar/scalar_sources.cpp @@ -1,14 +1,14 @@ /*! * \file scalar_sources.cpp * \brief Implementation of numerics classes for integration of scalar source-terms. - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/src/numerics/species/species_sources.cpp b/SU2_CFD/src/numerics/species/species_sources.cpp index 7ae364ce941..4396d856172 100644 --- a/SU2_CFD/src/numerics/species/species_sources.cpp +++ b/SU2_CFD/src/numerics/species/species_sources.cpp @@ -3,14 +3,14 @@ * \brief Implementation of numerics classes for integration of * species transport source-terms. * \author T. Kattmann - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/src/numerics/template.cpp b/SU2_CFD/src/numerics/template.cpp index 40459ad02d1..94925cea0c8 100644 --- a/SU2_CFD/src/numerics/template.cpp +++ b/SU2_CFD/src/numerics/template.cpp @@ -2,14 +2,14 @@ * \file template.cpp * \brief Empty implementation of numerics templates, see .hpp file. * \author F. Palacios, T. Economon - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/src/output/CAdjElasticityOutput.cpp b/SU2_CFD/src/output/CAdjElasticityOutput.cpp index 6b6be57f485..e510ed478cd 100644 --- a/SU2_CFD/src/output/CAdjElasticityOutput.cpp +++ b/SU2_CFD/src/output/CAdjElasticityOutput.cpp @@ -2,14 +2,14 @@ * \file CAdjElasticityOutput.cpp * \brief Main subroutines for elasticity discrete adjoint output * \author R. Sanchez - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/src/output/CAdjFlowCompOutput.cpp b/SU2_CFD/src/output/CAdjFlowCompOutput.cpp index 92c09dd01f4..d7cf9aacb40 100644 --- a/SU2_CFD/src/output/CAdjFlowCompOutput.cpp +++ b/SU2_CFD/src/output/CAdjFlowCompOutput.cpp @@ -2,14 +2,14 @@ * \file CAdjFlowCompOutput.cpp * \brief Main subroutines for flow discrete adjoint output * \author R. Sanchez - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -36,8 +36,7 @@ CAdjFlowCompOutput::CAdjFlowCompOutput(CConfig *config, unsigned short nDim) : C /*--- Set the default history fields if nothing is set in the config file ---*/ if (nRequestedHistoryFields == 0) { - requestedHistoryFields.emplace_back("ITER"); - requestedHistoryFields.emplace_back("RMS_RES"); + RequestCommonHistory(config->GetTime_Domain()); requestedHistoryFields.emplace_back("SENSITIVITY"); nRequestedHistoryFields = requestedHistoryFields.size(); } diff --git a/SU2_CFD/src/output/CAdjFlowIncOutput.cpp b/SU2_CFD/src/output/CAdjFlowIncOutput.cpp index b279d0fbfe1..6d90dc815a2 100644 --- a/SU2_CFD/src/output/CAdjFlowIncOutput.cpp +++ b/SU2_CFD/src/output/CAdjFlowIncOutput.cpp @@ -2,14 +2,14 @@ * \file CAdjFlowIncOutput.cpp * \brief Main subroutines for flow discrete adjoint output * \author R. Sanchez - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -42,8 +42,7 @@ CAdjFlowIncOutput::CAdjFlowIncOutput(CConfig *config, unsigned short nDim) : CAd /*--- Set the default history fields if nothing is set in the config file ---*/ if (nRequestedHistoryFields == 0) { - requestedHistoryFields.emplace_back("ITER"); - requestedHistoryFields.emplace_back("RMS_RES"); + RequestCommonHistory(config->GetTime_Domain()); requestedHistoryFields.emplace_back("SENSITIVITY"); nRequestedHistoryFields = requestedHistoryFields.size(); } diff --git a/SU2_CFD/src/output/CAdjFlowOutput.cpp b/SU2_CFD/src/output/CAdjFlowOutput.cpp index f20f9c9bcad..7926f679698 100644 --- a/SU2_CFD/src/output/CAdjFlowOutput.cpp +++ b/SU2_CFD/src/output/CAdjFlowOutput.cpp @@ -2,14 +2,14 @@ * \file CAdjFlowOutput.cpp * \brief Main subroutines for flow discrete adjoint output * \author T. Kattmann - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/src/output/CAdjHeatOutput.cpp b/SU2_CFD/src/output/CAdjHeatOutput.cpp index 2b856ef793b..86d90bcef7e 100644 --- a/SU2_CFD/src/output/CAdjHeatOutput.cpp +++ b/SU2_CFD/src/output/CAdjHeatOutput.cpp @@ -2,14 +2,14 @@ * \file CAdjHeatOutput.cpp * \brief Main subroutines for flow discrete adjoint output * \author R. Sanchez - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -36,8 +36,7 @@ CAdjHeatOutput::CAdjHeatOutput(CConfig *config, unsigned short nDim) : COutput(c /*--- Set the default history fields if nothing is set in the config file ---*/ if (nRequestedHistoryFields == 0){ - requestedHistoryFields.emplace_back("ITER"); - requestedHistoryFields.emplace_back("RMS_RES"); + RequestCommonHistory(config->GetTime_Domain()); requestedHistoryFields.emplace_back("SENSITIVITY"); nRequestedHistoryFields = requestedHistoryFields.size(); } diff --git a/SU2_CFD/src/output/CBaselineOutput.cpp b/SU2_CFD/src/output/CBaselineOutput.cpp index b17250c29e3..3807cd45905 100644 --- a/SU2_CFD/src/output/CBaselineOutput.cpp +++ b/SU2_CFD/src/output/CBaselineOutput.cpp @@ -2,14 +2,14 @@ * \file CBaselineOutput.cpp * \brief Main subroutines for flow discrete adjoint output * \author R. Sanchez - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/src/output/CElasticityOutput.cpp b/SU2_CFD/src/output/CElasticityOutput.cpp index 288fd8adbf8..a5570566ea2 100644 --- a/SU2_CFD/src/output/CElasticityOutput.cpp +++ b/SU2_CFD/src/output/CElasticityOutput.cpp @@ -2,14 +2,14 @@ * \file CElasticityOutput.cpp * \brief Main subroutines for FEA output * \author R. Sanchez - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -43,8 +43,7 @@ CElasticityOutput::CElasticityOutput(CConfig *config, unsigned short nDim) : COu /*--- Default fields for screen output ---*/ if (nRequestedHistoryFields == 0){ - requestedHistoryFields.emplace_back("ITER"); - requestedHistoryFields.emplace_back("RMS_RES"); + RequestCommonHistory(dynamic); nRequestedHistoryFields = requestedHistoryFields.size(); } diff --git a/SU2_CFD/src/output/CFVMOutput.cpp b/SU2_CFD/src/output/CFVMOutput.cpp index c9c3047aefd..9a401608ad7 100644 --- a/SU2_CFD/src/output/CFVMOutput.cpp +++ b/SU2_CFD/src/output/CFVMOutput.cpp @@ -2,14 +2,14 @@ * \file CFVMOutput.cpp * \brief Main subroutines for Finite Volume Method output * \author T. Kattmann - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/src/output/CFlowCompFEMOutput.cpp b/SU2_CFD/src/output/CFlowCompFEMOutput.cpp index d6ed5b9dc48..d4410a3113c 100644 --- a/SU2_CFD/src/output/CFlowCompFEMOutput.cpp +++ b/SU2_CFD/src/output/CFlowCompFEMOutput.cpp @@ -2,14 +2,14 @@ * \file CFlowCompFEMOutput.cpp * \brief Main subroutines for compressible flow output * \author R. Sanchez - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -38,8 +38,7 @@ CFlowCompFEMOutput::CFlowCompFEMOutput(CConfig *config, unsigned short nDim) : C /*--- Set the default history fields if nothing is set in the config file ---*/ if (nRequestedHistoryFields == 0){ - requestedHistoryFields.emplace_back("ITER"); - requestedHistoryFields.emplace_back("RMS_RES"); + RequestCommonHistory(config->GetTime_Domain()); nRequestedHistoryFields = requestedHistoryFields.size(); } if (nRequestedScreenFields == 0){ diff --git a/SU2_CFD/src/output/CFlowCompOutput.cpp b/SU2_CFD/src/output/CFlowCompOutput.cpp index 8e39772f9c1..1666191e07f 100644 --- a/SU2_CFD/src/output/CFlowCompOutput.cpp +++ b/SU2_CFD/src/output/CFlowCompOutput.cpp @@ -2,14 +2,14 @@ * \file CFlowCompOutput.cpp * \brief Main subroutines for compressible flow output * \author R. Sanchez - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -37,8 +37,7 @@ CFlowCompOutput::CFlowCompOutput(const CConfig *config, unsigned short nDim) : C /*--- Set the default history fields if nothing is set in the config file ---*/ if (nRequestedHistoryFields == 0){ - requestedHistoryFields.emplace_back("ITER"); - requestedHistoryFields.emplace_back("RMS_RES"); + RequestCommonHistory(config->GetTime_Domain()); nRequestedHistoryFields = requestedHistoryFields.size(); } if (nRequestedScreenFields == 0){ @@ -207,6 +206,8 @@ void CFlowCompOutput::SetHistoryOutputFields(CConfig *config){ AddNearfieldInverseDesignOutput(); + if (config->GetBoolTurbomachinery()) AddTurboOutput(config->GetnZone()); + } void CFlowCompOutput::SetVolumeOutputFields(CConfig *config){ @@ -478,7 +479,6 @@ void CFlowCompOutput::LoadHistoryData(CConfig *config, CGeometry *geometry, CSol SetCustomOutputs(solver, geometry, config); SetCustomAndComboObjectives(FLOW_SOL, config, solver); - } bool CFlowCompOutput::SetInitResiduals(const CConfig *config){ @@ -498,3 +498,350 @@ void CFlowCompOutput::SetAdditionalScreenOutput(const CConfig *config){ bool CFlowCompOutput::WriteHistoryFileOutput(const CConfig *config) { return !config->GetFinite_Difference_Mode() && COutput::WriteHistoryFileOutput(config); } + +void CFlowCompOutput::SetTurboPerformance_Output(std::shared_ptr TurboPerf, + CConfig *config, + unsigned long TimeIter, + unsigned long OuterIter, + unsigned long InnerIter) { + + curTimeIter = TimeIter; + curAbsTimeIter = TimeIter - config->GetRestart_Iter(); + curOuterIter = OuterIter; + curInnerIter = InnerIter; + stringstream TurboInOutTable, TurboPerfTable; + + auto BladePerformance = TurboPerf->GetBladesPerformances(); + + /*-- Table for Turbomachinery Performance Values --*/ + PrintingToolbox::CTablePrinter TurboInOut(&TurboInOutTable); + + TurboInOutTable<<"-- Turbomachinery inlet and outlet property Summary:"<GetnZone()-1; iZone++) { + auto nSpan = config->GetnSpan_iZones(iZone); + const auto& BladePerf = BladePerformance.at(iZone).at(nSpan); + + TurboInOut<<" BLADE ROW INDEX "<GetInletState().GetEntropy() << BladePerf->GetOutletState().GetEntropy(); + TurboInOut << "Total Enthalpy " << BladePerf->GetInletState().GetTotalEnthalpy() << BladePerf->GetOutletState().GetTotalEnthalpy(); + TurboInOut << "Total Pressure " << BladePerf->GetInletState().GetTotalPressure() << BladePerf->GetOutletState().GetTotalPressure(); + TurboInOut << "Pressure " << BladePerf->GetInletState().GetPressure() << BladePerf->GetOutletState().GetPressure(); + TurboInOut << "Density " << BladePerf->GetInletState().GetDensity() << BladePerf->GetOutletState().GetDensity(); + TurboInOut << "Normal Velocity " << BladePerf->GetInletState().GetVelocity()[0] << BladePerf->GetOutletState().GetVelocity()[0]; + TurboInOut << "Tangential Velocity " << BladePerf->GetInletState().GetVelocity()[1] << BladePerf->GetOutletState().GetVelocity()[1]; + TurboInOut << "Mass Flow " << BladePerf->GetInletState().GetMassFlow() << BladePerf->GetOutletState().GetMassFlow(); + TurboInOut << "Mach " << BladePerf->GetInletState().GetMachValue() << BladePerf->GetOutletState().GetMachValue(); + TurboInOut << "Abs Flow Angle " << BladePerf->GetInletState().GetAbsFlowAngle()*180/PI_NUMBER << BladePerf->GetOutletState().GetAbsFlowAngle()*180/PI_NUMBER; + TurboInOut.PrintFooter(); + } + cout< TurboStagePerf, std::shared_ptr TurboPerf, CConfig *config) { + + stringstream TurboMZPerf; + + PrintingToolbox::CTablePrinter TurboInOut(&TurboMZPerf); + + /*--- Print header for the stage performance computation ---*/ + TurboMZPerf<<"-- Turbomachinery Stage Performance --"<GetNormEntropyGen()*100 + <GetEulerianWork() + <GetTotalStaticEfficiency()*100 + <GetTotalTotalEfficiency()*100 + <GetTotalStaticPressureRatio() + <GetTotalTotalPressureRatio(); + TurboInOut.PrintFooter(); + cout< TurboStagePerf, std::shared_ptr TurboPerf, CConfig *config) { + auto BladePerformance = TurboPerf->GetBladesPerformances(); + for (unsigned short iZone = 0; iZone <= config->GetnZone()-1; iZone++) { + auto nSpan = config->GetnSpan_iZones(iZone); + const auto& BladePerf = BladePerformance.at(iZone).at(nSpan); + + stringstream tag; + tag << iZone + 1; + + SetHistoryOutputValue("EntropyIn_" + tag.str(), BladePerf->GetInletState().GetEntropy()); + SetHistoryOutputValue("EntropyOut_" + tag.str(), BladePerf->GetOutletState().GetEntropy()); + SetHistoryOutputValue("TotalEntahalpyIn_" + tag.str(), BladePerf->GetInletState().GetTotalEnthalpy()); + SetHistoryOutputValue("TotalEnthalpyOut_" + tag.str(), BladePerf->GetOutletState().GetTotalEnthalpy()); + SetHistoryOutputValue("TotalPressureIn_" + tag.str(), BladePerf->GetInletState().GetTotalPressure()); + SetHistoryOutputValue("TotalPressureOut_" + tag.str(), BladePerf->GetOutletState().GetTotalPressure()); + SetHistoryOutputValue("PressureIn_" + tag.str(), BladePerf->GetInletState().GetPressure()); + SetHistoryOutputValue("PressureOut_" + tag.str(), BladePerf->GetOutletState().GetPressure()); + SetHistoryOutputValue("DensityIn_" + tag.str(), BladePerf->GetInletState().GetDensity()); + SetHistoryOutputValue("DensityOut_" + tag.str(), BladePerf->GetOutletState().GetDensity()); + SetHistoryOutputValue("NormalVelocityIn_" + tag.str(), BladePerf->GetInletState().GetVelocity()[0]); + SetHistoryOutputValue("NormalVelocityOut_" + tag.str(), BladePerf->GetOutletState().GetVelocity()[0]); + SetHistoryOutputValue("TangentialVelocityIn_" + tag.str(), BladePerf->GetInletState().GetVelocity()[1]); + SetHistoryOutputValue("TangentialVelocityOut_" + tag.str(), BladePerf->GetOutletState().GetVelocity()[1]); + SetHistoryOutputValue("MassFlowIn_" + tag.str(), BladePerf->GetInletState().GetMassFlow()); + SetHistoryOutputValue("MassFlowOut_" + tag.str(), BladePerf->GetOutletState().GetMassFlow()); + SetHistoryOutputValue("MachIn_" + tag.str(), BladePerf->GetInletState().GetMachValue()); + SetHistoryOutputValue("MachOut_" + tag.str(), BladePerf->GetOutletState().GetMachValue()); + SetHistoryOutputValue("AbsFlowAngleIn_" + tag.str(), BladePerf->GetInletState().GetAbsFlowAngle()*180/PI_NUMBER); + SetHistoryOutputValue("AbsFlowAngleOut_" + tag.str(), BladePerf->GetOutletState().GetAbsFlowAngle()*180/PI_NUMBER); + } + SetHistoryOutputValue("EntropyGeneration", TurboStagePerf->GetNormEntropyGen()*100); + SetHistoryOutputValue("EulerianWork", TurboStagePerf->GetEulerianWork()); + SetHistoryOutputValue("TotalStaticEfficiency", TurboStagePerf->GetTotalStaticEfficiency()*100); + SetHistoryOutputValue("TotalTotalEfficiency", TurboStagePerf->GetTotalTotalEfficiency()*100); + SetHistoryOutputValue("PressureRatioTS", TurboStagePerf->GetTotalStaticPressureRatio()); + SetHistoryOutputValue("PressureRatioTT", TurboStagePerf->GetTotalTotalPressureRatio()); +} + +void CFlowCompOutput::WriteTurboSpanwisePerformance(std::shared_ptr TurboPerf, CGeometry *geometry, CConfig **config, unsigned short val_iZone) { + + string inMarker_Tag, outMarker_Tag, inMarkerTag_Mix; + unsigned short nZone = config[val_iZone]->GetnZone(); + + unsigned short iDim, iSpan; + + unsigned long iExtIter = config[val_iZone]->GetOuterIter(); + const su2double* SpanWiseValuesIn, *SpanWiseValuesOut; + ofstream file; + string spanwise_performance_filename; + + auto BladePerformance = TurboPerf->GetBladesPerformances(); + + /*--- Start of write file turboperformance spanwise ---*/ + SpanWiseValuesIn = geometry->GetSpanWiseValue(INFLOW); + SpanWiseValuesOut = geometry->GetSpanWiseValue(OUTFLOW); + + /*--- Writing Span wise inflow thermodynamic quantities. ---*/ + spanwise_performance_filename = "TURBOMACHINERY/inflow_spanwise_thermodynamic_values.dat"; + if (nZone > 1) { + spanwise_performance_filename.append("_" + std::to_string(val_iZone) + ".dat"); + } else { + spanwise_performance_filename.append(".dat"); + } + file.open (spanwise_performance_filename.data(), ios::out | ios::trunc); + file.setf(ios::scientific); + file.precision(12); + + file << "TITLE = \"Inflow Spanwise Thermodynamic Values. iOuterIter = " << iExtIter << " \"" << endl; + file << "VARIABLES =" << endl; + + file.width(30); file << "\"SpanWise Value[m]\""; + file.width(15); file << "\"iSpan\""; + file.width(30); file << "\"Pressure[Pa]\""; + file.width(30); file << "\"TotalPressure[Pa]\""; + file.width(30); file << "\"Temperature[K]\""; + file.width(30); file << "\"TotalTemperature[K]\""; + file.width(30); file << "\"Enthalpy[J]\""; + file.width(30); file << "\"TotalEnthalpy[J]\""; + file.width(30); file << "\"Density[kg/m3]\""; + file.width(30); file << "\"Entropy[J/K]\""; + file << endl; + + for(iSpan = 0; iSpan < config[val_iZone]->GetnSpanWiseSections(); iSpan++){ + const auto& BladePerf = BladePerformance.at(val_iZone).at(iSpan); + + file.width(30); file << SpanWiseValuesIn[iSpan]; + file.width(15); file << iSpan; + file.width(30); file << BladePerf->GetInletState().GetPressure()*config[ZONE_0]->GetPressure_Ref(); + file.width(30); file << BladePerf->GetInletState().GetTotalPressure()*config[ZONE_0]->GetPressure_Ref(); + file.width(30); file << BladePerf->GetInletState().GetTemperature()*config[ZONE_0]->GetTemperature_Ref(); + file.width(30); file << BladePerf->GetInletState().GetTotalTemperature()*config[ZONE_0]->GetTemperature_Ref(); + file.width(30); file << BladePerf->GetInletState().GetEnthalpy()*config[ZONE_0]->GetEnergy_Ref(); + file.width(30); file << BladePerf->GetInletState().GetTotalEnthalpy()*config[ZONE_0]->GetEnergy_Ref(); + file.width(30); file << BladePerf->GetInletState().GetDensity()*config[ZONE_0]->GetDensity_Ref(); + file.width(30); file << BladePerf->GetInletState().GetEntropy()*config[ZONE_0]->GetEnergy_Ref()/config[ZONE_0]->GetTemperature_Ref(); + } + + file.close(); + + /*--- Writing Span wise outflow thermodynamic quantities. ---*/ + spanwise_performance_filename = "TURBOMACHINERY/outflow_spanwise_thermodynamic_values.dat"; + if (nZone > 1) { + spanwise_performance_filename.append("_" + std::to_string(val_iZone) + ".dat"); + } else { + spanwise_performance_filename.append(".dat"); + } + file.open (spanwise_performance_filename.data(), ios::out | ios::trunc); + file.setf(ios::scientific); + file.precision(12); + + file << "TITLE = \"Outflow Span-wise Thermodynamic Values. iOuterIter = " << iExtIter << " \"" << endl; + file << "VARIABLES =" << endl; + + file.width(30); file << "\"SpanWise Value[m]\""; + file.width(15); file << "\"iSpan\""; + file.width(30); file << "\"Pressure[Pa]\""; + file.width(30); file << "\"TotalPressure[Pa]\""; + file.width(30); file << "\"Temperature[K]\""; + file.width(30); file << "\"TotalTemperature[K]\""; + file.width(30); file << "\"Enthalpy[J]\""; + file.width(30); file << "\"TotalEnthalpy[J]\""; + file.width(30); file << "\"Density[kg/m3]\""; + file.width(30); file << "\"Entropy[J/K]\""; + file << endl; + + + for(iSpan = 0; iSpan < config[val_iZone]->GetnSpanWiseSections(); iSpan++){ + const auto& BladePerf = BladePerformance.at(val_iZone).at(iSpan); + + file.width(30); file << SpanWiseValuesOut[iSpan]; + file.width(15); file << iSpan; + file.width(30); file << BladePerf->GetOutletState().GetPressure()*config[ZONE_0]->GetPressure_Ref(); + file.width(30); file << BladePerf->GetOutletState().GetTotalPressure()*config[ZONE_0]->GetPressure_Ref(); + file.width(30); file << BladePerf->GetOutletState().GetTemperature()*config[ZONE_0]->GetTemperature_Ref(); + file.width(30); file << BladePerf->GetOutletState().GetTotalTemperature()*config[ZONE_0]->GetTemperature_Ref(); + file.width(30); file << BladePerf->GetOutletState().GetEnthalpy()*config[ZONE_0]->GetEnergy_Ref(); + file.width(30); file << BladePerf->GetOutletState().GetTotalEnthalpy()*config[ZONE_0]->GetEnergy_Ref(); + file.width(30); file << BladePerf->GetOutletState().GetDensity()*config[ZONE_0]->GetDensity_Ref(); + file.width(30); file << BladePerf->GetOutletState().GetEntropy()*config[ZONE_0]->GetEnergy_Ref()/config[ZONE_0]->GetTemperature_Ref(); + } + + file.close(); + + /*--- Writing Span wise inflow kinematic quantities. ---*/ + spanwise_performance_filename = "TURBOMACHINERY/inflow_spanwise_kinematic_values.dat"; + if (nZone > 1) { + spanwise_performance_filename.append("_" + std::to_string(val_iZone) + ".dat"); + } else { + spanwise_performance_filename.append(".dat"); + } + file.open (spanwise_performance_filename.data(), ios::out | ios::trunc); + file.setf(ios::scientific); + file.precision(12); + + file << "TITLE = \"Inflow Span-wise Kinematic Values. iOuterIter = " << iExtIter << " \"" << endl; + file << "VARIABLES =" << endl; + + file.width(30); file << "\"SpanWise Value[m]\""; + file.width(15); file << "\"iSpan\""; + file.width(30); file << "\"Normal Mach[-]\""; + file.width(30); file << "\"Tangential Mach[-]\""; + if (geometry->GetnDim() == 3) { + file.width(30); file << "\"3rd Component Mach[-]\""; + }; + file.width(30); file << "\"Mach Module[-]\""; + file.width(30); file << "\"Normal Velocity[m/s]\""; + file.width(30); file << "\"Tangential Velocity[m/s]\""; + if (geometry->GetnDim() == 3) { + file.width(30); file << "\"3rd Component Velocity[m/s]\""; + }; + file.width(30); file << "\"Velocity Module[m/s]\""; + file.width(30); file << "\"Absolute Flow Angle[deg]\""; + file.width(30); file << "\"Relative Flow Angle[deg]\""; + file << endl; + + + for(iSpan = 0; iSpan < config[val_iZone]->GetnSpanWiseSections(); iSpan++){ + const auto& BladePerf = BladePerformance.at(val_iZone).at(iSpan); + + file.width(30); file << SpanWiseValuesIn[iSpan]; + file.width(15); file << iSpan; + for (iDim = 0; iDim < geometry->GetnDim(); iDim++){ + file.width(30); file << BladePerf->GetInletState().GetMach()[iDim]; + } + file.width(30); file << BladePerf->GetInletState().GetMachValue(); + for (iDim = 0; iDim < geometry->GetnDim(); iDim++){ + file.width(30); file << BladePerf->GetInletState().GetVelocity()[iDim]*config[ZONE_0]->GetVelocity_Ref(); + } + file.width(30); file << BladePerf->GetInletState().GetVelocityValue()*config[ZONE_0]->GetVelocity_Ref(); + // This captures NaNs + if(isnan(BladePerf->GetInletState().GetAbsFlowAngle())){ + file.width(30); file << "0.0000"; + } + else { + file.width(30); file << BladePerf->GetInletState().GetAbsFlowAngle()*180.0/PI_NUMBER; + } + if(isnan(BladePerf->GetInletState().GetFlowAngle())){ + file.width(30); file << "0.0000"; + } + else{ + file.width(30); file << BladePerf->GetInletState().GetFlowAngle()*180.0/PI_NUMBER; + } + file << endl; + } + + file.close(); + + /*--- Writing Span wise outflow thermodynamic quantities. ---*/ + spanwise_performance_filename = "TURBOMACHINERY/outflow_spanwise_kinematic_values"; + if (nZone > 1) { + spanwise_performance_filename.append("_" + std::to_string(val_iZone) + ".dat"); + } else { + spanwise_performance_filename.append(".dat"); + } + file.open (spanwise_performance_filename.data(), ios::out | ios::trunc); + file.setf(ios::scientific); + file.precision(12); + + file << "TITLE = \"Outflow Span-wise Kinematic Values. iOuterIter = " << iExtIter << " \"" << endl; + file << "VARIABLES =" << endl; + + file.width(30); file << "\"SpanWise Value[m]\""; + file.width(15); file << "\"iSpan\""; + file.width(30); file << "\"Normal Mach[-]\""; + file.width(30); file << "\"Tangential Mach[-]\""; + if (geometry->GetnDim() == 3) { + file.width(30); file << "\"3rd Component Mach[-]\""; + }; + file.width(30); file << "\"Mach Module[-]\""; + file.width(30); file << "\"Normal Velocity[m/s]\""; + file.width(30); file << "\"Tangential Velocity[m/s]\""; + if (geometry->GetnDim() == 3) { + file.width(30); file << "\"3rd Component Velocity[m/s]\""; + }; + file.width(30); file << "\"Velocity Module[m/s]\""; + file.width(30); file << "\"Absolute Flow Angle[deg]\""; + file.width(30); file << "\"Relative Flow Angle[deg]\""; + file << endl; + + + for(iSpan = 0; iSpan < config[val_iZone]->GetnSpanWiseSections(); iSpan++){ + const auto& BladePerf = BladePerformance.at(val_iZone).at(iSpan); + + file.width(30); file << SpanWiseValuesOut[iSpan]; + file.width(15); file << iSpan; + for (iDim = 0; iDim < geometry->GetnDim(); iDim++){ + file.width(30); file << BladePerf->GetOutletState().GetMach()[iDim]; + } + file.width(30); file << BladePerf->GetInletState().GetMachValue(); + for (iDim = 0; iDim < geometry->GetnDim(); iDim++){ + file.width(30); file << BladePerf->GetOutletState().GetVelocity()[iDim]*config[ZONE_0]->GetVelocity_Ref(); + } + file.width(30); file << BladePerf->GetInletState().GetVelocityValue()*config[ZONE_0]->GetVelocity_Ref(); + if(isnan(BladePerf->GetInletState().GetAbsFlowAngle())){ + file.width(30); file << "0.0000"; + } + else { + file.width(30); file << BladePerf->GetOutletState().GetAbsFlowAngle()*180.0/PI_NUMBER; + } + if(isnan(BladePerf->GetInletState().GetAbsFlowAngle())){ + file.width(30); file << "0.0000"; + } + else{ + file.width(30); file << BladePerf->GetOutletState().GetFlowAngle()*180.0/PI_NUMBER; + } + file << endl; + } + + file.close(); +} \ No newline at end of file diff --git a/SU2_CFD/src/output/CFlowIncOutput.cpp b/SU2_CFD/src/output/CFlowIncOutput.cpp index f729dfed82e..cd275b8f51e 100644 --- a/SU2_CFD/src/output/CFlowIncOutput.cpp +++ b/SU2_CFD/src/output/CFlowIncOutput.cpp @@ -2,14 +2,14 @@ * \file CFlowIncOutput.cpp * \brief Main subroutines for incompressible flow output * \author R. Sanchez - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -46,8 +46,7 @@ CFlowIncOutput::CFlowIncOutput(CConfig *config, unsigned short nDim) : CFlowOutp /*--- Set the default history fields if nothing is set in the config file ---*/ if (nRequestedHistoryFields == 0){ - requestedHistoryFields.emplace_back("ITER"); - requestedHistoryFields.emplace_back("RMS_RES"); + RequestCommonHistory(config->GetTime_Domain()); nRequestedHistoryFields = requestedHistoryFields.size(); } diff --git a/SU2_CFD/src/output/CFlowOutput.cpp b/SU2_CFD/src/output/CFlowOutput.cpp index 75bd80feebb..65fac24ddaf 100644 --- a/SU2_CFD/src/output/CFlowOutput.cpp +++ b/SU2_CFD/src/output/CFlowOutput.cpp @@ -2,14 +2,14 @@ * \file CFlowOutput.cpp * \brief Common functions for flow output. * \author R. Sanchez - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -38,6 +38,7 @@ #include "../../include/variables/CPrimitiveIndices.hpp" #include "../../include/fluid/CCoolProp.hpp" + CFlowOutput::CFlowOutput(const CConfig *config, unsigned short nDim, bool fem_output) : CFVMOutput(config, nDim, fem_output), lastInnerIter(curInnerIter) { @@ -2597,7 +2598,7 @@ void CFlowOutput::WriteForcesBreakdown(const CConfig* config, const CSolver* flo file << "\n"; file << "-------------------------------------------------------------------------\n"; file << "| ___ _ _ ___ |\n"; - file << "| / __| | | |_ ) Release 8.0.0 \"Harrier\" |\n"; + file << "| / __| | | |_ ) Release 8.0.1 \"Harrier\" |\n"; file << "| \\__ \\ |_| |/ / |\n"; file << "| |___/\\___//___| Suite (Computational Fluid Dynamics Code) |\n"; file << "| |\n"; @@ -2607,7 +2608,7 @@ void CFlowOutput::WriteForcesBreakdown(const CConfig* config, const CSolver* flo file << "| The SU2 Project is maintained by the SU2 Foundation |\n"; file << "| (http://su2foundation.org) |\n"; file << "-------------------------------------------------------------------------\n"; - file << "| Copyright 2012-2023, SU2 Contributors |\n"; + file << "| Copyright 2012-2024, SU2 Contributors |\n"; file << "| |\n"; file << "| SU2 is free software; you can redistribute it and/or |\n"; file << "| modify it under the terms of the GNU Lesser General Public |\n"; @@ -4049,3 +4050,37 @@ void CFlowOutput::SetFixedCLScreenOutput(const CConfig *config){ curInnerIter = config->GetInnerIter(); } } + +void CFlowOutput::AddTurboOutput(unsigned short nZone){ +//Adds zone turboperformance history variables + for (unsigned short iZone = 0; iZone <= nZone-1; iZone++) { + const auto tag = std::to_string(iZone + 1); + AddHistoryOutput("EntropyIn_" + tag, "EntropyIn_" + tag, ScreenOutputFormat::SCIENTIFIC, "TURBO_PERF", "Total pressure loss " + tag, HistoryFieldType::DEFAULT); + AddHistoryOutput("EntropyOut_" + tag, "EntropyOut_" + tag, ScreenOutputFormat::SCIENTIFIC, "TURBO_PERF", "Kinetic energy loss " + tag, HistoryFieldType::DEFAULT); + AddHistoryOutput("TotalEntahalpyIn_" + tag, "TotalEntahalpyIn_" + tag, ScreenOutputFormat::SCIENTIFIC, "TURBO_PERF", "Entropy generation " + tag, HistoryFieldType::DEFAULT); + AddHistoryOutput("TotalEnthalpyOut_" + tag, "TotalEnthalpyOut_" + tag, ScreenOutputFormat::SCIENTIFIC, "TURBO_PERF", "Eulerian work " + tag, HistoryFieldType::DEFAULT); + AddHistoryOutput("TotalPressureIn_" + tag, "TotPressureIn_" + tag, ScreenOutputFormat::SCIENTIFIC, "TURBO_PERF", "Pressure ratio " + tag, HistoryFieldType::DEFAULT); + AddHistoryOutput("TotalPressureOut_" + tag, "TotPressureOut_" + tag, ScreenOutputFormat::SCIENTIFIC, "TURBO_PERF", "Flow angle in " + tag, HistoryFieldType::DEFAULT); + AddHistoryOutput("PressureIn_" + tag, "PressureIn_" + tag, ScreenOutputFormat::SCIENTIFIC, "TURBO_PERF", "Pressure ratio " + tag, HistoryFieldType::DEFAULT); + AddHistoryOutput("PressureOut_" + tag, "PressureOut_" + tag, ScreenOutputFormat::SCIENTIFIC, "TURBO_PERF", "Flow angle in " + tag, HistoryFieldType::DEFAULT); + AddHistoryOutput("DensityIn_" + tag, "DensityIn_" + tag, ScreenOutputFormat::SCIENTIFIC, "TURBO_PERF", "Flow angle out " + tag, HistoryFieldType::DEFAULT); + AddHistoryOutput("DensityOut_" + tag, "DensityOut_" + tag, ScreenOutputFormat::SCIENTIFIC, "TURBO_PERF", "Absolute flow angle in " + tag, HistoryFieldType::DEFAULT); + AddHistoryOutput("NormalVelocityIn_" + tag, "NormalVelocityIn_" + tag, ScreenOutputFormat::SCIENTIFIC, "TURBO_PERF", "Absolute flow angle out " + tag, HistoryFieldType::DEFAULT); + AddHistoryOutput("NormalVelocityOut_" + tag, "NormalVelocityOut_" + tag, ScreenOutputFormat::SCIENTIFIC, "TURBO_PERF", "Mass flow in " + tag, HistoryFieldType::DEFAULT); + AddHistoryOutput("TangentialVelocityIn_" + tag, "TangentialVelocityIn_" + tag, ScreenOutputFormat::SCIENTIFIC, "TURBO_PERF", "Mass flow out " + tag, HistoryFieldType::DEFAULT); + AddHistoryOutput("TangentialVelocityOut_" + tag, "TangentialVelocityOut_" + tag, ScreenOutputFormat::SCIENTIFIC, "TURBO_PERF", "Mach in " + tag, HistoryFieldType::DEFAULT); + AddHistoryOutput("MassFlowIn_" + tag, "MassFlowIn_" + tag, ScreenOutputFormat::SCIENTIFIC, "TURBO_PERF", "Mach out " + tag, HistoryFieldType::DEFAULT); + AddHistoryOutput("MassFlowOut_" + tag, "MassFlowOut_" + tag, ScreenOutputFormat::SCIENTIFIC, "TURBO_PERF", "Total efficiency " + tag, HistoryFieldType::DEFAULT); + AddHistoryOutput("MachIn_" + tag, "MachIn_" + tag, ScreenOutputFormat::SCIENTIFIC, "TURBO_PERF", "Total-to-Static efficiency " + tag, HistoryFieldType::DEFAULT); + AddHistoryOutput("MachOut_" + tag, "MachOut_" + tag, ScreenOutputFormat::SCIENTIFIC, "TURBO_PERF", "Total-to-Static efficiency " + tag, HistoryFieldType::DEFAULT); + AddHistoryOutput("AbsFlowAngleIn_" + tag, "AbsFlowAngleIn_" + tag, ScreenOutputFormat::SCIENTIFIC, "TURBO_PERF", "Absolute flow angle in " + tag, HistoryFieldType::DEFAULT); + AddHistoryOutput("AbsFlowAngleOut_" + tag, "AbsFlowAngleOut_" + tag, ScreenOutputFormat::SCIENTIFIC, "TURBO_PERF", "Absolute flow angle out " + tag, HistoryFieldType::DEFAULT); + } + //Adds turbomachinery machine performance variables + AddHistoryOutput("EntropyGeneration", "EntropyGen", ScreenOutputFormat::SCIENTIFIC, "TURBO_PERF", "Machine entropy generation", HistoryFieldType::DEFAULT); + AddHistoryOutput("EulerianWork", "EulerianWork", ScreenOutputFormat::SCIENTIFIC, "TURBO_PERF", "Machine entropy generation", HistoryFieldType::DEFAULT); + AddHistoryOutput("TotalStaticEfficiency", "TotStaticEff", ScreenOutputFormat::SCIENTIFIC, "TURBO_PERF", "Machine entropy generation", HistoryFieldType::DEFAULT); + AddHistoryOutput("TotalTotalEfficiency", "TotTotEff", ScreenOutputFormat::SCIENTIFIC, "TURBO_PERF", "Machine entropy generation", HistoryFieldType::DEFAULT); + AddHistoryOutput("PressureRatioTS", "PRTS", ScreenOutputFormat::SCIENTIFIC, "TURBO_PERF", "Machine entropy generation", HistoryFieldType::DEFAULT); + AddHistoryOutput("PressureRatioTT", "PRTT", ScreenOutputFormat::SCIENTIFIC, "TURBO_PERF", "Machine entropy generation", HistoryFieldType::DEFAULT); +} diff --git a/SU2_CFD/src/output/CHeatOutput.cpp b/SU2_CFD/src/output/CHeatOutput.cpp index 39d5ee3796f..10f4dd2eeeb 100644 --- a/SU2_CFD/src/output/CHeatOutput.cpp +++ b/SU2_CFD/src/output/CHeatOutput.cpp @@ -2,14 +2,14 @@ * \file CHeatOutput.cpp * \brief Main subroutines for the heat solver output * \author R. Sanchez - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -35,8 +35,7 @@ CHeatOutput::CHeatOutput(CConfig *config, unsigned short nDim) : CFVMOutput(conf /*--- Set the default history fields if nothing is set in the config file ---*/ if (nRequestedHistoryFields == 0){ - requestedHistoryFields.emplace_back("ITER"); - requestedHistoryFields.emplace_back("RMS_RES"); + RequestCommonHistory(config->GetTime_Domain()); nRequestedHistoryFields = requestedHistoryFields.size(); } if (nRequestedScreenFields == 0){ diff --git a/SU2_CFD/src/output/CMeshOutput.cpp b/SU2_CFD/src/output/CMeshOutput.cpp index eb00dfbe6f9..b7aba31eac4 100644 --- a/SU2_CFD/src/output/CMeshOutput.cpp +++ b/SU2_CFD/src/output/CMeshOutput.cpp @@ -2,14 +2,14 @@ * \file CMeshOutput.cpp * \brief Main subroutines for the heat solver output * \author R. Sanchez - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/src/output/CMultizoneOutput.cpp b/SU2_CFD/src/output/CMultizoneOutput.cpp index a30acca6268..1d4252be6fe 100644 --- a/SU2_CFD/src/output/CMultizoneOutput.cpp +++ b/SU2_CFD/src/output/CMultizoneOutput.cpp @@ -2,14 +2,14 @@ * \file CMultizoneOutput.cpp * \brief Main subroutines for multizone output * \author R. Sanchez, T. Albring - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -45,6 +45,7 @@ CMultizoneOutput::CMultizoneOutput(const CConfig* driver_config, const CConfig* if (nRequestedHistoryFields == 0){ requestedHistoryFields.emplace_back("ITER"); + if (config[ZONE_0]->GetTime_Domain()) requestedHistoryFields.emplace_back("CUR_TIME"); for (iZone = 0; iZone < nZone; iZone++){ requestedHistoryFields.emplace_back(bgs_res_name + "[" + PrintingToolbox::to_string(iZone) + "]"); requestedHistoryFields.emplace_back("AVG_RES[" + PrintingToolbox::to_string(iZone) + "]"); diff --git a/SU2_CFD/src/output/CNEMOCompOutput.cpp b/SU2_CFD/src/output/CNEMOCompOutput.cpp index 67adfe1559e..d6f71fbcfcb 100644 --- a/SU2_CFD/src/output/CNEMOCompOutput.cpp +++ b/SU2_CFD/src/output/CNEMOCompOutput.cpp @@ -2,14 +2,14 @@ * \file CNEMOCompOutput.cpp * \brief Main subroutines for compressible flow output * \author W. Maier, R. Sanchez - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -38,8 +38,7 @@ CNEMOCompOutput::CNEMOCompOutput(const CConfig *config, unsigned short nDim) : C /*--- Set the default history fields if nothing is set in the config file ---*/ if (nRequestedHistoryFields == 0){ - requestedHistoryFields.emplace_back("ITER"); - requestedHistoryFields.emplace_back("RMS_RES"); + RequestCommonHistory(config->GetTime_Domain()); nRequestedHistoryFields = requestedHistoryFields.size(); } if (nRequestedScreenFields == 0){ diff --git a/SU2_CFD/src/output/COutput.cpp b/SU2_CFD/src/output/COutput.cpp index 4f52cd64fdb..c49a2627b22 100644 --- a/SU2_CFD/src/output/COutput.cpp +++ b/SU2_CFD/src/output/COutput.cpp @@ -2,14 +2,14 @@ * \file COutput.cpp * \brief Main subroutines for output solver information * \author F. Palacios, T. Economon - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -29,6 +29,7 @@ #include "../../include/solvers/CSolver.hpp" #include "../../include/output/COutput.hpp" +#include "../../include/output/CTurboOutput.hpp" #include "../../include/output/filewriter/CFVMDataSorter.hpp" #include "../../include/output/filewriter/CFEMDataSorter.hpp" #include "../../include/output/filewriter/CCGNSFileWriter.hpp" @@ -168,8 +169,7 @@ COutput::COutput(const CConfig *config, unsigned short ndim, bool fem_output): volumeDataSorter = nullptr; surfaceDataSorter = nullptr; - headerNeeded = false; - + headerNeeded = false; } COutput::~COutput() { @@ -227,6 +227,34 @@ void COutput::SetHistoryOutput(CGeometry *geometry, } +void COutput::SetHistoryOutput(CGeometry ****geometry, CSolver *****solver, CConfig **config, std::shared_ptr(TurboStagePerf), std::shared_ptr TurboPerf, unsigned short val_iZone, unsigned long TimeIter, unsigned long OuterIter, unsigned long InnerIter, unsigned short val_iInst){ + + unsigned long Iter= InnerIter; + + if (config[ZONE_0]->GetMultizone_Problem()) + Iter = OuterIter; + + /*--- Turbomachinery Performance Screen summary output---*/ + if (Iter%100 == 0 && rank == MASTER_NODE) { + SetTurboPerformance_Output(TurboPerf, config[val_iZone], TimeIter, OuterIter, InnerIter); + SetTurboMultiZonePerformance_Output(TurboStagePerf, TurboPerf, config[val_iZone]); + } + + for (int iZone = 0; iZone < config[ZONE_0]->GetnZone(); iZone ++){ + if (rank == MASTER_NODE) { + WriteTurboSpanwisePerformance(TurboPerf, geometry[iZone][val_iInst][MESH_0], config, iZone); + } + } + + /*--- Update turboperformance history file*/ + if (rank == MASTER_NODE){ + LoadTurboHistoryData(TurboStagePerf, TurboPerf, config[val_iZone]); + } + SetHistoryOutput(geometry[val_iZone][val_iInst][MESH_0], solver[val_iZone][val_iInst][MESH_0], config[val_iZone], TimeIter, OuterIter,InnerIter); + +} + + void COutput::SetMultizoneHistoryOutput(COutput **output, CConfig **config, CConfig *driver_config, unsigned long TimeIter, unsigned long OuterIter){ curTimeIter = TimeIter; @@ -1151,7 +1179,7 @@ void COutput::PreprocessHistoryOutput(CConfig *config, bool wrt){ /*--- Check for consistency and remove fields that are requested but not available --- */ - CheckHistoryOutput(); + CheckHistoryOutput(config->GetnZone()); if (rank == MASTER_NODE && !noWriting){ @@ -1198,7 +1226,7 @@ void COutput::PreprocessMultizoneHistoryOutput(COutput **output, CConfig **confi /*--- Check for consistency and remove fields that are requested but not available --- */ - CheckHistoryOutput(); + CheckHistoryOutput(config[ZONE_0]->GetnZone()); if (rank == MASTER_NODE && !noWriting){ @@ -1240,7 +1268,7 @@ void COutput::PrepareHistoryFile(CConfig *config){ } -void COutput::CheckHistoryOutput() { +void COutput::CheckHistoryOutput(unsigned short nZone) { /*--- Set screen convergence output header and remove unavailable fields ---*/ @@ -1318,6 +1346,17 @@ void COutput::CheckHistoryOutput() { FieldsToRemove.clear(); vector FoundField(nRequestedHistoryFields, false); + /*--- Checks if TURBO_PERF is enabled in config and sets the final zone calculations to be output ---*/ + + for (unsigned short iReqField = 0; iReqField < nRequestedHistoryFields; iReqField++){ + if (requestedHistoryFields[iReqField] == "TURBO_PERF" && nZone > 1){ + std::stringstream reqField; + std::string strZones = std::to_string(nZone-1); + reqField << "TURBO_PERF[" << strZones << "]"; + reqField >> requestedHistoryFields[iReqField]; + } + } + for (const auto& fieldReference : historyOutput_List) { const auto &field = historyOutput_Map.at(fieldReference); for (unsigned short iReqField = 0; iReqField < nRequestedHistoryFields; iReqField++) { @@ -2017,6 +2056,13 @@ void COutput::SetCommonHistoryFields() { } +void COutput::RequestCommonHistory(bool dynamic) { + + requestedHistoryFields.emplace_back("ITER"); + if (dynamic) requestedHistoryFields.emplace_back("CUR_TIME"); + requestedHistoryFields.emplace_back("RMS_RES"); +} + void COutput::SetCustomOutputs(const CConfig* config) { const auto& inputString = config->GetCustomOutputs(); @@ -2368,4 +2414,4 @@ void COutput::PrintVolumeFields(){ VolumeFieldTable.PrintFooter(); } -} +} \ No newline at end of file diff --git a/SU2_CFD/src/output/COutputFactory.cpp b/SU2_CFD/src/output/COutputFactory.cpp index e0cab769441..31df7854313 100644 --- a/SU2_CFD/src/output/COutputFactory.cpp +++ b/SU2_CFD/src/output/COutputFactory.cpp @@ -2,14 +2,14 @@ * \file COutputFactory.cpp * \brief Main subroutines for output solver information * \author T. Albring - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/src/output/CTurboOutput.cpp b/SU2_CFD/src/output/CTurboOutput.cpp new file mode 100644 index 00000000000..b0e61f10e25 --- /dev/null +++ b/SU2_CFD/src/output/CTurboOutput.cpp @@ -0,0 +1,271 @@ +/*! + * \file CTurboOutput.cpp + * \brief Source of the Turbomachinery Performance class + * \author S. Vitale, N. Anand + * \version 8.0.1 "Harrier" + * + * SU2 Project Website: https://su2code.github.io + * + * The SU2 Project is maintained by the SU2 Foundation + * (http://su2foundation.org) + * + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) + * + * SU2 is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * SU2 is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with SU2. If not, see . + */ + +#include "../../include/output/CTurboOutput.hpp" + +CTurbomachineryPrimitiveState::CTurbomachineryPrimitiveState() { Density = Pressure = TangVelocity = 0.0; } +CTurbomachineryPrimitiveState::CTurbomachineryPrimitiveState(vector TurboPrimitive, unsigned short nDim, + su2double tangVel) + : Density(TurboPrimitive[0]), Pressure(TurboPrimitive[1]), TangVelocity(tangVel) { + Velocity = {TurboPrimitive.begin() + 2, TurboPrimitive.end()}; +} + +CTurbomachineryCombinedPrimitiveStates::CTurbomachineryCombinedPrimitiveStates( + const CTurbomachineryPrimitiveState& inletPrimitiveState, const CTurbomachineryPrimitiveState& outletPrimitiveState) + : InletPrimitiveState(inletPrimitiveState), OutletPrimitiveState(outletPrimitiveState) {} + +CTurbomachineryState::CTurbomachineryState() { + Density = Pressure = Entropy = Enthalpy = Temperature = TotalTemperature = TotalPressure = TotalEnthalpy = 0.0; + AbsFlowAngle = FlowAngle = MassFlow = Rothalpy = TotalRelPressure = 0.0; + Area = Radius = 0.0; +} + +CTurbomachineryState::CTurbomachineryState(unsigned short nDim, su2double area, su2double radius) + : CTurbomachineryState() { + generate_n(back_inserter(Velocity), nDim, [] { return 0.0; }); + generate_n(back_inserter(RelVelocity), nDim, [] { return 0.0; }); + generate_n(back_inserter(Mach), nDim, [] { return 0.0; }); + generate_n(back_inserter(RelMach), nDim, [] { return 0.0; }); + Area = area; + Radius = radius; +} + +void CTurbomachineryState::ComputeState(CFluidModel& fluidModel, const CTurbomachineryPrimitiveState& primitiveState) { + /*--- Assign new primitive values ---*/ + Density = primitiveState.GetDensity(); + Pressure = primitiveState.GetPressure(); + std::vector velocity = primitiveState.GetVelocity(); + Velocity.assign(velocity.begin(), velocity.end()); + su2double tangVel = primitiveState.GetTangVelocity(); + + /*--- Compute static TD quantities ---*/ + fluidModel.SetTDState_Prho(Pressure, Density); + Entropy = fluidModel.GetEntropy(); + Enthalpy = fluidModel.GetStaticEnergy() + Pressure / Density; + su2double soundSpeed = fluidModel.GetSoundSpeed(); + + /*--- Compute total TD quantities ---*/ + TotalEnthalpy = Enthalpy + 0.5 * GetVelocityValue() * GetVelocityValue(); + fluidModel.SetTDState_hs(TotalEnthalpy, Entropy); + TotalPressure = fluidModel.GetPressure(); + TotalTemperature = fluidModel.GetTemperature(); + + /*--- Compute absolute kinematic quantities---*/ + MassFlow = Density * Velocity[0] * Area; + AbsFlowAngle = atan(Velocity[1] / Velocity[0]); + Mach.assign(Velocity.begin(), Velocity.end()); + std::for_each(Mach.begin(), Mach.end(), [&](su2double& el) { el /= soundSpeed; }); + + /*--- Compute relative kinematic quantities ---*/ + su2double tangVel2 = tangVel * tangVel; + RelVelocity.assign(Velocity.begin(), Velocity.end()); + RelVelocity[1] -= tangVel; + su2double relVel2 = GetRelVelocityValue(); + FlowAngle = atan(RelVelocity[1] / RelVelocity[0]); + RelMach.assign(RelVelocity.begin(), RelVelocity.end()); + std::for_each(RelMach.begin(), RelMach.end(), [&](su2double& el) { el /= soundSpeed; }); + + /*--- Compute total relative TD quantities ---*/ + Rothalpy = Enthalpy + 0.5 * relVel2 - 0.5 * tangVel2; + fluidModel.SetTDState_hs(Rothalpy, Entropy); + TotalRelPressure = fluidModel.GetPressure(); + + /*--- Compute isentropic quantities ---*/ + fluidModel.SetTDState_Ps(Pressure, Entropy); +} + +CTurbomachineryBladePerformance::CTurbomachineryBladePerformance(CFluidModel& fluidModel, unsigned short nDim, + su2double areaIn, su2double radiusIn, + su2double areaOut, su2double radiusOut) + : FluidModel(fluidModel) { + InletState = CTurbomachineryState(nDim, areaIn, radiusIn); + OutletState = CTurbomachineryState(nDim, areaOut, radiusOut); +} + +CTurbineBladePerformance::CTurbineBladePerformance(CFluidModel& fluidModel, unsigned short nDim, su2double areaIn, + su2double radiusIn, su2double areaOut, su2double radiusOut) + : CTurbomachineryBladePerformance(fluidModel, nDim, areaIn, radiusIn, areaOut, radiusOut) {} + +void CTurbineBladePerformance::ComputePerformance(const CTurbomachineryCombinedPrimitiveStates& primitives) { + /*--- Compute Inlet and Outlet state ---*/ + InletState.ComputeState(FluidModel, primitives.GetInletPrimitiveState()); + OutletState.ComputeState(FluidModel, primitives.GetOutletPrimitiveState()); + + /*--- Compute isentropic Outflow quantities ---*/ + FluidModel.SetTDState_Ps(OutletState.GetPressure(), InletState.GetEntropy()); + su2double enthalpyOutIs = FluidModel.GetStaticEnergy() + OutletState.GetPressure() / FluidModel.GetDensity(); + su2double tangVel = primitives.GetOutletPrimitiveState().GetTangVelocity(); + su2double relVelOutIs2 = 2 * (OutletState.GetRothalpy() - enthalpyOutIs) + tangVel * tangVel; + + /*--- Compute performance ---*/ + EntropyGen = (OutletState.GetEntropy() - InletState.GetEntropy()); + EulerianWork = InletState.GetTotalEnthalpy() - OutletState.GetTotalEnthalpy(); + TotalPressureLoss = (InletState.GetTotalRelPressure() - OutletState.GetTotalRelPressure()) / + (OutletState.GetTotalRelPressure() - OutletState.GetPressure()); + KineticEnergyLoss = 2 * (OutletState.GetEnthalpy() - enthalpyOutIs) / relVelOutIs2; +} + +CCompressorBladePerformance::CCompressorBladePerformance(CFluidModel& fluidModel, unsigned short nDim, su2double areaIn, + su2double radiusIn, su2double areaOut, su2double radiusOut) + : CTurbomachineryBladePerformance(fluidModel, nDim, areaIn, radiusIn, areaOut, radiusOut) {} + +void CCompressorBladePerformance::ComputePerformance(const CTurbomachineryCombinedPrimitiveStates& primitives) { + /*--- Compute Inlet and Outlet state ---*/ + InletState.ComputeState(FluidModel, primitives.GetInletPrimitiveState()); + OutletState.ComputeState(FluidModel, primitives.GetOutletPrimitiveState()); + + /*--- Compute isentropic Outflow quantities ---*/ + FluidModel.SetTDState_Ps(OutletState.GetPressure(), InletState.GetEntropy()); + su2double enthalpyOutIs = FluidModel.GetStaticEnergy() + OutletState.GetPressure() / FluidModel.GetDensity(); + su2double tangVel = primitives.GetOutletPrimitiveState().GetTangVelocity(); + su2double relVelOutIs2 = 2 * (OutletState.GetRothalpy() - enthalpyOutIs) + tangVel * tangVel; + + /*--- Compute performance ---*/ + EntropyGen = (OutletState.GetEntropy() - InletState.GetEntropy()); + EulerianWork = OutletState.GetTotalEnthalpy() - InletState.GetTotalEnthalpy(); + TotalPressureLoss = (InletState.GetTotalRelPressure() - OutletState.GetTotalRelPressure()) / + (InletState.GetTotalRelPressure() - InletState.GetPressure()); + KineticEnergyLoss = 2 * (OutletState.GetEnthalpy() - enthalpyOutIs) / relVelOutIs2; +} + +CPropellorBladePerformance::CPropellorBladePerformance(CFluidModel& fluidModel, unsigned short nDim, su2double areaIn, + su2double radiusIn, su2double areaOut, su2double radiusOut) + : CTurbomachineryBladePerformance(fluidModel, nDim, areaIn, radiusIn, areaOut, radiusOut) {} + +void CPropellorBladePerformance::ComputePerformance(const CTurbomachineryCombinedPrimitiveStates& primitives) { + // TODO: to be implemented +} + +CTurboOutput::CTurboOutput(CConfig** config, const CGeometry& geometry, CFluidModel& fluidModel) { + unsigned short nBladesRow = config[ZONE_0]->GetnMarker_Turbomachinery(); + unsigned short nDim = geometry.GetnDim(); + + for (unsigned short iBladeRow = 0; iBladeRow < nBladesRow; iBladeRow++) { + vector> bladeSpanPerformances; + unsigned short nSpan = config[iBladeRow]->GetnSpanWiseSections(); + for (unsigned short iSpan = 0; iSpan < nSpan + 1; iSpan++) { + su2double areaIn = geometry.GetSpanAreaIn(iBladeRow, iSpan); + su2double areaOut = geometry.GetSpanAreaOut(iBladeRow, iSpan); + su2double radiusIn = geometry.GetTurboRadiusIn(iBladeRow, iSpan); + su2double radiusOut = geometry.GetTurboRadiusOut(iBladeRow, iSpan); + + /* Switch between the Turbomachinery Performance Kind */ + switch (config[ZONE_0]->GetKind_TurboPerf(iBladeRow)) { + case TURBO_PERF_KIND::TURBINE: + bladeSpanPerformances.push_back( + make_shared(fluidModel, nDim, areaIn, radiusIn, areaOut, radiusOut)); + break; + + case TURBO_PERF_KIND::COMPRESSOR: + bladeSpanPerformances.push_back( + make_shared(fluidModel, nDim, areaIn, radiusIn, areaOut, radiusOut)); + break; + + case TURBO_PERF_KIND::PROPELLOR: + bladeSpanPerformances.push_back( + make_shared(fluidModel, nDim, areaIn, radiusIn, areaOut, radiusOut)); + break; + + default: + bladeSpanPerformances.push_back( + make_shared(fluidModel, nDim, areaIn, radiusIn, areaOut, radiusOut)); + break; + } + } + BladesPerformances.push_back(bladeSpanPerformances); + } +} + +void CTurboOutput::ComputeTurbomachineryPerformance( + vector> const bladesPrimitives) { + for (unsigned i = 0; i < BladesPerformances.size(); ++i) { + ComputePerBlade(BladesPerformances[i], bladesPrimitives[i]); + } +} + +void CTurboOutput::ComputePerBlade(vector> const bladePerformances, + vector const bladePrimitives) { + for (unsigned i = 0; i < bladePerformances.size(); ++i) { + ComputePerSpan(bladePerformances[i], bladePrimitives[i]); + } +} + +void CTurboOutput::ComputePerSpan(shared_ptr const spanPerformances, + const CTurbomachineryCombinedPrimitiveStates& spanPrimitives) { + spanPerformances->ComputePerformance(spanPrimitives); +} + +CTurbomachineryStagePerformance::CTurbomachineryStagePerformance(CFluidModel& fluid) : fluidModel(fluid) {} + +void CTurbomachineryStagePerformance::ComputePerformanceStage(const CTurbomachineryState& InState, + const CTurbomachineryState& OutState, const CConfig* config) { + switch (config->GetKind_TurboPerf(ZONE_0)) { + case TURBO_PERF_KIND::TURBINE: + ComputeTurbineStagePerformance(InState, OutState); + break; + + case TURBO_PERF_KIND::COMPRESSOR: + ComputeCompressorStagePerformance(InState, OutState); + break; + + default: + ComputeTurbineStagePerformance(InState, OutState); + break; + } +} + +void CTurbomachineryStagePerformance::ComputeTurbineStagePerformance(const CTurbomachineryState& InState, + const CTurbomachineryState& OutState) { + /*--- Compute isentropic Outflow quantities ---*/ + fluidModel.SetTDState_Ps(OutState.GetPressure(), InState.GetEntropy()); + su2double enthalpyOutIs = fluidModel.GetStaticEnergy() + OutState.GetPressure() / fluidModel.GetDensity(); + su2double totEnthalpyOutIs = enthalpyOutIs + 0.5 * OutState.GetVelocityValue() * OutState.GetVelocityValue(); + + /*--- Compute turbine stage performance ---*/ + NormEntropyGen = (OutState.GetEntropy() - InState.GetEntropy()) / InState.GetEntropy(); + EulerianWork = InState.GetTotalEnthalpy() - OutState.GetTotalEnthalpy(); + TotalStaticEfficiency = EulerianWork / (InState.GetTotalEnthalpy() - enthalpyOutIs); + TotalTotalEfficiency = EulerianWork / (InState.GetTotalEnthalpy() - totEnthalpyOutIs); + TotalStaticPressureRatio = InState.GetTotalPressure() / OutState.GetPressure(); + TotalTotalPressureRatio = InState.GetTotalPressure() / OutState.GetTotalPressure(); +} + +void CTurbomachineryStagePerformance::ComputeCompressorStagePerformance(const CTurbomachineryState& InState, + const CTurbomachineryState& OutState) { + /*--- Compute isentropic Outflow quantities ---*/ + fluidModel.SetTDState_Ps(OutState.GetPressure(), InState.GetEntropy()); + su2double enthalpyOutIs = fluidModel.GetStaticEnergy() + OutState.GetPressure() / fluidModel.GetDensity(); + su2double totEnthalpyOutIs = enthalpyOutIs + 0.5 * OutState.GetVelocityValue() * OutState.GetVelocityValue(); + + /*--- Compute compressor stage performance ---*/ + NormEntropyGen = (OutState.GetEntropy() - InState.GetEntropy()) / InState.GetEntropy(); + EulerianWork = OutState.GetTotalEnthalpy() - InState.GetTotalEnthalpy(); + TotalStaticEfficiency = (enthalpyOutIs - InState.GetTotalEnthalpy()) / EulerianWork; + TotalTotalEfficiency = (totEnthalpyOutIs - InState.GetTotalEnthalpy()) / EulerianWork; + TotalStaticPressureRatio = OutState.GetPressure() / InState.GetTotalPressure(); + TotalTotalPressureRatio = OutState.GetTotalPressure() / InState.GetTotalPressure(); +} \ No newline at end of file diff --git a/SU2_CFD/src/output/filewriter/CCGNSFileWriter.cpp b/SU2_CFD/src/output/filewriter/CCGNSFileWriter.cpp index 34f75473b61..355d60ee5b0 100644 --- a/SU2_CFD/src/output/filewriter/CCGNSFileWriter.cpp +++ b/SU2_CFD/src/output/filewriter/CCGNSFileWriter.cpp @@ -2,14 +2,14 @@ * \file CCGNSFileWriter.cpp * \brief Filewriter class for CGNS format. * \author G. Baldan - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -38,7 +38,6 @@ void CCGNSFileWriter::WriteData(string val_filename) { /*--- We append the pre-defined suffix (extension) to the filename (prefix) ---*/ val_filename.append(fileExt); - /*--- Open the CGNS file for writing. ---*/ InitializeMeshFile(val_filename); @@ -132,15 +131,16 @@ void CCGNSFileWriter::WriteField(int iField, const string& FieldName) { /*--- Coordinate vector is written in blocks, one for each process. ---*/ cgsize_t nodeBegin = 1; auto nodeEnd = static_cast(nLocalPoints); - - if (isCoord) { - int CoordinateNumber; - CallCGNS(cg_coord_partial_write(cgnsFileID, cgnsBase, cgnsZone, dataType, FieldName.c_str(), &nodeBegin, &nodeEnd, - sendBufferField.data(), &CoordinateNumber)); - } else { - int fieldNumber; - CallCGNS(cg_field_partial_write(cgnsFileID, cgnsBase, cgnsZone, cgnsFields, dataType, FieldName.c_str(), &nodeBegin, - &nodeEnd, sendBufferField.data(), &fieldNumber)); + if (nLocalPoints > 0) { + if (isCoord) { + int CoordinateNumber; + CallCGNS(cg_coord_partial_write(cgnsFileID, cgnsBase, cgnsZone, dataType, FieldName.c_str(), &nodeBegin, &nodeEnd, + sendBufferField.data(), &CoordinateNumber)); + } else { + int fieldNumber; + CallCGNS(cg_field_partial_write(cgnsFileID, cgnsBase, cgnsZone, cgnsFields, dataType, FieldName.c_str(), &nodeBegin, + &nodeEnd, sendBufferField.data(), &fieldNumber)); + } } for (int i = 0; i < size; ++i) { diff --git a/SU2_CFD/src/output/filewriter/CCSVFileWriter.cpp b/SU2_CFD/src/output/filewriter/CCSVFileWriter.cpp index 254bb48fce3..0213b0706e2 100644 --- a/SU2_CFD/src/output/filewriter/CCSVFileWriter.cpp +++ b/SU2_CFD/src/output/filewriter/CCSVFileWriter.cpp @@ -2,14 +2,14 @@ * \file CCSVFileWriter.cpp * \brief CSV Writer output class * \author T. Albring - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/src/output/filewriter/CFEMDataSorter.cpp b/SU2_CFD/src/output/filewriter/CFEMDataSorter.cpp index 6d59f44fb71..987f318cdd6 100644 --- a/SU2_CFD/src/output/filewriter/CFEMDataSorter.cpp +++ b/SU2_CFD/src/output/filewriter/CFEMDataSorter.cpp @@ -2,14 +2,14 @@ * \file CFEMDataSorter.cpp * \brief Datasorter class for FEM solvers. * \author T. Albring - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/src/output/filewriter/CFVMDataSorter.cpp b/SU2_CFD/src/output/filewriter/CFVMDataSorter.cpp index 3e0a675eb93..efe015bbe8d 100644 --- a/SU2_CFD/src/output/filewriter/CFVMDataSorter.cpp +++ b/SU2_CFD/src/output/filewriter/CFVMDataSorter.cpp @@ -2,14 +2,14 @@ * \file CFVMDataSorter.cpp * \brief Datasorter class for FVM solvers. * \author T. Albring - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/src/output/filewriter/CParallelDataSorter.cpp b/SU2_CFD/src/output/filewriter/CParallelDataSorter.cpp index 69cc4182fb1..854ced3d1d2 100644 --- a/SU2_CFD/src/output/filewriter/CParallelDataSorter.cpp +++ b/SU2_CFD/src/output/filewriter/CParallelDataSorter.cpp @@ -2,14 +2,14 @@ * \file CParallelDataSorter.cpp * \brief Datasorter base class. * \author T. Albring - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/src/output/filewriter/CParallelFileWriter.cpp b/SU2_CFD/src/output/filewriter/CParallelFileWriter.cpp index c959a171615..5f3c2a99e40 100644 --- a/SU2_CFD/src/output/filewriter/CParallelFileWriter.cpp +++ b/SU2_CFD/src/output/filewriter/CParallelFileWriter.cpp @@ -2,14 +2,14 @@ * \file CParallelFileWriter.cpp * \brief Filewriter base class. * \author T. Albring - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/src/output/filewriter/CParaviewBinaryFileWriter.cpp b/SU2_CFD/src/output/filewriter/CParaviewBinaryFileWriter.cpp index 7675fdb7bd1..66e4e90bb86 100644 --- a/SU2_CFD/src/output/filewriter/CParaviewBinaryFileWriter.cpp +++ b/SU2_CFD/src/output/filewriter/CParaviewBinaryFileWriter.cpp @@ -2,14 +2,14 @@ * \file CParaviewBinaryFileWriter.cpp * \brief Filewriter class for Paraview binary format. * \author T. Albring - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/src/output/filewriter/CParaviewFileWriter.cpp b/SU2_CFD/src/output/filewriter/CParaviewFileWriter.cpp index d1d3f78a6bb..c61bcb5ec7c 100644 --- a/SU2_CFD/src/output/filewriter/CParaviewFileWriter.cpp +++ b/SU2_CFD/src/output/filewriter/CParaviewFileWriter.cpp @@ -2,14 +2,14 @@ * \file CParaviewFileWriter.cpp * \brief Filewriter class for Paraview ASCII format. * \author T. Albring - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/src/output/filewriter/CParaviewVTMFileWriter.cpp b/SU2_CFD/src/output/filewriter/CParaviewVTMFileWriter.cpp index 5b4ba4299db..6ad1d4fb728 100644 --- a/SU2_CFD/src/output/filewriter/CParaviewVTMFileWriter.cpp +++ b/SU2_CFD/src/output/filewriter/CParaviewVTMFileWriter.cpp @@ -2,14 +2,14 @@ * \file CParaviewVTMFileWriter.cpp * \brief Filewriter class for Paraview binary format. * \author T. Albring - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/src/output/filewriter/CParaviewXMLFileWriter.cpp b/SU2_CFD/src/output/filewriter/CParaviewXMLFileWriter.cpp index df4ac46a176..eb04fdd83d2 100644 --- a/SU2_CFD/src/output/filewriter/CParaviewXMLFileWriter.cpp +++ b/SU2_CFD/src/output/filewriter/CParaviewXMLFileWriter.cpp @@ -2,14 +2,14 @@ * \file CParaviewXMLFileWriter.cpp * \brief Filewriter class for Paraview binary format. * \author T. Albring - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/src/output/filewriter/CSTLFileWriter.cpp b/SU2_CFD/src/output/filewriter/CSTLFileWriter.cpp index f9049f8f2f1..afe8aa712bb 100644 --- a/SU2_CFD/src/output/filewriter/CSTLFileWriter.cpp +++ b/SU2_CFD/src/output/filewriter/CSTLFileWriter.cpp @@ -2,14 +2,14 @@ * \file CSTLFileWriter.cpp * \brief STL Writer output class * \author T. Kattmann, T. Albring - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/src/output/filewriter/CSU2BinaryFileWriter.cpp b/SU2_CFD/src/output/filewriter/CSU2BinaryFileWriter.cpp index a3183266cd8..2a62c676ace 100644 --- a/SU2_CFD/src/output/filewriter/CSU2BinaryFileWriter.cpp +++ b/SU2_CFD/src/output/filewriter/CSU2BinaryFileWriter.cpp @@ -2,14 +2,14 @@ * \file CSU2BinaryFileWriter.cpp * \brief Filewriter class SU2 native binary format. * \author T. Albring - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/src/output/filewriter/CSU2FileWriter.cpp b/SU2_CFD/src/output/filewriter/CSU2FileWriter.cpp index 455f6c7f984..75fb7b57fb7 100644 --- a/SU2_CFD/src/output/filewriter/CSU2FileWriter.cpp +++ b/SU2_CFD/src/output/filewriter/CSU2FileWriter.cpp @@ -2,14 +2,14 @@ * \file CSU2FileWriter.cpp * \brief Filewriter class SU2 native ASCII (CSV) format. * \author T. Albring - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/src/output/filewriter/CSU2MeshFileWriter.cpp b/SU2_CFD/src/output/filewriter/CSU2MeshFileWriter.cpp index 39bc185252a..2a2c13b58fc 100644 --- a/SU2_CFD/src/output/filewriter/CSU2MeshFileWriter.cpp +++ b/SU2_CFD/src/output/filewriter/CSU2MeshFileWriter.cpp @@ -2,14 +2,14 @@ * \file CSU2MeshFileWriter.cpp * \brief Filewriter class SU2 native mesh format. * \author T. Albring - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/src/output/filewriter/CSurfaceFEMDataSorter.cpp b/SU2_CFD/src/output/filewriter/CSurfaceFEMDataSorter.cpp index ef19eebf145..66e920616d2 100644 --- a/SU2_CFD/src/output/filewriter/CSurfaceFEMDataSorter.cpp +++ b/SU2_CFD/src/output/filewriter/CSurfaceFEMDataSorter.cpp @@ -2,14 +2,14 @@ * \file CSurfaceFEMDataSorter.cpp * \brief Datasorter for FEM surfaces. * \author T. Albring - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/src/output/filewriter/CSurfaceFVMDataSorter.cpp b/SU2_CFD/src/output/filewriter/CSurfaceFVMDataSorter.cpp index 77cc2567e90..e1d1c5e5b6c 100644 --- a/SU2_CFD/src/output/filewriter/CSurfaceFVMDataSorter.cpp +++ b/SU2_CFD/src/output/filewriter/CSurfaceFVMDataSorter.cpp @@ -2,14 +2,14 @@ * \file CSurfaceFVMDataSorter.cpp * \brief Datasorter for FVM surfaces. * \author T. Albring - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/src/output/filewriter/CTecplotBinaryFileWriter.cpp b/SU2_CFD/src/output/filewriter/CTecplotBinaryFileWriter.cpp index ec01ad31428..c73200a55a3 100644 --- a/SU2_CFD/src/output/filewriter/CTecplotBinaryFileWriter.cpp +++ b/SU2_CFD/src/output/filewriter/CTecplotBinaryFileWriter.cpp @@ -2,14 +2,14 @@ * \file CTecplotBinaryFileWriter.cpp * \brief Filewriter class for Tecplot binary format. * \author T. Albring - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/src/output/filewriter/CTecplotFileWriter.cpp b/SU2_CFD/src/output/filewriter/CTecplotFileWriter.cpp index 58a02741f28..e214e4f2193 100644 --- a/SU2_CFD/src/output/filewriter/CTecplotFileWriter.cpp +++ b/SU2_CFD/src/output/filewriter/CTecplotFileWriter.cpp @@ -2,14 +2,14 @@ * \file CTecplotFileWriter.cpp * \brief Filewriter class for Tecplot ASCII format. * \author T. Albring - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/src/output/tools/CWindowingTools.cpp b/SU2_CFD/src/output/tools/CWindowingTools.cpp index f3b228fd8f6..7299644b6a7 100644 --- a/SU2_CFD/src/output/tools/CWindowingTools.cpp +++ b/SU2_CFD/src/output/tools/CWindowingTools.cpp @@ -2,14 +2,14 @@ * \file signal_processing_toolbox.cpp * \brief Signal processing tools * \author S. Schotthöfer - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/src/python_wrapper_structure.cpp b/SU2_CFD/src/python_wrapper_structure.cpp index 490cc193953..97cf441f1e5 100644 --- a/SU2_CFD/src/python_wrapper_structure.cpp +++ b/SU2_CFD/src/python_wrapper_structure.cpp @@ -2,14 +2,14 @@ * \file python_wrapper_structure.cpp * \brief Driver subroutines that are used by the Python wrapper. Those routines are usually called from an external Python environment. * \author D. Thomas - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -163,3 +163,15 @@ void CDriver::SetRotationRate(passivedouble rot_x, passivedouble rot_y, passived main_config->SetRotation_Rate(2, rot_z); } +void CDriver::SetMarkerRotationRate(unsigned short iMarker, passivedouble rot_x, passivedouble rot_y, passivedouble rot_z) { + config_container[selected_zone]->SetMarkerRotationRate(iMarker, 0, rot_x); + config_container[selected_zone]->SetMarkerRotationRate(iMarker, 1, rot_y); + config_container[selected_zone]->SetMarkerRotationRate(iMarker, 2, rot_z); +} + +void CDriver::SetMarkerTranslationRate(unsigned short iMarker, passivedouble vel_x, passivedouble vel_y, passivedouble vel_z) { + config_container[selected_zone]->SetMarkerTranslationRate(iMarker, 0, vel_x); + config_container[selected_zone]->SetMarkerTranslationRate(iMarker, 1, vel_y); + config_container[selected_zone]->SetMarkerTranslationRate(iMarker, 2, vel_z); +} + diff --git a/SU2_CFD/src/solvers/CAdjEulerSolver.cpp b/SU2_CFD/src/solvers/CAdjEulerSolver.cpp index 4e7ff5b2098..e43bd91c871 100644 --- a/SU2_CFD/src/solvers/CAdjEulerSolver.cpp +++ b/SU2_CFD/src/solvers/CAdjEulerSolver.cpp @@ -2,14 +2,14 @@ * \file CAdjEulerSolver.cpp * \brief Main subroutines for solving Euler adjoint problems. * \author F. Palacios, T. Economon, H. Kline - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -43,8 +43,6 @@ CAdjEulerSolver::CAdjEulerSolver() : CSolver() { CSensitivity = nullptr; FlowPrimVar_i = nullptr; FlowPrimVar_j = nullptr; - DonorAdjVar = nullptr; - DonorGlobalIndex = nullptr; } @@ -85,8 +83,6 @@ CAdjEulerSolver::CAdjEulerSolver(CGeometry *geometry, CConfig *config, unsigned CSensitivity = nullptr; FlowPrimVar_i = nullptr; FlowPrimVar_j = nullptr; - DonorAdjVar = nullptr; - DonorGlobalIndex = nullptr; /*--- Set the gamma value ---*/ Gamma = config->GetGamma(); @@ -138,9 +134,6 @@ CAdjEulerSolver::CAdjEulerSolver(CGeometry *geometry, CConfig *config, unsigned jPoint_UndLapl.resize(nPoint); } - /*--- Define some auxiliary vectors related to the geometry ---*/ - Vector_i = new su2double[nDim]; Vector_j = new su2double[nDim]; - /*--- Point to point Jacobians. These are always defined because they are also used for sensitivity calculations. ---*/ Jacobian_i = new su2double* [nVar]; @@ -188,25 +181,19 @@ CAdjEulerSolver::CAdjEulerSolver(CGeometry *geometry, CConfig *config, unsigned /*--- Store the value of the characteristic primitive variables at the boundaries ---*/ - DonorAdjVar = new su2double** [nMarker]; + DonorAdjVar.resize(nMarker); for (iMarker = 0; iMarker < nMarker; iMarker++) { - DonorAdjVar[iMarker] = new su2double* [geometry->nVertex[iMarker]]; + DonorAdjVar[iMarker].resize(geometry->nVertex[iMarker]); for (iVertex = 0; iVertex < geometry->nVertex[iMarker]; iVertex++) { - DonorAdjVar[iMarker][iVertex] = new su2double [nVar]; - for (iVar = 0; iVar < nVar; iVar++) { - DonorAdjVar[iMarker][iVertex][iVar] = 0.0; - } + DonorAdjVar[iMarker][iVertex].resize(nVar, 0.0); } } /*--- Store the value of the characteristic primitive variables index at the boundaries ---*/ - DonorGlobalIndex = new unsigned long* [nMarker]; + DonorGlobalIndex.resize(nMarker); for (iMarker = 0; iMarker < nMarker; iMarker++) { - DonorGlobalIndex[iMarker] = new unsigned long [geometry->nVertex[iMarker]]; - for (iVertex = 0; iVertex < geometry->nVertex[iMarker]; iVertex++) { - DonorGlobalIndex[iMarker][iVertex] = 0; - } + DonorGlobalIndex[iMarker].resize(geometry->nVertex[iMarker],0); } Sens_Geo = new su2double[nMarker]; @@ -3911,10 +3898,8 @@ void CAdjEulerSolver::LoadRestart(CGeometry **geometry, CSolver ***solver, CConf /*--- Delete the class memory that is used to load the restart. ---*/ - delete [] Restart_Vars; - delete [] Restart_Data; - Restart_Vars = nullptr; Restart_Data = nullptr; - + Restart_Vars = decltype(Restart_Vars){}; + Restart_Data = decltype(Restart_Data){}; } void CAdjEulerSolver::SetAuxVar_Surface_Gradient(CGeometry *geometry, const CConfig *config) { diff --git a/SU2_CFD/src/solvers/CAdjNSSolver.cpp b/SU2_CFD/src/solvers/CAdjNSSolver.cpp index 50ca5438e92..b9da5ad2b63 100644 --- a/SU2_CFD/src/solvers/CAdjNSSolver.cpp +++ b/SU2_CFD/src/solvers/CAdjNSSolver.cpp @@ -2,14 +2,14 @@ * \file CAdjNSSolver.cpp * \brief Main subroutines for solving Navier-Stokes adjoint problems. * \author F. Palacios, T. Economon, H. Kline - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -154,25 +154,19 @@ CAdjNSSolver::CAdjNSSolver(CGeometry *geometry, CConfig *config, unsigned short /*--- Store the value of the characteristic primitive variables at the boundaries ---*/ - DonorAdjVar = new su2double** [nMarker]; + DonorAdjVar.resize(nMarker); for (iMarker = 0; iMarker < nMarker; iMarker++) { - DonorAdjVar[iMarker] = new su2double* [geometry->nVertex[iMarker]]; + DonorAdjVar[iMarker].resize(geometry->nVertex[iMarker]); for (iVertex = 0; iVertex < geometry->nVertex[iMarker]; iVertex++) { - DonorAdjVar[iMarker][iVertex] = new su2double [nVar]; - for (iVar = 0; iVar < nVar; iVar++) { - DonorAdjVar[iMarker][iVertex][iVar] = 0.0; - } + DonorAdjVar[iMarker][iVertex].resize(nVar, 0.0); } } /*--- Store the value of the characteristic primitive variables at the boundaries ---*/ - DonorGlobalIndex = new unsigned long* [nMarker]; + DonorGlobalIndex.resize(nMarker); for (iMarker = 0; iMarker < nMarker; iMarker++) { - DonorGlobalIndex[iMarker] = new unsigned long [geometry->nVertex[iMarker]]; - for (iVertex = 0; iVertex < geometry->nVertex[iMarker]; iVertex++) { - DonorGlobalIndex[iMarker][iVertex] = 0; - } + DonorGlobalIndex[iMarker].resize(geometry->nVertex[iMarker],0); } Sens_Geo = new su2double[nMarker]; diff --git a/SU2_CFD/src/solvers/CAdjTurbSolver.cpp b/SU2_CFD/src/solvers/CAdjTurbSolver.cpp index 33ea1f11841..58403f541a4 100644 --- a/SU2_CFD/src/solvers/CAdjTurbSolver.cpp +++ b/SU2_CFD/src/solvers/CAdjTurbSolver.cpp @@ -2,14 +2,14 @@ * \file CAdjTurbVariable.cpp * \brief Main subroutines for solving turbulent adjoint problems. * \author F. Palacios, A. Bueno, T. Economon - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/src/solvers/CBaselineSolver.cpp b/SU2_CFD/src/solvers/CBaselineSolver.cpp index 7d9e483d633..bc8b9c1ebc5 100644 --- a/SU2_CFD/src/solvers/CBaselineSolver.cpp +++ b/SU2_CFD/src/solvers/CBaselineSolver.cpp @@ -2,14 +2,14 @@ * \file CBaselineSolver.cpp * \brief Main subroutines for CBaselineSolver class. * \author F. Palacios, T. Economon - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -480,10 +480,8 @@ void CBaselineSolver::LoadRestart(CGeometry **geometry, CSolver ***solver, CConf /*--- Delete the class memory that is used to load the restart. ---*/ - delete [] Restart_Vars; - delete [] Restart_Data; - Restart_Vars = nullptr; Restart_Data = nullptr; - + Restart_Vars = decltype(Restart_Vars){}; + Restart_Data = decltype(Restart_Data){}; } void CBaselineSolver::LoadRestart_FSI(CGeometry *geometry, CConfig *config, int val_iter) { diff --git a/SU2_CFD/src/solvers/CBaselineSolver_FEM.cpp b/SU2_CFD/src/solvers/CBaselineSolver_FEM.cpp index 19247b9ced1..4fa16b48bb9 100644 --- a/SU2_CFD/src/solvers/CBaselineSolver_FEM.cpp +++ b/SU2_CFD/src/solvers/CBaselineSolver_FEM.cpp @@ -2,14 +2,14 @@ * \file CBaselineSolver_FEM.cpp * \brief Main subroutines for CBaselineSolver_FEM class. * \author F. Palacios, T. Economon - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -379,10 +379,8 @@ void CBaselineSolver_FEM::LoadRestart(CGeometry **geometry, CSolver ***solver, C /*--- Delete the class memory that is used to load the restart. ---*/ - delete [] Restart_Vars; - delete [] Restart_Data; - Restart_Vars = nullptr; Restart_Data = nullptr; - + Restart_Vars = decltype(Restart_Vars){}; + Restart_Data = decltype(Restart_Data){}; } CBaselineSolver_FEM::~CBaselineSolver_FEM() = default; diff --git a/SU2_CFD/src/solvers/CDiscAdjFEASolver.cpp b/SU2_CFD/src/solvers/CDiscAdjFEASolver.cpp index a297039ea3a..2fb85e5ffa9 100644 --- a/SU2_CFD/src/solvers/CDiscAdjFEASolver.cpp +++ b/SU2_CFD/src/solvers/CDiscAdjFEASolver.cpp @@ -2,14 +2,14 @@ * \file CDiscAdjFEASolver.cpp * \brief Main subroutines for solving adjoint FEM elasticity problems. * \author R. Sanchez - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -232,22 +232,30 @@ void CDiscAdjFEASolver::ExtractAdjoint_Solution(CGeometry *geometry, CConfig *co /*--- Extract and store the adjoint solution ---*/ + AD::BeginUseAdjoints(); + for (auto iPoint = 0ul; iPoint < nPoint; iPoint++) { su2double Solution[MAXNVAR] = {0.0}; direct_solver->GetNodes()->GetAdjointSolution(iPoint,Solution); nodes->SetSolution(iPoint,Solution); } + AD::EndUseAdjoints(); + if (CrossTerm) return; /*--- Extract and store the adjoint solution at time n (including accel. and velocity) ---*/ if (config->GetTime_Domain()) { + AD::BeginUseAdjoints(); + for (auto iPoint = 0ul; iPoint < nPoint; iPoint++) { su2double Solution[MAXNVAR] = {0.0}; direct_solver->GetNodes()->GetAdjointSolution_time_n(iPoint,Solution); nodes->Set_Solution_time_n(iPoint,Solution); } + + AD::EndUseAdjoints(); } /*--- Set the residuals ---*/ @@ -358,6 +366,8 @@ void CDiscAdjFEASolver::SetSensitivity(CGeometry *geometry, CConfig *config, CSo /*--- Extract the geometric sensitivities ---*/ + AD::BeginUseAdjoints(); + for (unsigned long iPoint = 0; iPoint < nPoint; iPoint++) { auto Coord = geometry->nodes->GetCoord(iPoint); @@ -375,6 +385,8 @@ void CDiscAdjFEASolver::SetSensitivity(CGeometry *geometry, CConfig *config, CSo } } + AD::EndUseAdjoints(); + } void CDiscAdjFEASolver::ReadDV(const CConfig *config) { diff --git a/SU2_CFD/src/solvers/CDiscAdjMeshSolver.cpp b/SU2_CFD/src/solvers/CDiscAdjMeshSolver.cpp index c23df05b762..98e1e20ef45 100644 --- a/SU2_CFD/src/solvers/CDiscAdjMeshSolver.cpp +++ b/SU2_CFD/src/solvers/CDiscAdjMeshSolver.cpp @@ -2,14 +2,14 @@ * \file CDiscAdjMeshSolver.cpp * \brief Main subroutines for solving the discrete adjoint mesh problem. * \author Ruben Sanchez - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/src/solvers/CDiscAdjSolver.cpp b/SU2_CFD/src/solvers/CDiscAdjSolver.cpp index c42e2b4925f..1b1989fed7d 100644 --- a/SU2_CFD/src/solvers/CDiscAdjSolver.cpp +++ b/SU2_CFD/src/solvers/CDiscAdjSolver.cpp @@ -2,14 +2,14 @@ * \file CDiscAdjSolver.cpp * \brief Main subroutines for solving the discrete adjoint problem. * \author T. Albring - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -317,6 +317,8 @@ void CDiscAdjSolver::ExtractAdjoint_Solution(CGeometry *geometry, CConfig *confi if (!config->GetMultizone_Problem()) nodes->Set_OldSolution(); + AD::BeginUseAdjoints(); + SU2_OMP_FOR_STAT(omp_chunk_size) for (auto iPoint = 0ul; iPoint < nPoint; iPoint++) { @@ -339,6 +341,8 @@ void CDiscAdjSolver::ExtractAdjoint_Solution(CGeometry *geometry, CConfig *confi } END_SU2_OMP_FOR + AD::EndUseAdjoints(); + direct_solver->ExtractAdjoint_SolutionExtra(nodes->GetSolutionExtra(), config); /*--- Residuals and time_n terms are not needed when evaluating multizone cross terms. ---*/ @@ -355,6 +359,8 @@ void CDiscAdjSolver::ExtractAdjoint_Solution(CGeometry *geometry, CConfig *confi /*--- Extract and store the adjoint of the primal solution at time n ---*/ if (time_n_needed) { + AD::BeginUseAdjoints(); + SU2_OMP_FOR_STAT(omp_chunk_size) for (auto iPoint = 0ul; iPoint < nPoint; iPoint++) { su2double Solution[MAXNVAR] = {0.0}; @@ -362,10 +368,14 @@ void CDiscAdjSolver::ExtractAdjoint_Solution(CGeometry *geometry, CConfig *confi nodes->Set_Solution_time_n(iPoint,Solution); } END_SU2_OMP_FOR + + AD::EndUseAdjoints(); } /*--- Extract and store the adjoint of the primal solution at time n-1 ---*/ if (time_n1_needed) { + AD::BeginUseAdjoints(); + SU2_OMP_FOR_STAT(omp_chunk_size) for (auto iPoint = 0ul; iPoint < nPoint; iPoint++) { su2double Solution[MAXNVAR] = {0.0}; @@ -373,6 +383,8 @@ void CDiscAdjSolver::ExtractAdjoint_Solution(CGeometry *geometry, CConfig *confi nodes->Set_Solution_time_n1(iPoint,Solution); } END_SU2_OMP_FOR + + AD::EndUseAdjoints(); } } @@ -477,6 +489,8 @@ void CDiscAdjSolver::SetAdjoint_Output(CGeometry *geometry, CConfig *config) { void CDiscAdjSolver::SetSensitivity(CGeometry *geometry, CConfig *config, CSolver*) { + AD::BeginUseAdjoints(); + SU2_OMP_PARALLEL { const bool time_stepping = (config->GetTime_Marching() != TIME_MARCHING::STEADY); @@ -510,6 +524,8 @@ void CDiscAdjSolver::SetSensitivity(CGeometry *geometry, CConfig *config, CSolve } END_SU2_OMP_PARALLEL + + AD::EndUseAdjoints(); } void CDiscAdjSolver::SetSurface_Sensitivity(CGeometry *geometry, CConfig *config) { diff --git a/SU2_CFD/src/solvers/CEulerSolver.cpp b/SU2_CFD/src/solvers/CEulerSolver.cpp index e665fbe06e1..16cdfe59a4b 100644 --- a/SU2_CFD/src/solvers/CEulerSolver.cpp +++ b/SU2_CFD/src/solvers/CEulerSolver.cpp @@ -2,14 +2,14 @@ * \file CEulerSolver.cpp * \brief Main subroutines for solving Finite-Volume Euler flow problems. * \author F. Palacios, T. Economon - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -36,6 +36,7 @@ #include "../../include/fluid/CCoolProp.hpp" #include "../../include/numerics_simd/CNumericsSIMD.hpp" #include "../../include/limiters/CLimiterDetails.hpp" +#include "../../include/output/CTurboOutput.hpp" CEulerSolver::CEulerSolver(CGeometry *geometry, CConfig *config, @@ -194,10 +195,23 @@ CEulerSolver::CEulerSolver(CGeometry *geometry, CConfig *config, AllocVectorOfVectors(nVertex, ActDisk_Fy); AllocVectorOfVectors(nVertex, ActDisk_Fz); + /*--- Actuator Disk BEM Fa, Fx, Fy and Fz allocations ---*/ + + AllocVectorOfVectors(nVertex, ActDisk_Fa_BEM); + AllocVectorOfVectors(nVertex, ActDisk_Fx_BEM); + AllocVectorOfVectors(nVertex, ActDisk_Fy_BEM); + AllocVectorOfVectors(nVertex, ActDisk_Fz_BEM); + /*--- Store the value of the Delta P at the Actuator Disk ---*/ AllocVectorOfVectors(nVertex, ActDisk_DeltaP); + /*--- Store the value of DeltaP_r, Thrust_r and Torque_r at the Actuator Disk for BEM ---*/ + + AllocVectorOfVectors(nVertex, ActDisk_DeltaP_r); + AllocVectorOfVectors(nVertex, ActDisk_Thrust_r); + AllocVectorOfVectors(nVertex, ActDisk_Torque_r); + /*--- Store the value of the Delta T at the Actuator Disk ---*/ AllocVectorOfVectors(nVertex, ActDisk_DeltaT); @@ -853,7 +867,7 @@ void CEulerSolver::SetNondimensionalization(CConfig *config, unsigned short iMes auxFluidModel = new CPengRobinson(Gamma, config->GetGas_Constant(), config->GetPressure_Critical(), config->GetTemperature_Critical(), config->GetAcentric_Factor()); break; - + case DATADRIVEN_FLUID: auxFluidModel = new CDataDrivenFluid(config); @@ -2514,6 +2528,7 @@ void CEulerSolver::GetPower_Properties(CGeometry *geometry, CConfig *config, uns Velocity2, Density, Area, SoundSpeed, TotalPressure, Vel_Infty2, RamDrag, TotalTemperature, VelocityJet, Vel_Infty, MaxPressure, MinPressure, MFR, InfVel2; + su2double DeltaPressure = 0.0, DeltaThrust = 0.0, DeltaTorque = 0.0; unsigned short iMarker_Inlet, iMarker_Outlet, nMarker_Inlet, nMarker_Outlet; string Inlet_TagBound, Outlet_TagBound; su2double DeltaPress = 0.0, DeltaTemp = 0.0, TotalPressRatio = 0.0, TotalTempRatio = 0.0, StaticPressRatio = 0.0, StaticTempRatio = 0.0, @@ -2566,6 +2581,10 @@ void CEulerSolver::GetPower_Properties(CGeometry *geometry, CConfig *config, uns auto *Outlet_Force = new su2double [config->GetnMarker_All()](); auto *Outlet_Power = new su2double [config->GetnMarker_All()](); + auto *Outlet_DeltaP = new su2double [config->GetnMarker_All()](); + auto *Outlet_Thrust = new su2double [config->GetnMarker_All()](); + auto *Outlet_Torque = new su2double [config->GetnMarker_All()](); + /*--- Comute MassFlow, average temp, press, etc. ---*/ for (iMarker = 0; iMarker < config->GetnMarker_All(); iMarker++) { @@ -2674,6 +2693,9 @@ void CEulerSolver::GetPower_Properties(CGeometry *geometry, CConfig *config, uns TotalPressure = Pressure * pow( 1.0 + Mach * Mach * 0.5 * (Gamma - 1.0), Gamma / (Gamma - 1.0)); TotalTemperature = Temperature * (1.0 + Mach * Mach * 0.5 * (Gamma - 1.0)); VelocityJet = sqrt(Velocity2) ; + DeltaPressure = ActDisk_DeltaP_r[iMarker][iVertex]; + DeltaThrust = ActDisk_Thrust_r[iMarker][iVertex]; + DeltaTorque = ActDisk_Torque_r[iMarker][iVertex]; GrossThrust = MassFlow * VelocityJet; @@ -2685,6 +2707,9 @@ void CEulerSolver::GetPower_Properties(CGeometry *geometry, CConfig *config, uns Outlet_Area[iMarker] += Area; Outlet_GrossThrust[iMarker] += GrossThrust; Outlet_Power[iMarker] += MassFlow*Cp*TotalTemperature; + Outlet_DeltaP[iMarker] += DeltaPressure * Area; + Outlet_Thrust[iMarker] += DeltaThrust * Area; + Outlet_Torque[iMarker] += DeltaTorque * Area; su2double Outlet_ForceX = -(Pressure - Pressure_Inf)*Vector[0] -MassFlow*Velocity[0]; su2double Outlet_ForceY = -(Pressure - Pressure_Inf)*Vector[1] -MassFlow*Velocity[1]; @@ -2746,6 +2771,9 @@ void CEulerSolver::GetPower_Properties(CGeometry *geometry, CConfig *config, uns auto *Outlet_Force_Local = new su2double [nMarker_Outlet](); auto *Outlet_Power_Local = new su2double [nMarker_Outlet](); auto *Outlet_Area_Local = new su2double [nMarker_Outlet](); + auto *Outlet_DeltaP_Local = new su2double [nMarker_Outlet](); + auto *Outlet_Thrust_Local = new su2double [nMarker_Outlet](); + auto *Outlet_Torque_Local = new su2double [nMarker_Outlet](); auto *Outlet_MassFlow_Total = new su2double [nMarker_Outlet](); auto *Outlet_Pressure_Total = new su2double [nMarker_Outlet](); @@ -2756,6 +2784,9 @@ void CEulerSolver::GetPower_Properties(CGeometry *geometry, CConfig *config, uns auto *Outlet_Force_Total = new su2double [nMarker_Outlet](); auto *Outlet_Power_Total = new su2double [nMarker_Outlet](); auto *Outlet_Area_Total = new su2double [nMarker_Outlet](); + auto *Outlet_DeltaP_Total = new su2double [nMarker_Outlet](); + auto *Outlet_Thrust_Total = new su2double [nMarker_Outlet](); + auto *Outlet_Torque_Total = new su2double [nMarker_Outlet](); /*--- Copy the values to the local array for MPI ---*/ @@ -2805,6 +2836,9 @@ void CEulerSolver::GetPower_Properties(CGeometry *geometry, CConfig *config, uns Outlet_Force_Local[iMarker_Outlet] += Outlet_Force[iMarker]; Outlet_Power_Local[iMarker_Outlet] += Outlet_Power[iMarker]; Outlet_Area_Local[iMarker_Outlet] += Outlet_Area[iMarker]; + Outlet_DeltaP_Local[iMarker_Outlet] += Outlet_DeltaP[iMarker]; + Outlet_Thrust_Local[iMarker_Outlet] += Outlet_Thrust[iMarker]; + Outlet_Torque_Local[iMarker_Outlet] += Outlet_Torque[iMarker]; } } @@ -2855,6 +2889,9 @@ void CEulerSolver::GetPower_Properties(CGeometry *geometry, CConfig *config, uns SU2_MPI::Allreduce(Outlet_Force_Local, Outlet_Force_Total, nMarker_Outlet, MPI_DOUBLE, MPI_SUM, SU2_MPI::GetComm()); SU2_MPI::Allreduce(Outlet_Power_Local, Outlet_Power_Total, nMarker_Outlet, MPI_DOUBLE, MPI_SUM, SU2_MPI::GetComm()); SU2_MPI::Allreduce(Outlet_Area_Local, Outlet_Area_Total, nMarker_Outlet, MPI_DOUBLE, MPI_SUM, SU2_MPI::GetComm()); + SU2_MPI::Allreduce(Outlet_DeltaP_Local, Outlet_DeltaP_Total, nMarker_Outlet, MPI_DOUBLE, MPI_SUM, SU2_MPI::GetComm()); + SU2_MPI::Allreduce(Outlet_Thrust_Local, Outlet_Thrust_Total, nMarker_Outlet, MPI_DOUBLE, MPI_SUM, SU2_MPI::GetComm()); + SU2_MPI::Allreduce(Outlet_Torque_Local, Outlet_Torque_Total, nMarker_Outlet, MPI_DOUBLE, MPI_SUM, SU2_MPI::GetComm()); /*--- Compute the value of the average surface temperature and pressure and set the value in the config structure for future use ---*/ @@ -2945,6 +2982,8 @@ void CEulerSolver::GetPower_Properties(CGeometry *geometry, CConfig *config, uns config->SetActDiskOutlet_GrossThrust(iMarker_Outlet, Outlet_GrossThrust_Total[iMarker_Outlet]); config->SetActDiskOutlet_Force(iMarker_Outlet, Outlet_Force_Total[iMarker_Outlet]); config->SetActDiskOutlet_Power(iMarker_Outlet, Outlet_Power_Total[iMarker_Outlet]); + config->SetActDiskOutlet_Thrust_BEM(iMarker_Outlet, Outlet_Thrust_Total[iMarker_Outlet]); + config->SetActDiskOutlet_Torque_BEM(iMarker_Outlet, Outlet_Torque_Total[iMarker_Outlet]); } } @@ -3300,6 +3339,11 @@ void CEulerSolver::GetPower_Properties(CGeometry *geometry, CConfig *config, uns cout << setprecision(1) << Power * Ref * config->GetVelocity_Ref() / 550.0 << "." << endl; } + if (config->GetKind_ActDisk() == BLADE_ELEMENT) { + cout << setprecision(5); + cout << "Thrust_BEM (N): " << config->GetActDiskOutlet_Thrust_BEM(Outlet_TagBound) << ". "; + cout << "Torque_BEM (N-m): " << config->GetActDiskOutlet_Torque_BEM(Outlet_TagBound) << "." << endl; + } } } @@ -3319,6 +3363,9 @@ void CEulerSolver::GetPower_Properties(CGeometry *geometry, CConfig *config, uns delete [] Outlet_GrossThrust_Local; delete [] Outlet_Force_Local; delete [] Outlet_Power_Local; + delete [] Outlet_DeltaP_Local; + delete [] Outlet_Thrust_Local; + delete [] Outlet_Torque_Local; delete [] Outlet_MassFlow_Total; delete [] Outlet_Temperature_Total; @@ -3329,6 +3376,9 @@ void CEulerSolver::GetPower_Properties(CGeometry *geometry, CConfig *config, uns delete [] Outlet_GrossThrust_Total; delete [] Outlet_Force_Total; delete [] Outlet_Power_Total; + delete [] Outlet_DeltaP_Total; + delete [] Outlet_Thrust_Total; + delete [] Outlet_Torque_Total; delete [] Inlet_MassFlow_Local; delete [] Inlet_ReverseMassFlow_Local; @@ -3390,6 +3440,9 @@ void CEulerSolver::GetPower_Properties(CGeometry *geometry, CConfig *config, uns delete [] Outlet_GrossThrust; delete [] Outlet_Force; delete [] Outlet_Power; + delete [] Outlet_DeltaP; + delete [] Outlet_Thrust; + delete [] Outlet_Torque; } @@ -3432,6 +3485,11 @@ void CEulerSolver::SetActDisk_BCThrust(CGeometry *geometry, CSolver **solver_con Factor = (0.5*RefDensity*RefArea*RefVel2); Ref = config->GetDensity_Ref() * config->GetVelocity_Ref() * config->GetVelocity_Ref() * 1.0 * 1.0; + /*--- Blade element distribution is in input file. ---*/ + if (Kind_ActDisk == BLADE_ELEMENT) { + SetActDisk_BEM_VLAD(geometry, solver_container, config, iMesh, Output); + } + /*--- Variable load distribution is in input file. ---*/ if (Kind_ActDisk == VARIABLE_LOAD) { if(InnerIter == 0) { @@ -4037,6 +4095,432 @@ void CEulerSolver::ReadActDisk_InputFile(CGeometry *geometry, CSolver **solver_c } } +void CEulerSolver::SetActDisk_BEM_VLAD(CGeometry *geometry, CSolver **solver_container, + CConfig *config, unsigned short iMesh, bool Output) { + + /*! + * \function SetActDisk_BEM_VLAD + * \brief Actuator disk model with Blade Element Method (BEM) + * \author: Chandukrishna Y., T. N. Venkatesh and Josy Pullockara + * Institution: Computational and Theoretical Fluid Dynamics (CTFD), + * CSIR - National Aerospace Laboratories, Bangalore + * Academy of Scientific and Innovative Research, Ghaziabad + * \version 8.0.1 "Harrier" + * First release date : September 26 2023 + * modified on: + * + * Section properties of the propeller given in an input file. + * Cl, Cd of propeller sections need to be generated earlier and saved in this file + * Actuator disk data initialized in function SetActDisk_BCThrust. + * Propeller load calculated with Blade Element Method + * Interpolated load at each point on the actuator disk is set in SetActDisk_BEM_VLAD function + * Rest calculations follows the Variable Load (BC_ActDisk_VariableLoad) approach + * + */ + + /*--- InputFile reading ---*/ + static int ADBem_NBlade = 0, ADBem_NSection = 0, ADBem_NAlpha = 0; + static su2double ADBem_Diameter = 0.0, ADBem_HubRadius = 0.0, ADBem_Angle75R = 0.0; + static std::vector i_v, radius_v, chord_v, angle75r_v; + static std::vector > alpha_m, cl_m, cd_m; + + static su2double ADBem_Omega = 0.0; + static su2double ADBem_CG[MAXNDIM] = {0.0, 0.0, 0.0}; + static su2double ADBem_Axis[MAXNDIM] = {0.0}, ADBem_J = 0.0; + static unsigned short ADBem_Frequency = 0; + + /*--- BEM VLAD ---*/ + const int BEM_MAX_ITER = 20; + + unsigned long InnerIter = config->GetInnerIter(); + su2double Dens_FreeStream = config->GetDensity_FreeStream(); + const su2double* Vel_FreeStream = config->GetVelocity_FreeStream(); + + /*--- Input file provides force coefficients distributions along disk radius. + Initialization necessary only at initial iteration (InnerIter == 0) + when the tables (radius_v, chord_v, ...) are empty. ---*/ + if (radius_v.empty()) { + /*--- Get the RPM, CG, Axis and Frequency from config. ---*/ + for (unsigned short iMarker = 0; iMarker < config->GetnMarker_All(); iMarker++) { + + if ((config->GetMarker_All_KindBC(iMarker) == ACTDISK_INLET) || + (config->GetMarker_All_KindBC(iMarker) == ACTDISK_OUTLET)) { + + const string Marker_Tag = config->GetMarker_All_TagBound(iMarker); + ADBem_Omega = config->GetActDisk_Omega(Marker_Tag, 0); + for (unsigned short iDim = 0; iDim < nDim; iDim++) { + ADBem_CG[iDim] = config->GetActDiskBem_CG(iDim, Marker_Tag, 0); + ADBem_Axis[iDim] = config->GetActDiskBem_Axis(iDim, Marker_Tag, 0); + } + } + } + ADBem_Frequency = config->GetActDiskBem_Frequency(); + + /*--- Get the file name that contains the propeller data. ---*/ + string ActDiskBem_filename = config->GetBEM_prop_filename(); + ifstream ActDiskBem_file; + + /*--- Open the file that contains the propeller data. ---*/ + ActDiskBem_file.open(ActDiskBem_filename.data(), ios::in); + + /*--- Error message if the propeller data input file fails to open. ---*/ + if (ActDiskBem_file.fail()) SU2_MPI::Error("Unable to open Actuator Disk BEM Input File", CURRENT_FUNCTION); + + string text_line_appo; + + getline(ActDiskBem_file, text_line_appo); + /*--- Read and assign the value of the number of propeller blades. ---*/ + getline(ActDiskBem_file, text_line_appo); + istringstream NBlade_value(text_line_appo); + NBlade_value >> ADBem_NBlade; + + /*--- Read and assign the value of the propeller diameter. ---*/ + getline(ActDiskBem_file, text_line_appo); + istringstream Diameter_value(text_line_appo); + Diameter_value >> ADBem_Diameter; + + /*--- Read and assign the value of the propeller hub radius. ---*/ + getline(ActDiskBem_file, text_line_appo); + istringstream HubR_value(text_line_appo); + HubR_value >> ADBem_HubRadius; + + /*--- Read and assign the value of the blade angle at 75% of R. ---*/ + getline(ActDiskBem_file, text_line_appo); + istringstream Angle75R_value(text_line_appo); + Angle75R_value >> ADBem_Angle75R; + + getline(ActDiskBem_file, text_line_appo); + /*--- Read and assign the value of the number of radial propeller blade sections and alphas for each. ---*/ + getline(ActDiskBem_file, text_line_appo); + istringstream NSection_NAlpha_value(text_line_appo); + NSection_NAlpha_value >> ADBem_NSection >> ADBem_NAlpha; + + /*--- Assign the vector dimensions. ---*/ + i_v.resize(ADBem_NSection, 0.0); + radius_v.resize(ADBem_NSection, 0.0); + chord_v.resize(ADBem_NSection, 0.0); + angle75r_v.resize(ADBem_NSection, 0.0); + + getline(ActDiskBem_file, text_line_appo); + /*--- Read and assign the values of the propeller blade section's id, radius, chord, angle75R. ---*/ + for (int iSection = 0; iSection < ADBem_NSection; iSection++) { + getline(ActDiskBem_file, text_line_appo); + istringstream sectionStream(text_line_appo); + sectionStream >> i_v[iSection] >> radius_v[iSection] >> chord_v[iSection] >> angle75r_v[iSection]; + } + + /*--- Assign the matrix dimensions. ---*/ + alpha_m.resize(ADBem_NAlpha, std::vector(ADBem_NSection, 0.0)); + cl_m.resize(ADBem_NAlpha, std::vector(ADBem_NSection, 0.0)); + cd_m.resize(ADBem_NAlpha, std::vector(ADBem_NSection, 0.0)); + + /*--- Read and assign the values for each of the propeller blade section's alpha, cl, cd. ---*/ + for (int iSection = 0; iSection < ADBem_NSection; iSection++) { + getline(ActDiskBem_file, text_line_appo); + for (int iAlpha = 0; iAlpha < ADBem_NAlpha; iAlpha++) { + getline(ActDiskBem_file, text_line_appo); + istringstream alphaStream(text_line_appo); + alphaStream >> alpha_m[iAlpha][iSection] >> cl_m[iAlpha][iSection] >> cd_m[iAlpha][iSection]; + } + } + } + + /*--- Update the propeller load according to the modified flow field after every ADBem_Frequency inner iterations. ---*/ + if (InnerIter % ADBem_Frequency != 0) return; + const su2double dia = ADBem_Diameter; + const su2double r_tip = 0.5 * dia; + su2double loc_Torque = 0.0; + su2double loc_thrust = 0.0; + su2double tot_area = 0.0, tot_tq = 0.0; + + su2double Normal[MAXNDIM]; + for (unsigned short iMarker = 0; iMarker < config->GetnMarker_All(); iMarker++) { + if ((config->GetMarker_All_KindBC(iMarker) == ACTDISK_INLET) || + (config->GetMarker_All_KindBC(iMarker) == ACTDISK_OUTLET)) { + for (unsigned long iVertex = 0; iVertex < geometry->nVertex[iMarker]; iVertex++) { + const unsigned long iPoint = geometry->vertex[iMarker][iVertex]->GetNode(); + + /*--- Read Swirl params. ---*/ + const su2double Omega_RPM = ADBem_Omega; + const su2double omega_ref = config->GetOmega_Ref(); + const su2double Lref = config->GetLength_Ref(); + const su2double Omega_sw = Omega_RPM * (PI_NUMBER / 30.0) / (omega_ref); // Swirl rate + + /*--- Center of the rotor ---*/ + su2double Origin[3] = {0.0, 0.0, 0.0}; + for (unsigned short iDim = 0; iDim < nDim; iDim++) { + Origin[iDim] = ADBem_CG[iDim] / Lref; + } + + /*--- Compute the distance to the center of the rotor ---*/ + geometry->vertex[iMarker][iVertex]->GetNormal(Normal); + for (unsigned short iDim = 0; iDim < nDim; iDim++) { + Normal[iDim] = -Normal[iDim]; + } + + /*--- Get propeller axis from config file. ---*/ + for (unsigned short iDim = 0; iDim < nDim; iDim++){ + ActDisk_Axis(iMarker, iDim) = ADBem_Axis[iDim]; + } + su2double Area = 0.0; + for (unsigned short iDim = 0; iDim < nDim; iDim++) { + Area += Normal[iDim] * Normal[iDim]; + } + Area = sqrt(Area); + + su2double UnitNormal[3] = {0.0, 0.0, 0.0}; + for (unsigned short iDim = 0; iDim < nDim; iDim++) { + UnitNormal[iDim] = Normal[iDim] / Area; + } + + const su2double* Coord = geometry->nodes->GetCoord(iPoint); + + su2double radius = 0.0; + su2double radius_[3] = {0.0, 0.0, 0.0}; + for (unsigned short iDim = 0; iDim < nDim; iDim++) { + radius += (Coord[iDim] - Origin[iDim]) * (Coord[iDim] - Origin[iDim]); + radius_[iDim] = (Coord[iDim] - Origin[iDim]); + } + radius = sqrt(radius); + + /*--- Current solution at this boundary node and jumps values ---*/ + const su2double* V_domain = nodes->GetPrimitive(iPoint); + + if (abs(Omega_sw) > 1.0e-1) { + su2double Vn = 0.0; + for (unsigned short iDim = 0; iDim < nDim; iDim++) { + Vn += V_domain[iDim + 1] * UnitNormal[iDim]; + } + + const su2double RPM = abs(Omega_RPM); + const su2double rps = RPM / 60.0; + ADBem_J = Vel_FreeStream[0] / (rps * dia); + const su2double rho = V_domain[nDim + 2]; + const su2double T = V_domain[0]; + const su2double blade_angle = config->GetBEM_blade_angle(); + const su2double V = fabs(Vn); + + /*--- BEM model without parameter 'a' (ref?) ---*/ + su2double Torque = 0.0, dp_av = 0.0, dp_at_r = 0.0; + { + std::vector DtDr(ADBem_NSection, 0.0); + + int s_prop_nblades = ADBem_NBlade; + int sprop_sec_nalf = ADBem_NAlpha; + int sprop_sec_nrad = ADBem_NSection; + std::vector& sprop_sec_r1 = radius_v; + std::vector& sprop_sec_chord = chord_v; + std::vector& sprop_sec_setangle = angle75r_v; + std::vector >& sprop_sec_alf = alpha_m; + std::vector >& sprop_sec_cl_arr = cl_m; + std::vector >& sprop_sec_cd_arr = cd_m; + + su2double rad_p = radius; + + int j, isec, converged, n_iter; + int NR = sprop_sec_nrad; + su2double r_hub, alpha_corr, cl_corr_fac; + su2double base_mach, s_mach, b_num, thrust, torque; + su2double r_dash, t_loss, c_phi, rad, phi, alpha, radtodeg; + su2double bnew, V0, V2, cl = 0.0, cd = 0.0, Vlocal, DqDr = 0.0, tem1, tem2, q; + std::vector delta_r(ADBem_NSection, 0.0); + std::vector b(ADBem_NSection, 0.0); + static std::vector Dtorq(ADBem_NSection, 0.0); + + su2double n, omega, a0, den; + su2double ang_offset = 0.0; + + radtodeg = 180.0 / PI_NUMBER; + r_hub = ADBem_HubRadius; + ang_offset = blade_angle - ADBem_Angle75R; + + alpha_corr = 0.0; + base_mach = 0.22; + b_num = sqrt(1.0 - base_mach * base_mach); + a0 = sqrt(1.4 * 287 * T); + /*--- Change pitch by ang_offset and calculate delta_r for integration by trapezoidal rule. ---*/ + n = RPM / 60.0; + omega = n * 2.0 * PI_NUMBER; + + for (j = 0; j < NR; j++) { + if (j < 1) { + delta_r[j] = sprop_sec_r1[j + 1] - r_hub; + } else { + if (j < NR - 1) { + delta_r[j] = sprop_sec_r1[j + 1] - sprop_sec_r1[j - 1]; + } else { + delta_r[j] = r_tip - sprop_sec_r1[j - 1]; + } + } + delta_r[j] *= 0.5; + } + + thrust = 0.0; + torque = 0.0; + + for (j = 0; j < NR; j++) { + b[j] = 0.01; + converged = 0; + n_iter = 1; + while (converged == 0) { + V2 = omega * sprop_sec_r1[j] * (1 - b[j]); + V0 = V; + + phi = atan2(V0, V2); + + alpha = sprop_sec_setangle[j] + ang_offset - radtodeg * phi + alpha_corr; + rad = sprop_sec_r1[j]; + + /*--- get cl, cd from lookup table. ---*/ + isec = j + 1; + { + int i, salf = 0; + su2double fact; + + /*--- interpolating values of cl and cd for given alpha. ---*/ + if (alpha >= sprop_sec_alf[salf][isec - 1] && + alpha <= sprop_sec_alf[sprop_sec_nalf - 1][isec - 1]) { + for (i = 0; i < sprop_sec_nalf - 1; i++) { + if (alpha >= sprop_sec_alf[i][isec - 1] && alpha <= sprop_sec_alf[i + 1][isec - 1]) { + fact = (alpha - sprop_sec_alf[i][isec - 1]) + / (sprop_sec_alf[i + 1][isec - 1] - sprop_sec_alf[i][isec - 1]); + cl = sprop_sec_cl_arr[i][isec - 1] + + fact * (sprop_sec_cl_arr[i + 1][isec - 1] - sprop_sec_cl_arr[i][isec - 1]); + cd = sprop_sec_cd_arr[i][isec - 1] + + fact * (sprop_sec_cd_arr[i + 1][isec - 1] - sprop_sec_cd_arr[i][isec - 1]); + } + } + } else { + if (alpha < sprop_sec_alf[salf][isec - 1]) { + cl = sprop_sec_cl_arr[0][isec - 1]; + cd = sprop_sec_cd_arr[0][isec - 1]; + } + if (alpha > sprop_sec_alf[sprop_sec_nalf - 1][isec - 1]) { + cl = sprop_sec_cl_arr[sprop_sec_nalf - 1][isec - 1]; + cd = sprop_sec_cd_arr[sprop_sec_nalf - 1][isec - 1]; + } + } + } + + Vlocal = sqrt(V0 * V0 + V2 * V2); + q = 0.5 * rho * Vlocal * Vlocal; + s_mach = Vlocal / a0; + cl_corr_fac = 1.0; + if (s_mach > base_mach) { + den = 1.0 - s_mach * s_mach; + if (den > 0.0) cl_corr_fac = b_num / sqrt(den); + } + cl *= cl_corr_fac; + + /*--- tip loss factor. ---*/ + r_dash = rad / r_tip + 1.0e-5; + c_phi = cos(phi); + t_loss = 1.0; + if (r_dash > 0.90) { + t_loss = (2.0 / PI_NUMBER) * acos(exp(-(1.0 * s_prop_nblades * (1 - r_dash) / (r_dash * c_phi)))); + } + + DtDr[j] = q * s_prop_nblades * sprop_sec_chord[j] * (cl * cos(phi) - cd * sin(phi)); + DqDr = q * s_prop_nblades * sprop_sec_chord[j] * rad * (cd * cos(phi) + cl * sin(phi)); + + DtDr[j] *= t_loss; + DqDr *= t_loss; + + tem2 = DqDr / (4.0 * PI_NUMBER * rad * rad * rad * rho * V * omega); + bnew = 0.6 * b[j] + 0.4 * tem2; + if (bnew > 0.9) bnew = 0.9; + if (fabs(bnew - b[j]) < 1.0e-5) { + converged = 1; + } + if (bnew < 0.1) { + b[j] = bnew; + } + n_iter++; + if (n_iter > BEM_MAX_ITER) { + converged = 1; + } + } + thrust = thrust + DtDr[j] * delta_r[j]; + torque = torque + DqDr * delta_r[j]; + Dtorq[j] = DqDr; + } + + tem1 = rho * n * n * dia * dia * dia * dia; + tem2 = tem1 * dia; + + Torque = 2.0 * PI_NUMBER * torque; + dp_av = 2.0 * PI_NUMBER * torque; + + for (j = 0; j < NR; j++) { + DtDr[j] /= (2.0 * PI_NUMBER * sprop_sec_r1[j]); + Dtorq[j] = Dtorq[j]; + } + + if (rad_p < sprop_sec_r1[0]) { + tem2 = sprop_sec_r1[0] - r_hub; + tem1 = (rad_p - r_hub) / tem2; + tem2 = 1.0 - tem1; + dp_at_r = DtDr[0] * tem1; + Torque = Dtorq[0] * tem1; + } else { + if (rad_p > r_tip) { + dp_at_r = 0.0; + Torque = 0.0; + } else { + if (rad_p > sprop_sec_r1[NR - 1]) { + tem2 = r_tip - sprop_sec_r1[NR - 1]; + tem1 = (rad_p - sprop_sec_r1[NR - 1]) / tem2; + tem2 = 1.0 - tem1; + dp_at_r = DtDr[NR - 1] * tem2; + Torque = Dtorq[NR - 1] * tem2; + } else { + for (j = 0; j < NR - 1; j++) { + if ((sprop_sec_r1[j] < rad_p) && (sprop_sec_r1[j + 1] >= rad_p)) { + tem2 = sprop_sec_r1[j + 1] - sprop_sec_r1[j]; + tem1 = (rad_p - sprop_sec_r1[j]) / tem2; + tem2 = 1.0 - tem1; + dp_at_r = DtDr[j] * tem2 + DtDr[j + 1] * tem1; + Torque = Dtorq[j] * tem2 + Dtorq[j + 1] * tem1; + } + } + } + } + } + } + + tot_area += Area; + loc_Torque += Torque * Area; + tot_tq += dp_av; + loc_thrust += dp_at_r * Area; + const su2double Target_Press_Jump = dp_at_r; + + ActDisk_DeltaP_r[iMarker][iVertex] = Target_Press_Jump; + ActDisk_Thrust_r[iMarker][iVertex] = dp_at_r; + ActDisk_Torque_r[iMarker][iVertex] = Torque / (2 * PI_NUMBER * radius); + /*--- Non-dimensionalize the elemental load. ---*/ + const su2double dCp_v = Torque * ((Omega_sw * r_tip) / (rho * rps * rps * rps * pow(dia, 5))); + /*--- Force radial load to 0 as there is no information of radial load from BEM. ---*/ + const su2double dCr_v = 0.0; + const su2double rad_v = radius / r_tip; + const su2double Fa = dp_at_r; + const su2double Ft = (dCp_v * (2 * Dens_FreeStream * pow(Vel_FreeStream[0], 2)) / + ((ADBem_J * PI_NUMBER * rad_v) * (ADBem_J * PI_NUMBER * rad_v))) / + config->GetPressure_Ref(); + const su2double Fr = (dCr_v * (2 * Dens_FreeStream * pow(Vel_FreeStream[0], 2)) / + (pow(ADBem_J, 2) * PI_NUMBER * rad_v)) / config->GetPressure_Ref(); + const su2double Fx = (Ft + Fr) * (radius_[0] / (radius)); + const su2double Fy = (Ft + Fr) * (radius_[2] / (radius)); + const su2double Fz = -(Ft + Fr) * (radius_[1] / (radius)); + ActDisk_Fa_BEM[iMarker][iVertex] = Fa; + ActDisk_Fx_BEM[iMarker][iVertex] = Fx; + ActDisk_Fy_BEM[iMarker][iVertex] = Fy; + ActDisk_Fz_BEM[iMarker][iVertex] = Fz; + } + } + } + } +} + void CEulerSolver::SetFarfield_AoA(CGeometry *geometry, CSolver **solver_container, CConfig *config, unsigned short iMesh, bool Output) { @@ -4539,109 +5023,75 @@ void CEulerSolver::BC_Riemann(CGeometry *geometry, CSolver **solver_container, CNumerics *conv_numerics, CNumerics *visc_numerics, CConfig *config, unsigned short val_marker) { - unsigned short iDim, iVar, jVar, kVar; - unsigned long iVertex, iPoint, Point_Normal; - const su2double *Flow_Dir, *Mach; - su2double P_Total, T_Total, P_static, T_static, Rho_static, Area, UnitNormal[MAXNDIM]; - su2double *Velocity_b, Velocity2_b, Enthalpy_b, Energy_b, StaticEnergy_b, Density_b, Kappa_b, Chi_b, Pressure_b, Temperature_b; - su2double *Velocity_e, Velocity2_e, VelMag_e, Enthalpy_e, Entropy_e, Energy_e = 0.0, StaticEnthalpy_e, StaticEnergy_e, Density_e = 0.0, Pressure_e; - su2double *Velocity_i, Velocity2_i, Enthalpy_i, Energy_i, StaticEnergy_i, Density_i, Kappa_i, Chi_i, Pressure_i, SoundSpeed_i; - su2double ProjVelocity_i; - su2double **P_Tensor, **invP_Tensor, *Lambda_i, **Jacobian_b, **Jacobian_i, **DubDu, *dw, *u_e, *u_i, *u_b; - su2double *gridVel, *Residual; - su2double *V_boundary, *V_domain, *S_boundary, *S_domain; - - bool implicit = (config->GetKind_TimeIntScheme() == EULER_IMPLICIT); - string Marker_Tag = config->GetMarker_All_TagBound(val_marker); - bool viscous = config->GetViscous(); - bool gravity = config->GetGravityForce(); - bool tkeNeeded = (config->GetKind_Turb_Model() == TURB_MODEL::SST); + const string Marker_Tag = config->GetMarker_All_TagBound(val_marker); + const bool viscous = config->GetViscous(), + implicit = (config->GetKind_TimeIntScheme() == EULER_IMPLICIT), + gravity = config->GetGravityForce(), + tkeNeeded = (config->GetKind_Turb_Model() == TURB_MODEL::SST); - su2double *Normal, *FlowDirMix, TangVelocity, NormalVelocity; - Normal = new su2double[nDim]; - - Velocity_i = new su2double[nDim]; - Velocity_b = new su2double[nDim]; - Velocity_e = new su2double[nDim]; - FlowDirMix = new su2double[nDim]; - Lambda_i = new su2double[nVar]; - u_i = new su2double[nVar]; - u_e = new su2double[nVar]; - u_b = new su2double[nVar]; - dw = new su2double[nVar]; - - Residual = new su2double[nVar]; - - S_boundary = new su2double[8]; - - P_Tensor = new su2double*[nVar]; - invP_Tensor = new su2double*[nVar]; - Jacobian_i = new su2double*[nVar]; - for (iVar = 0; iVar < nVar; iVar++) - { + su2double **P_Tensor = new su2double*[nVar], + **invP_Tensor = new su2double*[nVar]; + for (auto iVar = 0u; iVar < nVar; iVar++){ P_Tensor[iVar] = new su2double[nVar]; invP_Tensor[iVar] = new su2double[nVar]; - Jacobian_i[iVar] = new su2double[nVar]; } /*--- Loop over all the vertices on this boundary marker ---*/ SU2_OMP_FOR_DYN(OMP_MIN_SIZE) - for (iVertex = 0; iVertex < geometry->nVertex[val_marker]; iVertex++) { + for (auto iVertex = 0u; iVertex < geometry->nVertex[val_marker]; iVertex++) { - V_boundary= GetCharacPrimVar(val_marker, iVertex); - - iPoint = geometry->vertex[val_marker][iVertex]->GetNode(); + auto iPoint = geometry->vertex[val_marker][iVertex]->GetNode(); /*--- Check if the node belongs to the domain (i.e., not a halo node) ---*/ if (geometry->nodes->GetDomain(iPoint)) { /*--- Index of the closest interior node ---*/ - Point_Normal = geometry->vertex[val_marker][iVertex]->GetNormal_Neighbor(); + const auto Point_Normal = geometry->vertex[val_marker][iVertex]->GetNormal_Neighbor(); /*--- Normal vector for this vertex (negate for outward convention) ---*/ + su2double Normal[MAXNDIM] = {0}; geometry->vertex[val_marker][iVertex]->GetNormal(Normal); - for (iDim = 0; iDim < nDim; iDim++) Normal[iDim] = -Normal[iDim]; + for (auto iDim = 0u; iDim < nDim; iDim++) Normal[iDim] = -Normal[iDim]; conv_numerics->SetNormal(Normal); - Area = GeometryToolbox::Norm(nDim, Normal); + const auto Area = GeometryToolbox::Norm(nDim, Normal); - for (iDim = 0; iDim < nDim; iDim++) - UnitNormal[iDim] = Normal[iDim]/Area; + su2double UnitNormal[MAXNDIM] = {0}; + for (auto iDim = 0u; iDim < nDim; iDim++) UnitNormal[iDim] = Normal[iDim]/Area; /*--- Retrieve solution at this boundary node ---*/ - V_domain = nodes->GetPrimitive(iPoint); + const auto V_domain = nodes->GetPrimitive(iPoint); /*--- Compute the internal state u_i ---*/ - Velocity2_i = 0; - for (iDim=0; iDim < nDim; iDim++) - { + su2double Velocity_i[MAXNDIM]={0}; + for (auto iDim=0u; iDim < nDim; iDim++) Velocity_i[iDim] = nodes->GetVelocity(iPoint,iDim); - Velocity2_i += Velocity_i[iDim]*Velocity_i[iDim]; - } + + const auto Velocity2_i = GeometryToolbox::SquaredNorm(nDim, Velocity_i); + const auto Density_i = nodes->GetDensity(iPoint); - Density_i = nodes->GetDensity(iPoint); - - Energy_i = nodes->GetEnergy(iPoint); - StaticEnergy_i = Energy_i - 0.5*Velocity2_i; + const auto Energy_i = nodes->GetEnergy(iPoint); + const su2double StaticEnergy_i = Energy_i - 0.5*Velocity2_i; GetFluidModel()->SetTDState_rhoe(Density_i, StaticEnergy_i); - Pressure_i = GetFluidModel()->GetPressure(); - Enthalpy_i = Energy_i + Pressure_i/Density_i; - - SoundSpeed_i = GetFluidModel()->GetSoundSpeed(); + const auto Pressure_i = GetFluidModel()->GetPressure(); + const su2double Enthalpy_i = Energy_i + Pressure_i/Density_i; - Kappa_i = GetFluidModel()->GetdPde_rho() / Density_i; - Chi_i = GetFluidModel()->GetdPdrho_e() - Kappa_i * StaticEnergy_i; + const auto SoundSpeed_i = GetFluidModel()->GetSoundSpeed(); - ProjVelocity_i = 0.0; - for (iDim = 0; iDim < nDim; iDim++) - ProjVelocity_i += Velocity_i[iDim]*UnitNormal[iDim]; + const su2double Kappa_i = GetFluidModel()->GetdPde_rho() / Density_i; + const su2double Chi_i = GetFluidModel()->GetdPdrho_e() - Kappa_i * StaticEnergy_i; /*--- Build the external state u_e from boundary data and internal node ---*/ + su2double T_static{0}, P_static{0}, Pressure_e{0}, Density_static{0}, Enthalpy_e{0}, Energy_e{0}, Entropy_e{0}, + T_Total{0}, P_Total{0}, Density_e{0}, StaticEnthalpy_e{0}, StaticEnergy_e{0}; + su2double Velocity2_e{0}, NormalVelocity{0}, TangVelocity{0}, VelMag_e{0}; + su2double Velocity_e[MAXNDIM] = {0}; + const su2double * Flow_Dir, * Mach; switch(config->GetKind_Data_Riemann(Marker_Tag)) { case TOTAL_CONDITIONS_PT: @@ -4669,7 +5119,7 @@ void CEulerSolver::BC_Riemann(CGeometry *geometry, CSolver **solver_container, Velocity_e[0]= UnitNormal[0]*NormalVelocity - UnitNormal[1]*TangVelocity; Velocity_e[1]= UnitNormal[1]*NormalVelocity + UnitNormal[0]*TangVelocity; }else{ - for (iDim = 0; iDim < nDim; iDim++) + for (auto iDim = 0u; iDim < nDim; iDim++) Velocity_e[iDim] = sqrt(Velocity2_e)*Flow_Dir[iDim]; } StaticEnthalpy_e = Enthalpy_e - 0.5 * Velocity2_e; @@ -4696,11 +5146,10 @@ void CEulerSolver::BC_Riemann(CGeometry *geometry, CSolver **solver_container, GetFluidModel()->SetTDState_PT(P_static, T_static); /* --- Compute the boundary state u_e --- */ - Velocity2_e = 0.0; - for (iDim = 0; iDim < nDim; iDim++) { + for (auto iDim = 0u; iDim < nDim; iDim++) Velocity_e[iDim] = Mach[iDim]*GetFluidModel()->GetSoundSpeed(); - Velocity2_e += Velocity_e[iDim]*Velocity_e[iDim]; - } + + Velocity2_e = GeometryToolbox::SquaredNorm(nDim, Velocity_e); Density_e = GetFluidModel()->GetDensity(); StaticEnergy_e = GetFluidModel()->GetStaticEnergy(); Energy_e = StaticEnergy_e + 0.5 * Velocity2_e; @@ -4713,22 +5162,21 @@ void CEulerSolver::BC_Riemann(CGeometry *geometry, CSolver **solver_container, if (gravity) P_static = config->GetRiemann_Var1(Marker_Tag) - geometry->nodes->GetCoord(iPoint, nDim-1)*STANDARD_GRAVITY;/// check in which case is true (only freesurface?) else P_static = config->GetRiemann_Var1(Marker_Tag); - Rho_static = config->GetRiemann_Var2(Marker_Tag); + Density_static = config->GetRiemann_Var2(Marker_Tag); Mach = config->GetRiemann_FlowDir(Marker_Tag); /*--- Non-dim. the inputs if necessary. ---*/ P_static /= config->GetPressure_Ref(); - Rho_static /= config->GetDensity_Ref(); + Density_static /= config->GetDensity_Ref(); /* --- Computes the total state --- */ - GetFluidModel()->SetTDState_Prho(P_static, Rho_static); + GetFluidModel()->SetTDState_Prho(P_static, Density_static); /* --- Compute the boundary state u_e --- */ - Velocity2_e = 0.0; - for (iDim = 0; iDim < nDim; iDim++) { + for (auto iDim = 0u; iDim < nDim; iDim++) Velocity_e[iDim] = Mach[iDim]*GetFluidModel()->GetSoundSpeed(); - Velocity2_e += Velocity_e[iDim]*Velocity_e[iDim]; - } + + Velocity2_e = GeometryToolbox::SquaredNorm(nDim, Velocity_e); Density_e = GetFluidModel()->GetDensity(); StaticEnergy_e = GetFluidModel()->GetStaticEnergy(); Energy_e = StaticEnergy_e + 0.5 * Velocity2_e; @@ -4746,7 +5194,7 @@ void CEulerSolver::BC_Riemann(CGeometry *geometry, CSolver **solver_container, Density_e /= config->GetDensity_Ref(); VelMag_e /= config->GetVelocity_Ref(); - for (iDim = 0; iDim < nDim; iDim++) + for (auto iDim = 0u; iDim < nDim; iDim++) Velocity_e[iDim] = VelMag_e*Flow_Dir[iDim]; Energy_e = Energy_i; break; @@ -4760,11 +5208,10 @@ void CEulerSolver::BC_Riemann(CGeometry *geometry, CSolver **solver_container, /* --- Compute the boundary state u_e --- */ GetFluidModel()->SetTDState_Prho(Pressure_e, Density_e); - Velocity2_e = 0.0; - for (iDim = 0; iDim < nDim; iDim++) { + for (auto iDim = 0u; iDim < nDim; iDim++) Velocity_e[iDim] = Velocity_i[iDim]; - Velocity2_e += Velocity_e[iDim]*Velocity_e[iDim]; - } + + Velocity2_e = GeometryToolbox::SquaredNorm(nDim, Velocity_e); Energy_e = GetFluidModel()->GetStaticEnergy() + 0.5*Velocity2_e; break; @@ -4780,121 +5227,99 @@ void CEulerSolver::BC_Riemann(CGeometry *geometry, CSolver **solver_container, conv_numerics->GetPMatrix_inv(invP_Tensor, &Density_i, Velocity_i, &SoundSpeed_i, &Chi_i, &Kappa_i, UnitNormal); /*--- eigenvalues contribution due to grid motion ---*/ + su2double ProjVelocity_i = GeometryToolbox::DotProduct(nDim, Velocity_i, UnitNormal); if (dynamic_grid) { - gridVel = geometry->nodes->GetGridVel(iPoint); - - su2double ProjGridVel = 0.0; - for (iDim = 0; iDim < nDim; iDim++) - ProjGridVel += gridVel[iDim]*UnitNormal[iDim]; + const auto gridVel = geometry->nodes->GetGridVel(iPoint); + const su2double ProjGridVel = GeometryToolbox::DotProduct(nDim, gridVel, UnitNormal); ProjVelocity_i -= ProjGridVel; } - /*--- Flow eigenvalues ---*/ - for (iDim = 0; iDim < nDim; iDim++) + /*--- Flow eigenvalues, boundary state u_e and u_i ---*/ + su2double Lambda_i[MAXNVAR] = {0}, u_e[MAXNVAR] = {0}, u_i[MAXNVAR]={0}, u_b[MAXNVAR]={0}, + dw[MAXNVAR]={0}; + u_e[0] = Density_e; + u_i[0] = Density_i; + for (auto iDim = 0u; iDim < nDim; iDim++) { Lambda_i[iDim] = ProjVelocity_i; + u_e[iDim+1] = Velocity_e[iDim]*Density_e; + u_i[iDim+1] = Velocity_i[iDim]*Density_i; + } Lambda_i[nVar-2] = ProjVelocity_i + SoundSpeed_i; Lambda_i[nVar-1] = ProjVelocity_i - SoundSpeed_i; - - /*--- Compute the boundary state u_e ---*/ - u_e[0] = Density_e; - for (iDim = 0; iDim < nDim; iDim++) - u_e[iDim+1] = Velocity_e[iDim]*Density_e; u_e[nVar-1] = Energy_e*Density_e; - - /*--- Compute the boundary state u_i ---*/ - u_i[0] = Density_i; - for (iDim = 0; iDim < nDim; iDim++) - u_i[iDim+1] = Velocity_i[iDim]*Density_i; u_i[nVar-1] = Energy_i*Density_i; /*--- Compute the characteristic jumps ---*/ - for (iVar = 0; iVar < nVar; iVar++) - { + for (auto iVar = 0u; iVar < nVar; iVar++){ dw[iVar] = 0; - for (jVar = 0; jVar < nVar; jVar++) + for (auto jVar = 0u; jVar < nVar; jVar++) dw[iVar] += invP_Tensor[iVar][jVar] * (u_e[jVar] - u_i[jVar]); - } /*--- Compute the boundary state u_b using characteristics ---*/ - for (iVar = 0; iVar < nVar; iVar++) - { + for (auto iVar = 0u; iVar < nVar; iVar++) { u_b[iVar] = u_i[iVar]; - - for (jVar = 0; jVar < nVar; jVar++) - { + for (auto jVar = 0u; jVar < nVar; jVar++) { if (Lambda_i[jVar] < 0) - { u_b[iVar] += P_Tensor[iVar][jVar]*dw[jVar]; - - } } } - /*--- Compute the thermodynamic state in u_b ---*/ - Density_b = u_b[0]; - Velocity2_b = 0; - for (iDim = 0; iDim < nDim; iDim++) - { + su2double Velocity_b[MAXNDIM] = {0}; + const auto Density_b = u_b[0]; + for (auto iDim = 0u; iDim < nDim; iDim++) Velocity_b[iDim] = u_b[iDim+1]/Density_b; - Velocity2_b += Velocity_b[iDim]*Velocity_b[iDim]; - } - Energy_b = u_b[nVar-1]/Density_b; - StaticEnergy_b = Energy_b - 0.5*Velocity2_b; + const auto Velocity2_b = GeometryToolbox::SquaredNorm(nDim, Velocity_b); + + const su2double Energy_b = u_b[nVar-1]/Density_b; + const su2double StaticEnergy_b = Energy_b - 0.5*Velocity2_b; GetFluidModel()->SetTDState_rhoe(Density_b, StaticEnergy_b); /*--- Store number of Newton iterations at BC ---*/ if(config->GetKind_FluidModel() == DATADRIVEN_FLUID) nodes->SetNewtonSolverIterations(iPoint, GetFluidModel()->GetnIter_Newton()); - Pressure_b = GetFluidModel()->GetPressure(); - Temperature_b = GetFluidModel()->GetTemperature(); - Enthalpy_b = Energy_b + Pressure_b/Density_b; - Kappa_b = GetFluidModel()->GetdPde_rho() / Density_b; - Chi_b = GetFluidModel()->GetdPdrho_e() - Kappa_b * StaticEnergy_b; + const auto Pressure_b = GetFluidModel()->GetPressure(); + const auto Temperature_b = GetFluidModel()->GetTemperature(); + const su2double Enthalpy_b = Energy_b + Pressure_b/Density_b; + const su2double Kappa_b = GetFluidModel()->GetdPde_rho() / Density_b; + const su2double Chi_b = GetFluidModel()->GetdPdrho_e() - Kappa_b * StaticEnergy_b; /*--- Compute the residuals ---*/ + su2double Residual[MAXNVAR] = {0}; conv_numerics->GetInviscidProjFlux(&Density_b, Velocity_b, &Pressure_b, &Enthalpy_b, Normal, Residual); /*--- Residual contribution due to grid motion ---*/ if (dynamic_grid) { - gridVel = geometry->nodes->GetGridVel(iPoint); - su2double projVelocity = 0.0; - - for (iDim = 0; iDim < nDim; iDim++) - projVelocity += gridVel[iDim]*Normal[iDim]; - for (iVar = 0; iVar < nVar; iVar++) - Residual[iVar] -= projVelocity *(u_b[iVar]); + const auto gridVel = geometry->nodes->GetGridVel(iPoint); + const auto projVelocity = GeometryToolbox::DotProduct(nDim, gridVel, Normal); + for (auto iVar = 0u; iVar < nVar; iVar++) + Residual[iVar] -= projVelocity *u_b[iVar]; } - if (implicit) { + /*--- Update residual value ---*/ + LinSysRes.AddBlock(iPoint, Residual); - Jacobian_b = new su2double*[nVar]; - DubDu = new su2double*[nVar]; - for (iVar = 0; iVar < nVar; iVar++) - { + if (implicit) { + su2double **Jacobian_b = new su2double*[nVar], + **Jacobian_i = new su2double*[nVar]; + su2double **DubDu = new su2double*[nVar]; + for (auto iVar = 0u; iVar < nVar; iVar++){ Jacobian_b[iVar] = new su2double[nVar]; + Jacobian_i[iVar] = new su2double[nVar]; + /*--- Initialize DubDu to unit matrix---*/ DubDu[iVar] = new su2double[nVar]; - } + for (auto jVar=0u; jVar < nVar; jVar++) + DubDu[iVar][jVar] = 0; - /*--- Initialize DubDu to unit matrix---*/ - - for (iVar = 0; iVar < nVar; iVar++) - { - for (jVar = 0; jVar < nVar; jVar++) - DubDu[iVar][jVar]= 0; - - DubDu[iVar][iVar]= 1; + DubDu[iVar][iVar]=1; } /*--- Compute DubDu -= RNL---*/ - for (iVar=0; iVarGetInviscidProjJac(Velocity_b, &Enthalpy_b, &Chi_b, &Kappa_b, Normal, 1.0, Jacobian_b); /*--- Jacobian contribution due to grid motion ---*/ - if (dynamic_grid) - { - gridVel = geometry->nodes->GetGridVel(iPoint); - su2double projVelocity = 0.0; - for (iDim = 0; iDim < nDim; iDim++) - projVelocity += gridVel[iDim]*Normal[iDim]; - for (iVar = 0; iVar < nVar; iVar++) { + if (dynamic_grid){ + const auto gridVel = geometry->nodes->GetGridVel(iPoint); + const auto projVelocity = GeometryToolbox::DotProduct(nDim, gridVel, Normal); + for (auto iVar = 0u; iVar < nVar; iVar++) Jacobian_b[iVar][iVar] -= projVelocity; - } - } /*--- initiate Jacobian_i to zero matrix ---*/ - for (iVar=0; iVarGetLaminarViscosity(); - V_boundary[nDim+6] = nodes->GetEddyViscosity(iPoint); - V_boundary[nDim+7] = GetFluidModel()->GetThermalConductivity(); - V_boundary[nDim+8] = GetFluidModel()->GetCp(); + V_boundary[prim_idx.LaminarViscosity()] = GetFluidModel()->GetLaminarViscosity(); + V_boundary[prim_idx.EddyViscosity()] = nodes->GetEddyViscosity(iPoint); + V_boundary[prim_idx.ThermalConductivity()] = GetFluidModel()->GetThermalConductivity(); + V_boundary[prim_idx.CpTotal()] = GetFluidModel()->GetCp(); /*--- Set the normal vector and the coordinates ---*/ @@ -4980,11 +5394,11 @@ void CEulerSolver::BC_Riemann(CGeometry *geometry, CSolver **solver_container, visc_numerics->SetPrimVarGradient(nodes->GetGradient_Primitive(iPoint), nodes->GetGradient_Primitive(iPoint)); /*--- Secondary variables ---*/ - - S_domain = nodes->GetSecondary(iPoint); + + auto S_domain = nodes->GetSecondary(iPoint); /*--- Compute secondary thermodynamic properties (partial derivatives...) ---*/ - + su2double S_boundary[8]; S_boundary[0]= GetFluidModel()->GetdPdrho_e(); S_boundary[1]= GetFluidModel()->GetdPde_rho(); @@ -5008,12 +5422,10 @@ void CEulerSolver::BC_Riemann(CGeometry *geometry, CSolver **solver_container, solver_container[TURB_SOL]->GetNodes()->GetSolution(iPoint,0)); /*--- Compute and update residual ---*/ - auto residual = visc_numerics->ComputeResidual(config); LinSysRes.SubtractBlock(iPoint, residual); /*--- Jacobian contribution for implicit integration ---*/ - if (implicit) Jacobian.SubtractBlock2Diag(iPoint, residual.jacobian_i); @@ -5026,32 +5438,12 @@ void CEulerSolver::BC_Riemann(CGeometry *geometry, CSolver **solver_container, } END_SU2_OMP_FOR - /*--- Free locally allocated memory ---*/ - delete [] Normal; - delete [] Velocity_e; - delete [] Velocity_b; - delete [] Velocity_i; - delete [] FlowDirMix; - - delete [] S_boundary; - delete [] Lambda_i; - delete [] u_i; - delete [] u_e; - delete [] u_b; - delete [] dw; - - delete [] Residual; - - for (iVar = 0; iVar < nVar; iVar++) - { + for(auto iVar=0u; iVarGetVelocity(iPoint,iDim); } - + ComputeTurboVelocity(Velocity_i, turboNormal, turboVelocity, marker_flag, config->GetKind_TurboMachinery(iZone)); if(nDim ==2){ @@ -7643,7 +8035,7 @@ void CEulerSolver::BC_ActDisk_Inlet(CGeometry *geometry, CSolver **solver_contai unsigned short Kind_ActDisk = config->GetKind_ActDisk(); - if(Kind_ActDisk == VARIABLE_LOAD){ + if (Kind_ActDisk == VARIABLE_LOAD || Kind_ActDisk == BLADE_ELEMENT) { BC_ActDisk_VariableLoad(geometry, solver_container, conv_numerics, visc_numerics, config, val_marker, true); } else{ @@ -7657,7 +8049,7 @@ void CEulerSolver::BC_ActDisk_Outlet(CGeometry *geometry, CSolver **solver_conta unsigned short Kind_ActDisk = config->GetKind_ActDisk(); - if(Kind_ActDisk == VARIABLE_LOAD){ + if (Kind_ActDisk == VARIABLE_LOAD || Kind_ActDisk == BLADE_ELEMENT) { BC_ActDisk_VariableLoad(geometry, solver_container, conv_numerics, visc_numerics, config, val_marker, false); } else{ @@ -8115,6 +8507,8 @@ void CEulerSolver::BC_ActDisk_VariableLoad(CGeometry *geometry, CSolver **solver const auto Gas_Constant = config->GetGas_ConstantND(); const bool tkeNeeded = (config->GetKind_Turb_Model() == TURB_MODEL::SST); + unsigned short Kind_ActDisk = config->GetKind_ActDisk(); + /*--- Get the actuator disk center and axis coordinates for the current marker. ---*/ for (iDim = 0; iDim < nDim; iDim++){ Prop_Axis[iDim] = ActDisk_Axis(val_marker, iDim); @@ -8149,10 +8543,17 @@ void CEulerSolver::BC_ActDisk_VariableLoad(CGeometry *geometry, CSolver **solver /*--- Get the values of Fa (axial force per unit area), Fx, Fy and Fz (x, y and z components of the tangential and radial forces per unit area resultant). ---*/ - Fa = ActDisk_Fa[val_marker][iVertex]; - Fx = ActDisk_Fx[val_marker][iVertex]; - Fy = ActDisk_Fy[val_marker][iVertex]; - Fz = ActDisk_Fz[val_marker][iVertex]; + if (Kind_ActDisk == BLADE_ELEMENT) { + Fa = ActDisk_Fa_BEM[val_marker][iVertex]; + Fx = ActDisk_Fx_BEM[val_marker][iVertex]; + Fy = ActDisk_Fy_BEM[val_marker][iVertex]; + Fz = ActDisk_Fz_BEM[val_marker][iVertex]; + } else { /*--- default (Kind_ActDisk == VARIABLE_LOAD) ---*/ + Fa = ActDisk_Fa[val_marker][iVertex]; + Fx = ActDisk_Fx[val_marker][iVertex]; + Fy = ActDisk_Fy[val_marker][iVertex]; + Fz = ActDisk_Fz[val_marker][iVertex]; + } /*--- Get the primitive variables and the extrapolated variables. ---*/ if (val_inlet_surface){ @@ -8348,14 +8749,10 @@ void CEulerSolver::PrintVerificationError(const CConfig *config) const { } void CEulerSolver::SetFreeStream_Solution(const CConfig *config) { - - unsigned long iPoint; - unsigned short iDim; - SU2_OMP_FOR_STAT(omp_chunk_size) - for (iPoint = 0; iPoint < nPoint; iPoint++) { + for (auto iPoint = 0u; iPoint < nPoint; iPoint++) { nodes->SetSolution(iPoint,0, Density_Inf); - for (iDim = 0; iDim < nDim; iDim++) { + for (auto iDim = 0u; iDim < nDim; iDim++) { nodes->SetSolution(iPoint,iDim+1, Density_Inf*Velocity_Inf[iDim]); } nodes->SetSolution(iPoint,nVar-1, Density_Inf*Energy_Inf); @@ -8365,37 +8762,26 @@ void CEulerSolver::SetFreeStream_Solution(const CConfig *config) { void CEulerSolver::SetFreeStream_TurboSolution(CConfig *config) { - unsigned long iPoint; - unsigned short iDim; - unsigned short iZone = config->GetiZone(); - su2double *turboVelocity, *cartVelocity; - - su2double Alpha = config->GetAoA()*PI_NUMBER/180.0; - su2double Mach = config->GetMach(); - su2double SoundSpeed; + const su2double Alpha = config->GetAoA()*PI_NUMBER/180.0; + const auto Mach = config->GetMach(); - turboVelocity = new su2double[nDim]; - cartVelocity = new su2double[nDim]; + su2double turboVelocity[MAXNDIM] = {0}, cartVelocity[MAXNDIM] = {0}; auto turboNormal = config->GetFreeStreamTurboNormal(); GetFluidModel()->SetTDState_Prho(Pressure_Inf, Density_Inf); - SoundSpeed = GetFluidModel()->GetSoundSpeed(); + const auto SoundSpeed = GetFluidModel()->GetSoundSpeed(); /*--- Compute the Free Stream velocity, using the Mach number ---*/ turboVelocity[0] = cos(Alpha)*Mach*SoundSpeed; turboVelocity[1] = sin(Alpha)*Mach*SoundSpeed; - - if (nDim == 3) { - turboVelocity[2] = 0.0; - } - + const auto iZone = config->GetiZone(); ComputeBackVelocity(turboVelocity, turboNormal, cartVelocity, INFLOW, config->GetKind_TurboMachinery(iZone)); - for (iPoint = 0; iPoint < nPoint; iPoint++) { + for (auto iPoint = 0u; iPoint < nPoint; iPoint++) { nodes->SetSolution(iPoint,0, Density_Inf); - for (iDim = 0; iDim < nDim; iDim++) { + for (auto iDim = 0u; iDim < nDim; iDim++) { nodes->SetSolution(iPoint,iDim+1, Density_Inf*cartVelocity[iDim]); } nodes->SetSolution(iPoint,nVar-1, Density_Inf*Energy_Inf); @@ -8403,68 +8789,44 @@ void CEulerSolver::SetFreeStream_TurboSolution(CConfig *config) { nodes->SetPrimVar(iPoint, GetFluidModel()); nodes->SetSecondaryVar(iPoint, GetFluidModel()); } - - delete [] turboVelocity; - delete [] cartVelocity; - - } void CEulerSolver::PreprocessAverage(CSolver **solver, CGeometry *geometry, CConfig *config, unsigned short marker_flag) { - unsigned long iVertex, iPoint; - unsigned short iDim, iMarker, iMarkerTP, iSpan; - su2double Pressure = 0.0, Density = 0.0, *Velocity = nullptr, *TurboVelocity, - Area, TotalArea, TotalAreaPressure, TotalAreaDensity, *TotalAreaVelocity, *UnitNormal, *TurboNormal; - string Marker_Tag, Monitoring_Tag; - unsigned short iZone = config->GetiZone(); - const su2double *AverageTurboNormal; - su2double VelSq; - - /*-- Variables declaration and allocation ---*/ - Velocity = new su2double[nDim]; - UnitNormal = new su2double[nDim]; - TurboNormal = new su2double[nDim]; - TurboVelocity = new su2double[nDim]; - TotalAreaVelocity = new su2double[nDim]; - const auto nSpanWiseSections = config->GetnSpanWiseSections(); - - for (iSpan= 0; iSpan < nSpanWiseSections; iSpan++){ - - for (iDim=0; iDimGetnMarker_All(); iMarker++){ - for (iMarkerTP=1; iMarkerTP < config->GetnMarker_Turbomachinery()+1; iMarkerTP++){ + const auto iZone = config->GetiZone(); + + for (auto iSpan= 0u; iSpan < nSpanWiseSections; iSpan++){ + su2double TotalAreaVelocity[MAXNDIM]={0.0}, + TotalAreaPressure{0}, + TotalAreaDensity{0}; + for (auto iMarker = 0u; iMarker < config->GetnMarker_All(); iMarker++){ + for (auto iMarkerTP=1; iMarkerTP < config->GetnMarker_Turbomachinery()+1; iMarkerTP++){ if (config->GetMarker_All_Turbomachinery(iMarker) == iMarkerTP){ if (config->GetMarker_All_TurbomachineryFlag(iMarker) == marker_flag){ /*--- Retrieve Old Solution ---*/ /*--- Loop over the vertices to sum all the quantities pithc-wise ---*/ - for (iVertex = 0; iVertex < geometry->GetnVertexSpan(iMarker,iSpan); iVertex++) { - iPoint = geometry->turbovertex[iMarker][iSpan][iVertex]->GetNode(); + for (auto iVertex = 0u; iVertex < geometry->GetnVertexSpan(iMarker,iSpan); iVertex++) { + auto iPoint = geometry->turbovertex[iMarker][iSpan][iVertex]->GetNode(); if (geometry->nodes->GetDomain(iPoint)){ /*--- Compute the integral fluxes for the boundaries ---*/ - Pressure = nodes->GetPressure(iPoint); - Density = nodes->GetDensity(iPoint); + auto Pressure = nodes->GetPressure(iPoint); + auto Density = nodes->GetDensity(iPoint); + su2double UnitNormal[MAXNDIM]={0}, + TurboNormal[MAXNDIM]={0}, + TurboVelocity[MAXNDIM], + Area; /*--- Normal vector for this vertex (negate for outward convention) ---*/ geometry->turbovertex[iMarker][iSpan][iVertex]->GetNormal(UnitNormal); geometry->turbovertex[iMarker][iSpan][iVertex]->GetTurboNormal(TurboNormal); Area = geometry->turbovertex[iMarker][iSpan][iVertex]->GetArea(); - VelSq = 0.0; - for (iDim = 0; iDim < nDim; iDim++) { - Velocity[iDim] = nodes->GetVelocity(iPoint,iDim); - VelSq += Velocity[iDim]*Velocity[iDim]; - } + su2double Velocity[MAXNDIM]={0}; + for (auto iDim=0u; iDimGetVelocity(iPoint, iDim); ComputeTurboVelocity(Velocity, TurboNormal , TurboVelocity, marker_flag, config->GetKind_TurboMachinery(iZone)); @@ -8472,14 +8834,14 @@ void CEulerSolver::PreprocessAverage(CSolver **solver, CGeometry *geometry, CCon TotalAreaPressure += Area*Pressure; TotalAreaDensity += Area*Density; - for (iDim = 0; iDim < nDim; iDim++) + for (auto iDim = 0u; iDim < nDim; iDim++) TotalAreaVelocity[iDim] += Area*Velocity[iDim]; } } } } - } - } + } // iMarkerTP + } // iMarker #ifdef HAVE_MPI @@ -8493,7 +8855,7 @@ void CEulerSolver::PreprocessAverage(CSolver **solver, CGeometry *geometry, CCon auto* MyTotalAreaVelocity = new su2double[nDim]; - for (iDim = 0; iDim < nDim; iDim++) { + for (auto iDim = 0u; iDim < nDim; iDim++) { MyTotalAreaVelocity[iDim] = TotalAreaVelocity[iDim]; } @@ -8506,19 +8868,19 @@ void CEulerSolver::PreprocessAverage(CSolver **solver, CGeometry *geometry, CCon /*--- initialize spanwise average quantities ---*/ - for (iMarker = 0; iMarker < config->GetnMarker_All(); iMarker++){ - for (iMarkerTP=1; iMarkerTP < config->GetnMarker_Turbomachinery()+1; iMarkerTP++){ + for (auto iMarker = 0u; iMarker < config->GetnMarker_All(); iMarker++){ + for (auto iMarkerTP=1; iMarkerTP < config->GetnMarker_Turbomachinery()+1; iMarkerTP++){ if (config->GetMarker_All_Turbomachinery(iMarker) == iMarkerTP){ if (config->GetMarker_All_TurbomachineryFlag(iMarker) == marker_flag){ - TotalArea = geometry->GetSpanArea(iMarker,iSpan); - AverageTurboNormal = geometry->GetAverageTurboNormal(iMarker,iSpan); + auto TotalArea = geometry->GetSpanArea(iMarker,iSpan); + auto AverageTurboNormal = geometry->GetAverageTurboNormal(iMarker,iSpan); /*--- Compute the averaged value for the boundary of interest for the span of interest ---*/ AverageDensity[iMarker][iSpan] = TotalAreaDensity / TotalArea; AveragePressure[iMarker][iSpan] = TotalAreaPressure / TotalArea; - for (iDim = 0; iDim < nDim; iDim++) + for (auto iDim = 0u; iDim < nDim; iDim++) AverageVelocity[iMarker][iSpan][iDim] = TotalAreaVelocity[iDim] / TotalArea; /* --- compute static averaged quantities ---*/ @@ -8526,29 +8888,29 @@ void CEulerSolver::PreprocessAverage(CSolver **solver, CGeometry *geometry, CCon OldAverageDensity[iMarker][iSpan] = AverageDensity[iMarker][iSpan]; OldAveragePressure[iMarker][iSpan] = AveragePressure[iMarker][iSpan]; - for(iDim = 0; iDim < nDim;iDim++) + for(auto iDim = 0u; iDim < nDim;iDim++) OldAverageTurboVelocity[iMarker][iSpan][iDim] = AverageTurboVelocity[iMarker][iSpan][iDim]; } } - } - } - } + } // iMarkerTP + } // iMarker + } // iSpan /*--- initialize 1D average quantities ---*/ - for (iMarker = 0; iMarker < config->GetnMarker_All(); iMarker++){ - for (iMarkerTP=1; iMarkerTP < config->GetnMarker_Turbomachinery()+1; iMarkerTP++){ + for (auto iMarker = 0u; iMarker < config->GetnMarker_All(); iMarker++){ + for (auto iMarkerTP=1; iMarkerTP < config->GetnMarker_Turbomachinery()+1; iMarkerTP++){ if (config->GetMarker_All_Turbomachinery(iMarker) == iMarkerTP){ if (config->GetMarker_All_TurbomachineryFlag(iMarker) == marker_flag){ - AverageTurboNormal = geometry->GetAverageTurboNormal(iMarker,nSpanWiseSections); + auto AverageTurboNormal = geometry->GetAverageTurboNormal(iMarker,nSpanWiseSections); /*--- Compute the averaged value for the boundary of interest for the span of interest ---*/ AverageDensity[iMarker][nSpanWiseSections] = AverageDensity[iMarker][nSpanWiseSections/2]; AveragePressure[iMarker][nSpanWiseSections] = AveragePressure[iMarker][nSpanWiseSections/2]; - for (iDim = 0; iDim < nDim; iDim++) + for (auto iDim = 0u; iDim < nDim; iDim++) AverageVelocity[iMarker][nSpanWiseSections][iDim] = AverageVelocity[iMarker][nSpanWiseSections/2][iDim]; /* --- compute static averaged quantities ---*/ @@ -8556,260 +8918,130 @@ void CEulerSolver::PreprocessAverage(CSolver **solver, CGeometry *geometry, CCon OldAverageDensity[iMarker][nSpanWiseSections] = AverageDensity[iMarker][nSpanWiseSections]; OldAveragePressure[iMarker][nSpanWiseSections] = AveragePressure[iMarker][nSpanWiseSections]; - for(iDim = 0; iDim < nDim;iDim++) + for(auto iDim = 0u; iDim < nDim;iDim++) OldAverageTurboVelocity[iMarker][nSpanWiseSections][iDim] = AverageTurboVelocity[iMarker][nSpanWiseSections][iDim]; } } - } - } - - - /*--- Free locally allocated memory ---*/ - delete [] Velocity; - delete [] UnitNormal; - delete [] TurboNormal; - delete [] TurboVelocity; - delete [] TotalAreaVelocity; - + } // iMarkerTP + } // iMarker } void CEulerSolver::TurboAverageProcess(CSolver **solver, CGeometry *geometry, CConfig *config, unsigned short marker_flag) { - unsigned long iVertex, iPoint, nVert; - unsigned short iDim, iVar, iMarker, iMarkerTP, iSpan, jSpan; - unsigned short average_process = config->GetKind_AverageProcess(); - unsigned short performance_average_process = config->GetKind_PerformanceAverageProcess(); - su2double Pressure = 0.0, Density = 0.0, Enthalpy = 0.0, *Velocity = nullptr, *TurboVelocity, - Area, TotalArea, Radius1, Radius2, Vt2, TotalAreaPressure, TotalAreaDensity, *TotalAreaVelocity, *UnitNormal, *TurboNormal, - TotalMassPressure, TotalMassDensity, *TotalMassVelocity; - string Marker_Tag, Monitoring_Tag; - su2double val_init_pressure; - unsigned short iZone = config->GetiZone(); - su2double TotalDensity, TotalPressure, *TotalVelocity, *TotalFluxes; - const su2double *AverageTurboNormal; - su2double TotalNu, TotalOmega, TotalKine, TotalMassNu, TotalMassOmega, TotalMassKine, TotalAreaNu, TotalAreaOmega, TotalAreaKine; - su2double Nu, Kine, Omega; - su2double MachTest, soundSpeed; - bool turbulent = (config->GetKind_Turb_Model() != TURB_MODEL::NONE); - bool spalart_allmaras = (config->GetKind_Turb_Model() == TURB_MODEL::SA); - bool menter_sst = (config->GetKind_Turb_Model() == TURB_MODEL::SST); - - /*-- Variables declaration and allocation ---*/ - Velocity = new su2double[nDim]; - UnitNormal = new su2double[nDim]; - TurboNormal = new su2double[nDim]; - TurboVelocity = new su2double[nDim]; - TotalVelocity = new su2double[nDim]; - TotalAreaVelocity = new su2double[nDim]; - TotalMassVelocity = new su2double[nDim]; - TotalFluxes = new su2double[nVar]; - - su2double avgDensity, *avgVelocity, avgPressure, avgKine, avgOmega, avgNu, avgAreaDensity, *avgAreaVelocity, avgAreaPressure, - avgAreaKine, avgAreaOmega, avgAreaNu, avgMassDensity, *avgMassVelocity, avgMassPressure, avgMassKine, avgMassOmega, avgMassNu, - avgMixDensity, *avgMixVelocity, *avgMixTurboVelocity, avgMixPressure, avgMixKine, avgMixOmega, avgMixNu; - - avgVelocity = new su2double[nDim]; - avgAreaVelocity = new su2double[nDim]; - avgMassVelocity = new su2double[nDim]; - avgMixVelocity = new su2double[nDim]; - avgMixTurboVelocity = new su2double[nDim]; - + const auto average_process = config->GetKind_AverageProcess(); + const auto performance_average_process = config->GetKind_PerformanceAverageProcess(); + const auto iZone = config->GetiZone(); + const bool turbulent = (config->GetKind_Turb_Model() != TURB_MODEL::NONE); + const bool spalart_allmaras = (config->GetKind_Turb_Model() == TURB_MODEL::SA); + const bool menter_sst = (config->GetKind_Turb_Model() == TURB_MODEL::SST); const auto nSpanWiseSections = config->GetnSpanWiseSections(); - for (iSpan= 0; iSpan < nSpanWiseSections + 1; iSpan++){ + for (auto iSpan= 0; iSpan < nSpanWiseSections + 1; iSpan++){ + su2double TotalDensity{0}, TotalPressure{0}, TotalNu{0}, TotalOmega{0}, TotalKine{0}, TotalVelocity[MAXNDIM], + TotalAreaDensity{0}, TotalAreaPressure{0}, TotalAreaNu{0}, TotalAreaOmega{0}, TotalAreaKine{0}, TotalAreaVelocity[MAXNDIM], + TotalMassDensity{0}, TotalMassPressure{0}, TotalMassNu{0}, TotalMassOmega{0}, TotalMassKine{0}, TotalMassVelocity[MAXNDIM]; + su2double TotalFluxes[MAXNVAR]; /*--- Forces initialization for contenitors ---*/ - for (iVar=0;iVarGetnMarker_All(); iMarker++){ - for (iMarkerTP=1; iMarkerTP < config->GetnMarker_Turbomachinery()+1; iMarkerTP++){ - if (config->GetMarker_All_Turbomachinery(iMarker) == iMarkerTP){ - if (config->GetMarker_All_TurbomachineryFlag(iMarker) == marker_flag){ + const auto iPoint = geometry->turbovertex[iMarker][iSpan][iVertex]->GetNode(); - /*--- Retrieve Old Solution ---*/ + /*--- Retrieve local quantities ---*/ + const auto Pressure = nodes->GetPressure(iPoint); + const auto Density = nodes->GetDensity(iPoint); + const auto Enthalpy = nodes->GetEnthalpy(iPoint); - /*--- Loop over the vertices to sum all the quantities pithc-wise ---*/ - if(iSpan < nSpanWiseSections){ - for (iVertex = 0; iVertex < geometry->GetnVertexSpan(iMarker,iSpan); iVertex++) { - iPoint = geometry->turbovertex[iMarker][iSpan][iVertex]->GetNode(); + su2double Velocity[MAXNDIM] = {0}, UnitNormal[MAXNDIM] = {0}, TurboNormal[MAXNDIM] = {0}, TurboVelocity[MAXNDIM] = {0}; + geometry->turbovertex[iMarker][iSpan][iVertex]->GetNormal(UnitNormal); + geometry->turbovertex[iMarker][iSpan][iVertex]->GetTurboNormal(TurboNormal); + const auto Area = geometry->turbovertex[iMarker][iSpan][iVertex]->GetArea(); - /*--- Compute the integral fluxes for the boundaries ---*/ - Pressure = nodes->GetPressure(iPoint); - Density = nodes->GetDensity(iPoint); - Enthalpy = nodes->GetEnthalpy(iPoint); + for (auto iDim=0u; iDim < nDim; iDim++) Velocity[iDim] = nodes->GetVelocity(iPoint, iDim); - /*--- Normal vector for this vertex (negate for outward convention) ---*/ - geometry->turbovertex[iMarker][iSpan][iVertex]->GetNormal(UnitNormal); - geometry->turbovertex[iMarker][iSpan][iVertex]->GetTurboNormal(TurboNormal); - Area = geometry->turbovertex[iMarker][iSpan][iVertex]->GetArea(); - su2double VelNormal = 0.0, VelSq = 0.0; + ComputeTurboVelocity(Velocity, TurboNormal , TurboVelocity, marker_flag, config->GetKind_TurboMachinery(iZone)); - for (iDim = 0; iDim < nDim; iDim++) { - Velocity[iDim] = nodes->GetVelocity(iPoint,iDim); - VelNormal += UnitNormal[iDim]*Velocity[iDim]; - VelSq += Velocity[iDim]*Velocity[iDim]; - } + /*--- Compute different integral quantities for the boundary of interest ---*/ + TotalDensity += Density; + TotalPressure += Pressure; - ComputeTurboVelocity(Velocity, TurboNormal , TurboVelocity, marker_flag, config->GetKind_TurboMachinery(iZone)); + TotalAreaPressure += Area*Pressure; + TotalAreaDensity += Area*Density; - /*--- Compute different integral quantities for the boundary of interest ---*/ + TotalMassPressure += Area*(Density*TurboVelocity[0] )*Pressure; + TotalMassDensity += Area*(Density*TurboVelocity[0] )*Density; - TotalDensity += Density; - TotalPressure += Pressure; - for (iDim = 0; iDim < nDim; iDim++) - TotalVelocity[iDim] += Velocity[iDim]; - - TotalAreaPressure += Area*Pressure; - TotalAreaDensity += Area*Density; - for (iDim = 0; iDim < nDim; iDim++) - TotalAreaVelocity[iDim] += Area*Velocity[iDim]; - - TotalMassPressure += Area*(Density*TurboVelocity[0] )*Pressure; - TotalMassDensity += Area*(Density*TurboVelocity[0] )*Density; - for (iDim = 0; iDim < nDim; iDim++) - TotalMassVelocity[iDim] += Area*(Density*TurboVelocity[0] )*Velocity[iDim]; - - TotalFluxes[0] += Area*(Density*TurboVelocity[0]); - TotalFluxes[1] += Area*(Density*TurboVelocity[0]*TurboVelocity[0] + Pressure); - for (iDim = 2; iDim < nDim+1; iDim++) - TotalFluxes[iDim] += Area*(Density*TurboVelocity[0]*TurboVelocity[iDim -1]); - TotalFluxes[nDim+1] += Area*(Density*TurboVelocity[0]*Enthalpy); - - - /*--- Compute turbulent integral quantities for the boundary of interest ---*/ - - if(turbulent){ - if(menter_sst){ - Kine = solver[TURB_SOL]->GetNodes()->GetSolution(iPoint,0); - Omega = solver[TURB_SOL]->GetNodes()->GetSolution(iPoint,1); - } - if(spalart_allmaras){ - Nu = solver[TURB_SOL]->GetNodes()->GetSolution(iPoint,0); - } + for (auto iDim = 0u; iDim < nDim; iDim++) { + TotalVelocity[iDim] += Velocity[iDim]; + TotalAreaVelocity[iDim] += Area*Velocity[iDim]; + TotalMassVelocity[iDim] += Area*(Density*TurboVelocity[0] )*Velocity[iDim]; + } + + TotalFluxes[0] += Area*(Density*TurboVelocity[0]); + TotalFluxes[1] += Area*(Density*TurboVelocity[0]*TurboVelocity[0] + Pressure); + for (auto iDim = 2; iDim < nDim+1; iDim++) + TotalFluxes[iDim] += Area*(Density*TurboVelocity[0]*TurboVelocity[iDim -1]); + TotalFluxes[nDim+1] += Area*(Density*TurboVelocity[0]*Enthalpy); + + /*--- Compute turbulent integral quantities for the boundary of interest ---*/ + + if(turbulent){ + su2double Kine{0}, Omega{0}, Nu{0}; + if(menter_sst){ + Kine = solver[TURB_SOL]->GetNodes()->GetSolution(iPoint,0); + Omega = solver[TURB_SOL]->GetNodes()->GetSolution(iPoint,1); + } + if(spalart_allmaras){ + Nu = solver[TURB_SOL]->GetNodes()->GetSolution(iPoint,0); + } - TotalKine += Kine; - TotalOmega += Omega; - TotalNu += Nu; + TotalKine += Kine; + TotalOmega += Omega; + TotalNu += Nu; - TotalAreaKine += Area*Kine; - TotalAreaOmega += Area*Omega; - TotalAreaNu += Area*Nu; + TotalAreaKine += Area*Kine; + TotalAreaOmega += Area*Omega; + TotalAreaNu += Area*Nu; - TotalMassKine += Area*(Density*TurboVelocity[0] )*Kine; - TotalMassOmega += Area*(Density*TurboVelocity[0] )*Omega; - TotalMassNu += Area*(Density*TurboVelocity[0] )*Nu; + TotalMassKine += Area*(Density*TurboVelocity[0] )*Kine; + TotalMassOmega += Area*(Density*TurboVelocity[0] )*Omega; + TotalMassNu += Area*(Density*TurboVelocity[0] )*Nu; + } + }; + for (auto iMarker = 0u; iMarker < config->GetnMarker_All(); iMarker++){ + for (auto iMarkerTP=1; iMarkerTP < config->GetnMarker_Turbomachinery()+1; iMarkerTP++){ + if (config->GetMarker_All_Turbomachinery(iMarker) == iMarkerTP){ + if (config->GetMarker_All_TurbomachineryFlag(iMarker) == marker_flag){ - } + /*--- Loop over the vertices to sum all the quantities pitch-wise ---*/ + if(iSpan < nSpanWiseSections){ + for (auto iVertex = 0ul; iVertex < geometry->GetnVertexSpan(iMarker,iSpan); iVertex++) { + UpdateTotalQuantities(iMarker, iSpan, iVertex); } - } - else{ - for (jSpan= 0; jSpan < nSpanWiseSections; jSpan++){ - for (iVertex = 0; iVertex < geometry->GetnVertexSpan(iMarker,jSpan); iVertex++) { - iPoint = geometry->turbovertex[iMarker][jSpan][iVertex]->GetNode(); - - /*--- Compute the integral fluxes for the boundaries ---*/ - Pressure = nodes->GetPressure(iPoint); - Density = nodes->GetDensity(iPoint); - Enthalpy = nodes->GetEnthalpy(iPoint); - - /*--- Normal vector for this vertex (negate for outward convention) ---*/ - geometry->turbovertex[iMarker][jSpan][iVertex]->GetNormal(UnitNormal); - geometry->turbovertex[iMarker][jSpan][iVertex]->GetTurboNormal(TurboNormal); - Area = geometry->turbovertex[iMarker][jSpan][iVertex]->GetArea(); - su2double VelNormal = 0.0, VelSq = 0.0; - - for (iDim = 0; iDim < nDim; iDim++) { - Velocity[iDim] = nodes->GetVelocity(iPoint,iDim); - VelNormal += UnitNormal[iDim]*Velocity[iDim]; - VelSq += Velocity[iDim]*Velocity[iDim]; - } - - ComputeTurboVelocity(Velocity, TurboNormal , TurboVelocity, marker_flag, config->GetKind_TurboMachinery(iZone)); - - /*--- Compute different integral quantities for the boundary of interest ---*/ - - TotalDensity += Density; - TotalPressure += Pressure; - for (iDim = 0; iDim < nDim; iDim++) - TotalVelocity[iDim] += Velocity[iDim]; - - TotalAreaPressure += Area*Pressure; - TotalAreaDensity += Area*Density; - for (iDim = 0; iDim < nDim; iDim++) - TotalAreaVelocity[iDim] += Area*Velocity[iDim]; - - TotalMassPressure += Area*(Density*TurboVelocity[0] )*Pressure; - TotalMassDensity += Area*(Density*TurboVelocity[0] )*Density; - for (iDim = 0; iDim < nDim; iDim++) - TotalMassVelocity[iDim] += Area*(Density*TurboVelocity[0] )*Velocity[iDim]; - - TotalFluxes[0] += Area*(Density*TurboVelocity[0]); - TotalFluxes[1] += Area*(Density*TurboVelocity[0]*TurboVelocity[0] + Pressure); - for (iDim = 2; iDim < nDim+1; iDim++) - TotalFluxes[iDim] += Area*(Density*TurboVelocity[0]*TurboVelocity[iDim -1]); - TotalFluxes[nDim+1] += Area*(Density*TurboVelocity[0]*Enthalpy); - - - /*--- Compute turbulent integral quantities for the boundary of interest ---*/ - - if(turbulent){ - if(menter_sst){ - Kine = solver[TURB_SOL]->GetNodes()->GetSolution(iPoint,0); - Omega = solver[TURB_SOL]->GetNodes()->GetSolution(iPoint,1); - } - if(spalart_allmaras){ - Nu = solver[TURB_SOL]->GetNodes()->GetSolution(iPoint,0); - } - - TotalKine += Kine; - TotalOmega += Omega; - TotalNu += Nu; - - TotalAreaKine += Area*Kine; - TotalAreaOmega += Area*Omega; - TotalAreaNu += Area*Nu; - - TotalMassKine += Area*(Density*TurboVelocity[0] )*Kine; - TotalMassOmega += Area*(Density*TurboVelocity[0] )*Omega; - TotalMassNu += Area*(Density*TurboVelocity[0] )*Nu; - - } + } else { + for (auto jSpan= 0u; jSpan < nSpanWiseSections; jSpan++){ + for (auto iVertex = 0ul; iVertex < geometry->GetnVertexSpan(iMarker,jSpan); iVertex++) { + UpdateTotalQuantities(iMarker, jSpan, iVertex); } } - } - } - } - } - } + } + + } // marker_flag match + } // iMarkerTP match + } // iMarkerTP + } // iMarker #ifdef HAVE_MPI @@ -8855,155 +9087,148 @@ void CEulerSolver::TurboAverageProcess(CSolver **solver, CGeometry *geometry, CC #endif - for (iMarker = 0; iMarker < config->GetnMarker_All(); iMarker++){ - for (iMarkerTP=1; iMarkerTP < config->GetnMarker_Turbomachinery()+1; iMarkerTP++){ + /*--- Compute pitch-wise averaged quantities ---*/ + for (auto iMarker = 0u; iMarker < config->GetnMarker_All(); iMarker++){ + for (auto iMarkerTP=1; iMarkerTP < config->GetnMarker_Turbomachinery()+1; iMarkerTP++){ if (config->GetMarker_All_Turbomachinery(iMarker) == iMarkerTP){ if (config->GetMarker_All_TurbomachineryFlag(iMarker) == marker_flag){ - TotalArea = geometry->GetSpanArea(iMarker,iSpan); - AverageTurboNormal = geometry->GetAverageTurboNormal(iMarker,iSpan); - nVert = geometry->GetnTotVertexSpan(iMarker,iSpan); + const auto TotalArea = geometry->GetSpanArea(iMarker,iSpan); + const auto AverageTurboNormal = geometry->GetAverageTurboNormal(iMarker,iSpan); + const auto nVert = geometry->GetnTotVertexSpan(iMarker,iSpan); /*--- compute normal Mach number as a check for massflow average and mixedout average ---*/ GetFluidModel()->SetTDState_Prho(TotalAreaPressure/TotalArea, TotalAreaDensity / TotalArea); - soundSpeed = GetFluidModel()->GetSoundSpeed(); - MachTest = TotalFluxes[0]/(TotalAreaDensity*soundSpeed); + const su2double soundSpeed = GetFluidModel()->GetSoundSpeed(), + MachTest = TotalFluxes[0]/(TotalAreaDensity*soundSpeed); /*--- Compute the averaged value for the boundary of interest for the span of interest ---*/ - /*--- compute algebraic average ---*/ - avgDensity = TotalDensity / nVert; - avgPressure = TotalPressure / nVert; - for (iDim = 0; iDim < nDim; iDim++) avgVelocity[iDim] = TotalVelocity[iDim] / nVert; - avgKine = TotalKine/nVert; - avgOmega = TotalOmega/nVert; - avgNu = TotalNu/nVert; - - /*--- compute area average ---*/ - avgAreaDensity = TotalAreaDensity / TotalArea; - avgAreaPressure = TotalAreaPressure / TotalArea; - for (iDim = 0; iDim < nDim; iDim++) avgAreaVelocity[iDim] = TotalAreaVelocity[iDim] / TotalArea; - avgAreaKine = TotalAreaKine / TotalArea; - avgAreaOmega = TotalAreaOmega / TotalArea; - avgAreaNu = TotalAreaNu / TotalArea; - - /*--- compute mass-flow average ---*/ - if (abs(MachTest)< config->GetAverageMachLimit()) { - avgMassDensity = avgAreaDensity; - avgMassPressure = avgAreaPressure; - for (iDim = 0; iDim < nDim; iDim++) avgMassVelocity[iDim] = avgAreaVelocity[iDim]; - avgMassKine = avgAreaKine; - avgMassOmega = avgAreaOmega; - avgMassNu = avgAreaNu; - }else{ - avgMassDensity = TotalMassDensity / TotalFluxes[0]; - avgMassPressure = TotalMassPressure / TotalFluxes[0]; - for (iDim = 0; iDim < nDim; iDim++) avgMassVelocity[iDim] = TotalMassVelocity[iDim] / TotalFluxes[0]; - avgMassKine = TotalMassKine / TotalFluxes[0]; - avgMassOmega = TotalMassOmega / TotalFluxes[0]; - avgMassNu = TotalMassNu / TotalFluxes[0]; - } - /*--- compute mixed-out average ---*/ - for (iVar = 0; iVarGetAverageMachLimit()); + su2double avgDensity{0}, avgPressure{0}, avgKine{0}, avgOmega{0}, avgNu{0}, + avgVelocity[MAXNDIM] = {0}; + for (auto iVar = 0u; iVarGetAverageMachLimit()) { - avgMixDensity = avgAreaDensity; - avgMixPressure = avgAreaPressure; - for (iDim = 0; iDim < nDim; iDim++) - avgMixVelocity[iDim] = avgAreaVelocity[iDim]; - ComputeTurboVelocity(avgMixVelocity, AverageTurboNormal , avgMixTurboVelocity, marker_flag, config->GetKind_TurboMachinery(iZone)); - avgMixKine = avgAreaKine; - avgMixOmega = avgAreaOmega; - avgMixNu = avgAreaNu; - }else { - MixedOut_Average (config, val_init_pressure, AverageFlux[iMarker][iSpan], AverageTurboNormal, avgMixPressure, avgMixDensity); - avgMixTurboVelocity[0] = ( AverageFlux[iMarker][iSpan][1] - avgMixPressure) / AverageFlux[iMarker][iSpan][0]; - for (iDim = 2; iDim < nDim +1;iDim++) - avgMixTurboVelocity[iDim-1] = AverageFlux[iMarker][iSpan][iDim] / AverageFlux[iMarker][iSpan][0]; - - if (avgMixDensity!= avgMixDensity || avgMixPressure!= avgMixPressure || avgMixPressure < 0.0 || avgMixDensity < 0.0 ){ - val_init_pressure = avgAreaPressure; - MixedOut_Average (config, val_init_pressure, AverageFlux[iMarker][iSpan], AverageTurboNormal, avgMixPressure, avgMixDensity); - avgMixTurboVelocity[0] = ( AverageFlux[iMarker][iSpan][1] - avgMixPressure) / AverageFlux[iMarker][iSpan][0]; - for (iDim = 2; iDim < nDim +1;iDim++) - avgMixTurboVelocity[iDim-1] = AverageFlux[iMarker][iSpan][iDim] / AverageFlux[iMarker][iSpan][0]; - } - avgMixKine = avgMassKine; - avgMixOmega = avgMassOmega; - avgMixNu = avgMassNu; - } - /*--- Store averaged value for the selected average method ---*/ - switch(average_process){ + switch (average_process) + { case ALGEBRAIC: - AverageDensity[iMarker][iSpan] = avgDensity; - AveragePressure[iMarker][iSpan] = avgPressure; - ComputeTurboVelocity(avgVelocity, AverageTurboNormal , AverageTurboVelocity[iMarker][iSpan], marker_flag, config->GetKind_TurboMachinery(iZone)); - AverageKine[iMarker][iSpan] = avgKine; - AverageOmega[iMarker][iSpan] = avgOmega; - AverageNu[iMarker][iSpan] = avgNu; + /*--- compute algebraic average ---*/ + avgDensity = TotalDensity / nVert; + avgPressure = TotalPressure / nVert; + for (auto iDim = 0u; iDim < nDim; iDim++) avgVelocity[iDim] = TotalVelocity[iDim] / nVert; + if (turbulent) { + avgKine = TotalKine/nVert; + avgOmega = TotalOmega/nVert; + avgNu = TotalNu/nVert; + } break; - case AREA: - AverageDensity[iMarker][iSpan] = avgAreaDensity; - AveragePressure[iMarker][iSpan] = avgAreaPressure; - ComputeTurboVelocity(avgAreaVelocity, AverageTurboNormal , AverageTurboVelocity[iMarker][iSpan], marker_flag, config->GetKind_TurboMachinery(iZone)); - AverageKine[iMarker][iSpan] = avgAreaKine; - AverageOmega[iMarker][iSpan] = avgAreaOmega; - AverageNu[iMarker][iSpan] = avgAreaNu; + /*--- compute area average ---*/ + avgDensity = TotalAreaDensity / TotalArea; + avgPressure = TotalAreaPressure / TotalArea; + for (auto iDim = 0u; iDim < nDim; iDim++) avgVelocity[iDim] = TotalAreaVelocity[iDim] / TotalArea; + if (turbulent) { + avgKine = TotalAreaKine / TotalArea; + avgOmega = TotalAreaOmega / TotalArea; + avgNu = TotalAreaNu / TotalArea; + } break; - case MASSFLUX: - AverageDensity[iMarker][iSpan] = avgMassDensity; - AveragePressure[iMarker][iSpan] = avgMassPressure; - ComputeTurboVelocity(avgAreaVelocity, AverageTurboNormal , AverageTurboVelocity[iMarker][iSpan], marker_flag, config->GetKind_TurboMachinery(iZone)); - AverageKine[iMarker][iSpan] = avgMassKine; - AverageOmega[iMarker][iSpan] = avgMassOmega; - AverageNu[iMarker][iSpan] = avgMassNu; + /*--- compute mass-flux average ---*/ + if (belowMachLimit) { + avgDensity = TotalAreaDensity / TotalArea; + avgPressure = TotalAreaPressure / TotalArea; + for (auto iDim = 0u; iDim < nDim; iDim++) avgVelocity[iDim] = TotalAreaVelocity[iDim] / TotalArea; + if (turbulent) { + avgKine = TotalAreaKine / TotalArea; + avgOmega = TotalAreaOmega / TotalArea; + avgNu = TotalAreaNu / TotalArea; + } + } else { + avgDensity = TotalMassDensity / TotalFluxes[0]; + avgPressure = TotalMassPressure / TotalFluxes[0]; + for (auto iDim = 0u; iDim < nDim; iDim++) avgVelocity[iDim] = TotalMassVelocity[iDim] / TotalFluxes[0]; + if (turbulent) { + avgKine = TotalMassKine / TotalFluxes[0]; + avgOmega = TotalMassOmega / TotalFluxes[0]; + avgNu = TotalMassNu / TotalFluxes[0]; + } + } break; - case MIXEDOUT: - AverageDensity[iMarker][iSpan] = avgMixDensity; - AveragePressure[iMarker][iSpan] = avgMixPressure; - for (iDim = 0; iDim < nDim; iDim++) AverageTurboVelocity[iMarker][iSpan][iDim] = avgMixTurboVelocity[iDim]; - AverageKine[iMarker][iSpan] = avgMixKine; - AverageOmega[iMarker][iSpan] = avgMixOmega; - AverageNu[iMarker][iSpan] = avgMixNu; + /*--- compute mixed-out average ---*/ + avgDensity = TotalAreaDensity / TotalArea; + avgPressure = TotalAreaPressure / TotalArea; + if (belowMachLimit) { + for (auto iDim = 0u; iDim < nDim; iDim++) + avgVelocity[iDim] = TotalAreaVelocity[iDim] / TotalArea; + if (turbulent) { + avgKine = TotalAreaKine / TotalArea; + avgOmega = TotalAreaOmega / TotalArea; + avgNu = TotalAreaNu / TotalArea; + } + }else { + auto val_init_pressure = OldAveragePressure[iMarker][iSpan]; + MixedOut_Average (config, val_init_pressure, AverageFlux[iMarker][iSpan], AverageTurboNormal, avgPressure, avgDensity); + avgVelocity[0] = ( AverageFlux[iMarker][iSpan][1] - avgPressure) / AverageFlux[iMarker][iSpan][0]; + for (auto iDim = 2; iDim < nDim +1;iDim++) + avgVelocity[iDim-1] = AverageFlux[iMarker][iSpan][iDim] / AverageFlux[iMarker][iSpan][0]; + + if (isnan(avgDensity) || isnan(avgPressure) || avgPressure < 0.0 || avgDensity < 0.0 ){ + val_init_pressure = TotalAreaPressure / TotalArea; + MixedOut_Average (config, val_init_pressure, AverageFlux[iMarker][iSpan], AverageTurboNormal, avgPressure, avgDensity); + avgVelocity[0] = ( AverageFlux[iMarker][iSpan][1] - avgPressure) / AverageFlux[iMarker][iSpan][0]; + for (auto iDim = 2; iDim < nDim +1;iDim++) + avgVelocity[iDim-1] = AverageFlux[iMarker][iSpan][iDim] / AverageFlux[iMarker][iSpan][0]; + } + if (turbulent) { + avgKine = TotalMassKine / TotalFluxes[0]; + avgOmega = TotalMassOmega / TotalFluxes[0]; + avgNu = TotalMassNu / TotalFluxes[0]; + } + } break; - default: SU2_MPI::Error(" Invalid AVERAGE PROCESS input!", CURRENT_FUNCTION); break; } - /* --- check if averaged quantities are correct otherwise reset the old quantities ---*/ - if (AverageDensity[iMarker][iSpan]!= AverageDensity[iMarker][iSpan] || AveragePressure[iMarker][iSpan]!= AveragePressure[iMarker][iSpan]){ - cout<<"nan in mixing process routine for iSpan: " << iSpan<< " in marker " << config->GetMarker_All_TagBound(iMarker)<< endl; - AverageDensity[iMarker][iSpan] = OldAverageDensity[iMarker][iSpan]; - AveragePressure[iMarker][iSpan] = OldAveragePressure[iMarker][iSpan]; - for(iDim = 0; iDim < nDim;iDim++) - AverageTurboVelocity[iMarker][iSpan][iDim] = OldAverageTurboVelocity[iMarker][iSpan][iDim]; + AverageDensity[iMarker][iSpan] = avgDensity; + AveragePressure[iMarker][iSpan] = avgPressure; + if ((average_process == MIXEDOUT) && !belowMachLimit) { + for (auto iDim = 0u; iDim < nDim; iDim++) AverageTurboVelocity[iMarker][iSpan][iDim] = avgVelocity[iDim]; + } else { + ComputeTurboVelocity(avgVelocity, AverageTurboNormal , AverageTurboVelocity[iMarker][iSpan], marker_flag, config->GetKind_TurboMachinery(iZone)); + } + if (turbulent) { + AverageKine[iMarker][iSpan] = avgKine; + AverageOmega[iMarker][iSpan] = avgOmega; + AverageNu[iMarker][iSpan] = avgNu; } - - if (AverageDensity[iMarker][iSpan] < 0.0 || AveragePressure[iMarker][iSpan] < 0.0){ - cout << " negative density or pressure in mixing process routine for iSpan: " << iSpan<< " in marker " << config->GetMarker_All_TagBound(iMarker)<< endl; + /* --- check if averaged quantities are correct otherwise reset the old quantities ---*/ + const bool nanSolution = (isnan(AverageDensity[iMarker][iSpan]) || isnan(AveragePressure[iMarker][iSpan])); + const bool negSolution = (AverageDensity[iMarker][iSpan] < 0.0 || AveragePressure[iMarker][iSpan] < 0.0); + if (nanSolution || negSolution){ + if (nanSolution) + cout<<"nan in mixing process routine for iSpan: " << iSpan<< " in marker " << config->GetMarker_All_TagBound(iMarker)<< endl; + else + cout << " negative density or pressure in mixing process routine for iSpan: " << iSpan<< " in marker " << config->GetMarker_All_TagBound(iMarker)<< endl; AverageDensity[iMarker][iSpan] = OldAverageDensity[iMarker][iSpan]; AveragePressure[iMarker][iSpan] = OldAveragePressure[iMarker][iSpan]; - for(iDim = 0; iDim < nDim;iDim++) + for(auto iDim = 0u; iDim < nDim;iDim++) AverageTurboVelocity[iMarker][iSpan][iDim] = OldAverageTurboVelocity[iMarker][iSpan][iDim]; + } else { + /* --- update old average solution ---*/ + OldAverageDensity[iMarker][iSpan] = AverageDensity[iMarker][iSpan]; + OldAveragePressure[iMarker][iSpan] = AveragePressure[iMarker][iSpan]; + for(auto iDim = 0u; iDim < nDim;iDim++) + OldAverageTurboVelocity[iMarker][iSpan][iDim] = AverageTurboVelocity[iMarker][iSpan][iDim]; } - /* --- update old average solution ---*/ - OldAverageDensity[iMarker][iSpan] = AverageDensity[iMarker][iSpan]; - OldAveragePressure[iMarker][iSpan] = AveragePressure[iMarker][iSpan]; - for(iDim = 0; iDim < nDim;iDim++) - OldAverageTurboVelocity[iMarker][iSpan][iDim] = AverageTurboVelocity[iMarker][iSpan][iDim]; - /*--- to avoid back flow ---*/ if (AverageTurboVelocity[iMarker][iSpan][0] < 0.0){ AverageTurboVelocity[iMarker][iSpan][0] = soundSpeed*config->GetAverageMachLimit(); @@ -9012,202 +9237,104 @@ void CEulerSolver::TurboAverageProcess(CSolver **solver, CGeometry *geometry, CC /*--- compute cartesian average Velocity ---*/ ComputeBackVelocity(AverageTurboVelocity[iMarker][iSpan], AverageTurboNormal , AverageVelocity[iMarker][iSpan], marker_flag, config->GetKind_TurboMachinery(iZone)); - /*--- Store averaged performance value for the selected average method ---*/ - switch(performance_average_process){ - case ALGEBRAIC: - if(marker_flag == INFLOW){ - DensityIn[iMarkerTP - 1][iSpan] = avgDensity; - PressureIn[iMarkerTP - 1][iSpan] = avgPressure; - ComputeTurboVelocity(avgVelocity, AverageTurboNormal , TurboVelocityIn[iMarkerTP -1][iSpan], marker_flag, config->GetKind_TurboMachinery(iZone)); - KineIn[iMarkerTP - 1][iSpan] = avgKine; - OmegaIn[iMarkerTP - 1][iSpan] = avgOmega; - NuIn[iMarkerTP - 1][iSpan] = avgNu; - } - else{ - DensityOut[iMarkerTP - 1][iSpan] = avgDensity; - PressureOut[iMarkerTP - 1][iSpan] = avgPressure; - ComputeTurboVelocity(avgVelocity, AverageTurboNormal , TurboVelocityOut[iMarkerTP -1][iSpan], marker_flag, config->GetKind_TurboMachinery(iZone)); - KineOut[iMarkerTP - 1][iSpan] = avgKine; - OmegaOut[iMarkerTP - 1][iSpan] = avgOmega; - NuOut[iMarkerTP - 1][iSpan] = avgNu; - } - - break; - case AREA: - if(marker_flag == INFLOW){ - DensityIn[iMarkerTP - 1][iSpan] = avgAreaDensity; - PressureIn[iMarkerTP - 1][iSpan] = avgAreaPressure; - ComputeTurboVelocity(avgAreaVelocity, AverageTurboNormal , TurboVelocityIn[iMarkerTP -1][iSpan], marker_flag, config->GetKind_TurboMachinery(iZone)); - KineIn[iMarkerTP - 1][iSpan] = avgAreaKine; - OmegaIn[iMarkerTP - 1][iSpan] = avgAreaOmega; - NuIn[iMarkerTP - 1][iSpan] = avgAreaNu; - } - else{ - DensityOut[iMarkerTP - 1][iSpan] = avgAreaDensity; - PressureOut[iMarkerTP - 1][iSpan] = avgAreaPressure; - ComputeTurboVelocity(avgAreaVelocity, AverageTurboNormal , TurboVelocityOut[iMarkerTP -1][iSpan], marker_flag, config->GetKind_TurboMachinery(iZone)); - KineOut[iMarkerTP - 1][iSpan] = avgAreaKine; - OmegaOut[iMarkerTP - 1][iSpan] = avgAreaOmega; - NuOut[iMarkerTP - 1][iSpan] = avgAreaNu/TotalArea; - } - break; - - case MASSFLUX: - if(marker_flag == INFLOW){ - DensityIn[iMarkerTP - 1][iSpan] = avgMassDensity; - PressureIn[iMarkerTP - 1][iSpan] = avgMassPressure; - ComputeTurboVelocity(avgMassVelocity, AverageTurboNormal , TurboVelocityIn[iMarkerTP -1][iSpan], marker_flag, config->GetKind_TurboMachinery(iZone)); - KineIn[iMarkerTP - 1][iSpan] = avgMassKine; - OmegaIn[iMarkerTP - 1][iSpan] = avgMassOmega; - NuIn[iMarkerTP - 1][iSpan] = avgMassNu; - } - else{ - DensityOut[iMarkerTP - 1][iSpan] = avgMassDensity; - PressureOut[iMarkerTP - 1][iSpan] = avgMassPressure; - ComputeTurboVelocity(avgMassVelocity, AverageTurboNormal , TurboVelocityOut[iMarkerTP -1][iSpan], marker_flag, config->GetKind_TurboMachinery(iZone)); - KineOut[iMarkerTP - 1][iSpan] = avgMassKine; - OmegaOut[iMarkerTP - 1][iSpan] = avgMassOmega; - NuOut[iMarkerTP - 1][iSpan] = avgMassNu; - } - - break; - - case MIXEDOUT: - if (marker_flag == INFLOW){ - DensityIn[iMarkerTP - 1][iSpan] = avgMixDensity; - PressureIn[iMarkerTP - 1][iSpan] = avgMixPressure; - for (iDim = 0; iDim < nDim; iDim++) TurboVelocityIn[iMarkerTP -1][iSpan][iDim] = avgMixTurboVelocity[iDim]; - KineIn[iMarkerTP - 1][iSpan] = avgMixKine; - OmegaIn[iMarkerTP - 1][iSpan] = avgMixOmega; - NuIn[iMarkerTP - 1][iSpan] = avgMixNu; - } - else{ - DensityOut[iMarkerTP - 1][iSpan] = avgMixDensity; - PressureOut[iMarkerTP - 1][iSpan] = avgMixPressure; - for (iDim = 0; iDim < nDim; iDim++) TurboVelocityOut[iMarkerTP -1][iSpan][iDim] = avgMixTurboVelocity[iDim]; - KineOut[iMarkerTP - 1][iSpan] = avgMixKine; - OmegaOut[iMarkerTP - 1][iSpan] = avgMixOmega; - NuOut[iMarkerTP - 1][iSpan] = avgMixNu; - } - break; + if (marker_flag == INFLOW) { + DensityIn[iMarkerTP - 1][iSpan] = AverageDensity[iMarker][iSpan]; + PressureIn[iMarkerTP - 1][iSpan] = AveragePressure[iMarker][iSpan]; + KineIn[iMarkerTP - 1][iSpan] = AverageKine[iMarker][iSpan]; + OmegaIn[iMarkerTP - 1][iSpan] = AverageOmega[iMarker][iSpan]; + NuIn[iMarkerTP - 1][iSpan] = AverageNu[iMarker][iSpan]; + } else { + DensityOut[iMarkerTP - 1][iSpan] = AverageDensity[iMarker][iSpan]; + PressureOut[iMarkerTP - 1][iSpan] = AveragePressure[iMarker][iSpan]; + KineOut[iMarkerTP - 1][iSpan] = AverageKine[iMarker][iSpan]; + OmegaOut[iMarkerTP - 1][iSpan] = AverageOmega[iMarker][iSpan]; + NuOut[iMarkerTP - 1][iSpan] = AverageNu[iMarker][iSpan]; + } + + auto TurboVel = (marker_flag == INFLOW) ? TurboVelocityIn[iMarkerTP - 1][iSpan] : TurboVelocityOut[iMarkerTP - 1][iSpan]; - default: - SU2_MPI::Error(" Invalid MIXING_PROCESS input!", CURRENT_FUNCTION); - break; + if (performance_average_process == MIXEDOUT) { + for (auto iDim = 0u; iDim < nDim; iDim++) TurboVel[iDim] = avgVelocity[iDim]; + } else { + ComputeTurboVelocity(avgVelocity, AverageTurboNormal , TurboVel, marker_flag, config->GetKind_TurboMachinery(iZone)); } } } - } - } - } + } // iMarkerTP + } // iMarker + } // iSpan /*--- Compute Outlet Static Pressure if Radial equilibrium is imposed ---*/ - for (iMarker = 0; iMarker < config->GetnMarker_All(); iMarker++){ - for (iMarkerTP=1; iMarkerTP < config->GetnMarker_Turbomachinery()+1; iMarkerTP++){ + for (auto iMarker = 0u; iMarker < config->GetnMarker_All(); iMarker++){ + for (auto iMarkerTP=1; iMarkerTP < config->GetnMarker_Turbomachinery()+1; iMarkerTP++){ if (config->GetMarker_All_Turbomachinery(iMarker) == iMarkerTP){ if (config->GetMarker_All_TurbomachineryFlag(iMarker) == marker_flag){ - Marker_Tag = config->GetMarker_All_TagBound(iMarker); + auto Marker_Tag = config->GetMarker_All_TagBound(iMarker); if(config->GetBoolGiles() || config->GetBoolRiemann()){ if(config->GetBoolRiemann()){ if(config->GetKind_Data_Riemann(Marker_Tag) == RADIAL_EQUILIBRIUM){ RadialEquilibriumPressure[iMarker][nSpanWiseSections/2] = config->GetRiemann_Var1(Marker_Tag)/config->GetPressure_Ref(); - for (iSpan= nSpanWiseSections/2; iSpan < nSpanWiseSections-1; iSpan++){ - Radius2 = geometry->GetTurboRadius(iMarker,iSpan+1); - Radius1 = geometry->GetTurboRadius(iMarker,iSpan); - Vt2 = AverageTurboVelocity[iMarker][iSpan +1][1]*AverageTurboVelocity[iMarker][iSpan +1][1]; - RadialEquilibriumPressure[iMarker][iSpan +1] = RadialEquilibriumPressure[iMarker][iSpan] + AverageDensity[iMarker][iSpan +1]*Vt2/Radius2*(Radius2 - Radius1); - } - for (iSpan= nSpanWiseSections/2; iSpan > 0; iSpan--){ - Radius2 = geometry->GetTurboRadius(iMarker,iSpan); - Radius1 = geometry->GetTurboRadius(iMarker,iSpan-1); - Vt2 = AverageTurboVelocity[iMarker][iSpan - 1][1]*AverageTurboVelocity[iMarker][iSpan - 1][1]; - Radius1 = (Radius1 > EPS)? Radius1 : Radius2; - RadialEquilibriumPressure[iMarker][iSpan -1] = RadialEquilibriumPressure[iMarker][iSpan] - AverageDensity[iMarker][iSpan -1]*Vt2/Radius1*(Radius2 - Radius1); - } } - } - else{ + } else { if(config->GetKind_Data_Giles(Marker_Tag) == RADIAL_EQUILIBRIUM){ RadialEquilibriumPressure[iMarker][nSpanWiseSections/2] = config->GetGiles_Var1(Marker_Tag)/config->GetPressure_Ref(); - for (iSpan= nSpanWiseSections/2; iSpan < nSpanWiseSections-1; iSpan++){ - Radius2 = geometry->GetTurboRadius(iMarker,iSpan+1); - Radius1 = geometry->GetTurboRadius(iMarker,iSpan); - Vt2 = AverageTurboVelocity[iMarker][iSpan +1][1]*AverageTurboVelocity[iMarker][iSpan +1][1]; - RadialEquilibriumPressure[iMarker][iSpan +1] = RadialEquilibriumPressure[iMarker][iSpan] + AverageDensity[iMarker][iSpan +1]*Vt2/Radius2*(Radius2 - Radius1); - } - for (iSpan= nSpanWiseSections/2; iSpan > 0; iSpan--){ - Radius2 = geometry->GetTurboRadius(iMarker,iSpan); - Radius1 = geometry->GetTurboRadius(iMarker,iSpan-1); - Vt2 = AverageTurboVelocity[iMarker][iSpan -1][1]*AverageTurboVelocity[iMarker][iSpan - 1][1]; - Radius1 = (Radius1 > EPS)? Radius1 : Radius2; - RadialEquilibriumPressure[iMarker][iSpan -1] = RadialEquilibriumPressure[iMarker][iSpan] - AverageDensity[iMarker][iSpan -1]*Vt2/Radius1*(Radius2 - Radius1); - } } + } + for (auto iSpan= nSpanWiseSections/2; iSpan < nSpanWiseSections-1; iSpan++){ + const auto Radius2 = geometry->GetTurboRadius(iMarker,iSpan+1); + const auto Radius1 = geometry->GetTurboRadius(iMarker,iSpan); + const su2double Vt2 = AverageTurboVelocity[iMarker][iSpan +1][1]*AverageTurboVelocity[iMarker][iSpan +1][1]; + RadialEquilibriumPressure[iMarker][iSpan +1] = RadialEquilibriumPressure[iMarker][iSpan] + AverageDensity[iMarker][iSpan +1]*Vt2/Radius2*(Radius2 - Radius1); } - } - } - } - } - } - - /*--- Free locally allocated memory ---*/ - delete [] Velocity; - delete [] UnitNormal; - delete [] TurboNormal; - delete [] TurboVelocity; - delete [] TotalVelocity; - delete [] TotalAreaVelocity; - delete [] TotalFluxes; - delete [] TotalMassVelocity; - delete [] avgVelocity; - delete [] avgAreaVelocity; - delete [] avgMassVelocity; - delete [] avgMixVelocity; - delete [] avgMixTurboVelocity; - + for (auto iSpan= nSpanWiseSections/2; iSpan > 0; iSpan--){ + const su2double Radius2 = geometry->GetTurboRadius(iMarker,iSpan); + su2double Radius1 = geometry->GetTurboRadius(iMarker,iSpan-1); + const su2double Vt2 = AverageTurboVelocity[iMarker][iSpan -1][1]*AverageTurboVelocity[iMarker][iSpan - 1][1]; + Radius1 = (Radius1 > EPS)? Radius1 : Radius2; + RadialEquilibriumPressure[iMarker][iSpan -1] = RadialEquilibriumPressure[iMarker][iSpan] - AverageDensity[iMarker][iSpan -1]*Vt2/Radius1*(Radius2 - Radius1); + } + } // Giles or Riemann + } // marker_flag + } // iMarkerTP + } // iMarker is iMarkerTP + } // iMarker } -void CEulerSolver::MixedOut_Average (CConfig *config, su2double val_init_pressure, const su2double *val_Averaged_Flux, +void CEulerSolver::MixedOut_Average(CConfig *config, su2double val_init_pressure, const su2double *val_Averaged_Flux, const su2double *val_normal, su2double& pressure_mix, su2double& density_mix) { - su2double dx, f, df, resdl = 1.0E+05; - unsigned short iter = 0, iDim; - su2double relax_factor = config->GetMixedout_Coeff(0); - su2double toll = config->GetMixedout_Coeff(1); + const auto relax_factor = config->GetMixedout_Coeff(0); + const auto toll = config->GetMixedout_Coeff(1); unsigned short maxiter = SU2_TYPE::Int(config->GetMixedout_Coeff(2)); - su2double dhdP, dhdrho, enthalpy_mix, velsq, *vel; - - vel = new su2double[nDim]; pressure_mix = val_init_pressure; /*--- Newton-Raphson's method with central difference formula ---*/ - + unsigned short iter{0}; while ( iter <= maxiter ) { - density_mix = val_Averaged_Flux[0]*val_Averaged_Flux[0]/(val_Averaged_Flux[1] - pressure_mix); + const su2double density_mix = val_Averaged_Flux[0]*val_Averaged_Flux[0]/(val_Averaged_Flux[1] - pressure_mix); GetFluidModel()->SetTDState_Prho(pressure_mix, density_mix); - enthalpy_mix = GetFluidModel()->GetStaticEnergy() + (pressure_mix)/(density_mix); + const su2double enthalpy_mix = GetFluidModel()->GetStaticEnergy() + (pressure_mix)/(density_mix); GetFluidModel()->ComputeDerivativeNRBC_Prho(pressure_mix, density_mix); - dhdP = GetFluidModel()->GetdhdP_rho(); - dhdrho = GetFluidModel()->Getdhdrho_P(); + const su2double dhdP = GetFluidModel()->GetdhdP_rho(); + const su2double dhdrho = GetFluidModel()->Getdhdrho_P(); + su2double vel[MAXNDIM] = {0}; vel[0] = (val_Averaged_Flux[1] - pressure_mix) / val_Averaged_Flux[0]; - for (iDim = 1; iDim < nDim; iDim++) { + for (auto iDim = 1u; iDim < nDim; iDim++) vel[iDim] = val_Averaged_Flux[iDim+1] / val_Averaged_Flux[0]; - } + - velsq = 0.0; - for (unsigned short iDim = 0; iDim < nDim; iDim++) { - velsq += vel[iDim]*vel[iDim]; - } - f = val_Averaged_Flux[nDim+1] - val_Averaged_Flux[0]*(enthalpy_mix + velsq/2); - df = -val_Averaged_Flux[0]*(dhdP - 1/density_mix) - dhdrho*density_mix*density_mix/val_Averaged_Flux[0]; - dx = -f/df; - resdl = dx/val_init_pressure; + const su2double velsq = GeometryToolbox::DotProduct(nDim, vel, vel); + + const su2double f = val_Averaged_Flux[nDim+1] - val_Averaged_Flux[0]*(enthalpy_mix + velsq/2); + const su2double df = -val_Averaged_Flux[0]*(dhdP - 1/density_mix) - dhdrho*density_mix*density_mix/val_Averaged_Flux[0]; + const su2double dx = -f/df; + const su2double resdl = dx/val_init_pressure; pressure_mix += relax_factor*dx; iter += 1; @@ -9216,11 +9343,8 @@ void CEulerSolver::MixedOut_Average (CConfig *config, su2double val_init_pressur } } - density_mix = val_Averaged_Flux[0]*val_Averaged_Flux[0]/(val_Averaged_Flux[1] - pressure_mix); - delete [] vel; - } void CEulerSolver::GatherInOutAverageValues(CConfig *config, CGeometry *geometry){ diff --git a/SU2_CFD/src/solvers/CFEASolver.cpp b/SU2_CFD/src/solvers/CFEASolver.cpp index 507ebbf4d47..f67a0199d01 100644 --- a/SU2_CFD/src/solvers/CFEASolver.cpp +++ b/SU2_CFD/src/solvers/CFEASolver.cpp @@ -2,14 +2,14 @@ * \file CFEASolver.cpp * \brief Main subroutines for solving direct FEM elasticity problems. * \author R. Sanchez - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -3142,9 +3142,8 @@ void CFEASolver::LoadRestart(CGeometry **geometry, CSolver ***solver, CConfig *c /*--- Delete the class memory that is used to load the restart. ---*/ - delete [] Restart_Vars; Restart_Vars = nullptr; - delete [] Restart_Data; Restart_Data = nullptr; - + Restart_Vars = decltype(Restart_Vars){}; + Restart_Data = decltype(Restart_Data){}; } void CFEASolver::RegisterVariables(CGeometry *geometry, CConfig *config, bool reset) diff --git a/SU2_CFD/src/solvers/CFEASolverBase.cpp b/SU2_CFD/src/solvers/CFEASolverBase.cpp index 1280baf9bc6..b3146c6d207 100644 --- a/SU2_CFD/src/solvers/CFEASolverBase.cpp +++ b/SU2_CFD/src/solvers/CFEASolverBase.cpp @@ -2,14 +2,14 @@ * \file CFEASolverBase.cpp * \brief Common class template for FEA solvers * \author T. Dick - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/src/solvers/CFEM_DG_EulerSolver.cpp b/SU2_CFD/src/solvers/CFEM_DG_EulerSolver.cpp index 42562cf6ba0..f01ea90e7b1 100644 --- a/SU2_CFD/src/solvers/CFEM_DG_EulerSolver.cpp +++ b/SU2_CFD/src/solvers/CFEM_DG_EulerSolver.cpp @@ -2,14 +2,14 @@ * \file CFEM_DG_EulerSolver.cpp * \brief Main subroutines for solving finite element Euler flow problems * \author J. Alonso, E. van der Weide, T. Economon - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -9571,8 +9571,6 @@ void CFEM_DG_EulerSolver::LoadRestart(CGeometry **geometry, CSolver ***solver, C /*--- Delete the class memory that is used to load the restart. ---*/ - delete [] Restart_Vars; - delete [] Restart_Data; - Restart_Vars = nullptr; Restart_Data = nullptr; - + Restart_Vars = decltype(Restart_Vars){}; + Restart_Data = decltype(Restart_Data){}; } diff --git a/SU2_CFD/src/solvers/CFEM_DG_NSSolver.cpp b/SU2_CFD/src/solvers/CFEM_DG_NSSolver.cpp index cc8e1a9511e..efbe74b0aa1 100644 --- a/SU2_CFD/src/solvers/CFEM_DG_NSSolver.cpp +++ b/SU2_CFD/src/solvers/CFEM_DG_NSSolver.cpp @@ -2,14 +2,14 @@ * \file CFEM_DG_NSSolver.cpp * \brief Main subroutines for solving finite element Navier-Stokes flow problems * \author J. Alonso, E. van der Weide, T. Economon - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/src/solvers/CGradientSmoothingSolver.cpp b/SU2_CFD/src/solvers/CGradientSmoothingSolver.cpp index 83e61cb7a9a..1f3a425aae6 100644 --- a/SU2_CFD/src/solvers/CGradientSmoothingSolver.cpp +++ b/SU2_CFD/src/solvers/CGradientSmoothingSolver.cpp @@ -2,14 +2,14 @@ * \file CGradientSmoothing.cpp * \brief Main solver routines for the gradient smoothing problem. * \author T. Dick - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/src/solvers/CHeatSolver.cpp b/SU2_CFD/src/solvers/CHeatSolver.cpp index c0005bfa792..b01870e29bb 100644 --- a/SU2_CFD/src/solvers/CHeatSolver.cpp +++ b/SU2_CFD/src/solvers/CHeatSolver.cpp @@ -2,14 +2,14 @@ * \file CHeatSolver.cpp * \brief Main subroutines for solving the heat equation * \author F. Palacios, T. Economon - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -265,10 +265,8 @@ void CHeatSolver::LoadRestart(CGeometry **geometry, CSolver ***solver, CConfig * /*--- Delete the class memory that is used to load the restart. ---*/ BEGIN_SU2_OMP_SAFE_GLOBAL_ACCESS { - delete[] Restart_Vars; - Restart_Vars = nullptr; - delete[] Restart_Data; - Restart_Data = nullptr; + Restart_Vars = decltype(Restart_Vars){}; + Restart_Data = decltype(Restart_Data){}; } END_SU2_OMP_SAFE_GLOBAL_ACCESS } @@ -314,6 +312,8 @@ void CHeatSolver::Viscous_Residual(CGeometry *geometry, CSolver **solver_contain void CHeatSolver::Set_Heatflux_Areas(CGeometry *geometry, CConfig *config) { + BEGIN_SU2_OMP_SAFE_GLOBAL_ACCESS { + string HeatFlux_Tag, Marker_Tag; su2double *Local_Surface_Areas, Local_HeatFlux_Areas_Monitor, Area, *Normal; @@ -365,6 +365,8 @@ void CHeatSolver::Set_Heatflux_Areas(CGeometry *geometry, CConfig *config) { } delete[] Local_Surface_Areas; + + } END_SU2_OMP_SAFE_GLOBAL_ACCESS } void CHeatSolver::BC_Isothermal_Wall(CGeometry *geometry, CSolver **solver_container, CNumerics *conv_numerics, diff --git a/SU2_CFD/src/solvers/CIncEulerSolver.cpp b/SU2_CFD/src/solvers/CIncEulerSolver.cpp index d8f53845622..5b81394bd9a 100644 --- a/SU2_CFD/src/solvers/CIncEulerSolver.cpp +++ b/SU2_CFD/src/solvers/CIncEulerSolver.cpp @@ -2,14 +2,14 @@ * \file CIncEulerSolver.cpp * \brief Main subroutines for solving incompressible flow (Euler, Navier-Stokes, etc.). * \author F. Palacios, T. Economon - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/src/solvers/CIncNSSolver.cpp b/SU2_CFD/src/solvers/CIncNSSolver.cpp index 659a3eebef6..d8327f1297a 100644 --- a/SU2_CFD/src/solvers/CIncNSSolver.cpp +++ b/SU2_CFD/src/solvers/CIncNSSolver.cpp @@ -2,14 +2,14 @@ * \file CIncNSSolver.cpp * \brief Main subroutines for solving Navier-Stokes incompressible flow. * \author F. Palacios, T. Economon - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/src/solvers/CMeshSolver.cpp b/SU2_CFD/src/solvers/CMeshSolver.cpp index 20b8269e118..39e17b322c8 100644 --- a/SU2_CFD/src/solvers/CMeshSolver.cpp +++ b/SU2_CFD/src/solvers/CMeshSolver.cpp @@ -2,14 +2,14 @@ * \file CMeshSolver.cpp * \brief Main subroutines to solve moving meshes using a pseudo-linear elastic approach. * \author Ruben Sanchez - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -857,9 +857,8 @@ void CMeshSolver::LoadRestart(CGeometry **geometry, CSolver ***solver, CConfig * /*--- Delete the class memory that is used to load the restart. ---*/ - delete [] Restart_Vars; Restart_Vars = nullptr; - delete [] Restart_Data; Restart_Data = nullptr; - + Restart_Vars = decltype(Restart_Vars){}; + Restart_Data = decltype(Restart_Data){}; } void CMeshSolver::RestartOldGeometry(CGeometry *geometry, const CConfig *config) { @@ -956,8 +955,8 @@ void CMeshSolver::RestartOldGeometry(CGeometry *geometry, const CConfig *config) /*--- Delete the class memory that is used to load the restart. ---*/ - delete [] Restart_Vars; Restart_Vars = nullptr; - delete [] Restart_Data; Restart_Data = nullptr; + Restart_Vars = decltype(Restart_Vars){}; + Restart_Data = decltype(Restart_Data){}; InitiateComms(geometry, config, CommType); CompleteComms(geometry, config, CommType); @@ -979,6 +978,12 @@ void CMeshSolver::Surface_Pitching(CGeometry *geometry, CConfig *config, unsigne unsigned long iPoint, iVertex; string Marker_Tag, Moving_Tag; + /*--- Keep track of points that have been moved to avoid double + * deformation on points that appear on multiple markers. ---*/ + + const auto& VertexMap = static_cast(nodes)->GetVertexMap(); + std::vector iPointMoved(VertexMap.GetnVertex(), false); + /*--- Retrieve values from the config file ---*/ deltaT = config->GetDelta_UnstTimeND(); @@ -1055,6 +1060,13 @@ void CMeshSolver::Surface_Pitching(CGeometry *geometry, CConfig *config, unsigne * motions that may be applied, e.g. plunging. ---*/ iPoint = geometry->vertex[iMarker][iVertex]->GetNode(); + + /*--- Avoid moving points twice. ---*/ + auto vertexIndex = iPoint; + VertexMap.GetVertexIndex(vertexIndex); + if (iPointMoved[vertexIndex]) continue; + iPointMoved[vertexIndex] = true; + su2double Coord[3] = {0.0}; for (iDim = 0; iDim < nDim; ++iDim) { Coord[iDim] = nodes->GetMesh_Coord(iPoint, iDim) + nodes->GetBound_Disp(iPoint, iDim); @@ -1098,6 +1110,12 @@ void CMeshSolver::Surface_Rotating(CGeometry *geometry, CConfig *config, unsigne unsigned long iPoint, iVertex; string Marker_Tag, Moving_Tag; + /*--- Keep track of points that have been moved to avoid double + * deformation on points that appear on multiple markers. ---*/ + + const auto& VertexMap = static_cast(nodes)->GetVertexMap(); + std::vector iPointMoved(VertexMap.GetnVertex(), false); + /*--- Retrieve values from the config file ---*/ deltaT = config->GetDelta_UnstTimeND(); @@ -1164,6 +1182,13 @@ void CMeshSolver::Surface_Rotating(CGeometry *geometry, CConfig *config, unsigne * motions that may be applied, e.g. plunging. ---*/ iPoint = geometry->vertex[iMarker][iVertex]->GetNode(); + + /*--- Avoid moving points twice. ---*/ + auto vertexIndex = iPoint; + VertexMap.GetVertexIndex(vertexIndex); + if (iPointMoved[vertexIndex]) continue; + iPointMoved[vertexIndex] = true; + su2double Coord[3] = {0.0}; for (iDim = 0; iDim < nDim; ++iDim) { Coord[iDim] = nodes->GetMesh_Coord(iPoint, iDim) + nodes->GetBound_Disp(iPoint, iDim); @@ -1265,6 +1290,12 @@ void CMeshSolver::Surface_Plunging(CGeometry *geometry, CConfig *config, unsigne string Marker_Tag, Moving_Tag; unsigned short iDim; + /*--- Keep track of points that have been moved to avoid double + * deformation on points that appear on multiple markers. ---*/ + + const auto& VertexMap = static_cast(nodes)->GetVertexMap(); + std::vector iPointMoved(VertexMap.GetnVertex(), false); + /*--- Retrieve values from the config file ---*/ deltaT = config->GetDelta_UnstTimeND(); @@ -1328,6 +1359,12 @@ void CMeshSolver::Surface_Plunging(CGeometry *geometry, CConfig *config, unsigne iPoint = geometry->vertex[iMarker][iVertex]->GetNode(); + /*--- Avoid moving points twice. ---*/ + auto vertexIndex = iPoint; + VertexMap.GetVertexIndex(vertexIndex); + if (iPointMoved[vertexIndex]) continue; + iPointMoved[vertexIndex] = true; + for (iDim = 0; iDim < nDim; iDim++) VarCoordAbs[iDim] = nodes->GetBound_Disp(iPoint, iDim) + VarCoord[iDim]; @@ -1380,6 +1417,12 @@ void CMeshSolver::Surface_Translating(CGeometry *geometry, CConfig *config, unsi string Marker_Tag, Moving_Tag; unsigned short iDim; + /*--- Keep track of points that have been moved to avoid double + * deformation on points that appear on multiple markers. ---*/ + + const auto& VertexMap = static_cast(nodes)->GetVertexMap(); + std::vector iPointMoved(VertexMap.GetnVertex(), false); + /*--- Retrieve values from the config file ---*/ deltaT = config->GetDelta_UnstTimeND(); @@ -1438,6 +1481,12 @@ void CMeshSolver::Surface_Translating(CGeometry *geometry, CConfig *config, unsi iPoint = geometry->vertex[iMarker][iVertex]->GetNode(); + /*--- Avoid moving points twice. ---*/ + auto vertexIndex = iPoint; + VertexMap.GetVertexIndex(vertexIndex); + if (iPointMoved[vertexIndex]) continue; + iPointMoved[vertexIndex] = true; + for (iDim = 0; iDim < nDim; iDim++) VarCoordAbs[iDim] = nodes->GetBound_Disp(iPoint, iDim) + VarCoord[iDim]; diff --git a/SU2_CFD/src/solvers/CNEMOEulerSolver.cpp b/SU2_CFD/src/solvers/CNEMOEulerSolver.cpp index 9b52b1d07b9..0905ddeda32 100644 --- a/SU2_CFD/src/solvers/CNEMOEulerSolver.cpp +++ b/SU2_CFD/src/solvers/CNEMOEulerSolver.cpp @@ -2,14 +2,14 @@ * \file CNEMOEulerSolver.cpp * \brief Headers of the CNEMOEulerSolver class * \author S. R. Copeland, F. Palacios, W. Maier, C. Garbacz, J. Needels - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/src/solvers/CNEMONSSolver.cpp b/SU2_CFD/src/solvers/CNEMONSSolver.cpp index 14335d45df9..b6642b5cf8d 100644 --- a/SU2_CFD/src/solvers/CNEMONSSolver.cpp +++ b/SU2_CFD/src/solvers/CNEMONSSolver.cpp @@ -2,14 +2,14 @@ * \file CNEMONSSolver.cpp * \brief Headers of the CNEMONSSolver class * \author S. R. Copeland, F. Palacios, W. Maier. - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/src/solvers/CNSSolver.cpp b/SU2_CFD/src/solvers/CNSSolver.cpp index b544abccff6..29a336c1a26 100644 --- a/SU2_CFD/src/solvers/CNSSolver.cpp +++ b/SU2_CFD/src/solvers/CNSSolver.cpp @@ -2,14 +2,14 @@ * \file CNSSolver.cpp * \brief Main subroutines for solving Finite-Volume Navier-Stokes flow problems. * \author F. Palacios, T. Economon - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/src/solvers/CRadP1Solver.cpp b/SU2_CFD/src/solvers/CRadP1Solver.cpp index 49611daeb5e..af40b22f2bc 100644 --- a/SU2_CFD/src/solvers/CRadP1Solver.cpp +++ b/SU2_CFD/src/solvers/CRadP1Solver.cpp @@ -2,14 +2,14 @@ * \file CRadP1Solver.cpp * \brief Main subroutines for solving P1 radiation problems. * \author Ruben Sanchez - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/src/solvers/CRadSolver.cpp b/SU2_CFD/src/solvers/CRadSolver.cpp index 26256446773..ca5becad7af 100644 --- a/SU2_CFD/src/solvers/CRadSolver.cpp +++ b/SU2_CFD/src/solvers/CRadSolver.cpp @@ -2,14 +2,14 @@ * \file CRadP1Solver.cpp * \brief Main subroutines for solving generic radiation problems (P1, M1, discrete ordinates...) * \author Ruben Sanchez - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -160,8 +160,6 @@ void CRadSolver::LoadRestart(CGeometry **geometry, CSolver ***solver, CConfig *c /*--- Delete the class memory that is used to load the restart. ---*/ - delete [] Restart_Vars; - delete [] Restart_Data; - Restart_Vars = nullptr; Restart_Data = nullptr; - + Restart_Vars = decltype(Restart_Vars){}; + Restart_Data = decltype(Restart_Data){}; } diff --git a/SU2_CFD/src/solvers/CSolver.cpp b/SU2_CFD/src/solvers/CSolver.cpp index 5cd2fd93425..03c79b46fc3 100644 --- a/SU2_CFD/src/solvers/CSolver.cpp +++ b/SU2_CFD/src/solvers/CSolver.cpp @@ -2,14 +2,14 @@ * \file CSolver.cpp * \brief Main subroutines for CSolver class. * \author F. Palacios, T. Economon - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -86,8 +86,6 @@ CSolver::CSolver(LINEAR_SOLVER_MODE linear_solver_mode) : System(linear_solver_m Jacobian_ij = nullptr; Jacobian_ji = nullptr; Jacobian_jj = nullptr; - Restart_Vars = nullptr; - Restart_Data = nullptr; base_nodes = nullptr; nOutputVariables = 0; ResLinSolver = 0.0; @@ -144,6 +142,7 @@ CSolver::~CSolver() { delete [] Res_Visc; delete [] Res_Sour; delete [] Res_Conv_i; + delete [] Res_Conv_j; delete [] Res_Visc_i; delete [] Res_Visc_j; @@ -183,8 +182,8 @@ CSolver::~CSolver() { delete [] Jacobian_jj; } - delete [] Restart_Vars; - delete [] Restart_Data; + Restart_Vars = decltype(Restart_Vars){}; + Restart_Data = decltype(Restart_Data){}; delete VerificationSolution; } @@ -2738,7 +2737,7 @@ void CSolver::Read_SU2_Restart_ASCII(CGeometry *geometry, const CConfig *config, int counter = 0; fields.clear(); - Restart_Vars = new int[5]; + Restart_Vars.resize(5); string error_string = "Note: ASCII restart files must be in CSV format since v7.0.\n" "Check https://su2code.github.io/docs/Guide-to-v7 for more information."; @@ -2857,7 +2856,7 @@ void CSolver::Read_SU2_Restart_ASCII(CGeometry *geometry, const CConfig *config, /*--- Allocate memory for the restart data. ---*/ - Restart_Data = new passivedouble[Restart_Vars[1]*geometry->GetnPointDomain()]; + Restart_Data.resize(Restart_Vars[1]*geometry->GetnPointDomain()); /*--- Read all lines in the restart file and extract data. ---*/ @@ -2898,7 +2897,7 @@ void CSolver::Read_SU2_Restart_Binary(CGeometry *geometry, const CConfig *config val_filename += ".dat"; strcpy(fname, val_filename.c_str()); const int nRestart_Vars = 5; - Restart_Vars = new int[nRestart_Vars]; + Restart_Vars.resize(nRestart_Vars); fields.clear(); #ifndef HAVE_MPI @@ -2917,7 +2916,7 @@ void CSolver::Read_SU2_Restart_Binary(CGeometry *geometry, const CConfig *config /*--- First, read the number of variables and points. ---*/ - ret = fread(Restart_Vars, sizeof(int), nRestart_Vars, fhw); + ret = fread(Restart_Vars.data(), sizeof(int), nRestart_Vars, fhw); if (ret != (unsigned long)nRestart_Vars) { SU2_MPI::Error("Error reading restart file.", CURRENT_FUNCTION); } @@ -2953,11 +2952,11 @@ void CSolver::Read_SU2_Restart_Binary(CGeometry *geometry, const CConfig *config /*--- For now, create a temp 1D buffer to read the data from file. ---*/ - Restart_Data = new passivedouble[nFields*nPointFile]; + Restart_Data.resize(nFields*nPointFile); /*--- Read in the data for the restart at all local points. ---*/ - ret = fread(Restart_Data, sizeof(passivedouble), nFields*nPointFile, fhw); + ret = fread(Restart_Data.data(), sizeof(passivedouble), nFields*nPointFile, fhw); if (ret != nFields*nPointFile) { SU2_MPI::Error("Error reading restart file.", CURRENT_FUNCTION); } @@ -2986,11 +2985,11 @@ void CSolver::Read_SU2_Restart_Binary(CGeometry *geometry, const CConfig *config variable string names here. Only the master rank reads the header. ---*/ if (rank == MASTER_NODE) - MPI_File_read(fhw, Restart_Vars, nRestart_Vars, MPI_INT, MPI_STATUS_IGNORE); + MPI_File_read(fhw, Restart_Vars.data(), nRestart_Vars, MPI_INT, MPI_STATUS_IGNORE); /*--- Broadcast the number of variables to all procs and store clearly. ---*/ - SU2_MPI::Bcast(Restart_Vars, nRestart_Vars, MPI_INT, MASTER_NODE, SU2_MPI::GetComm()); + SU2_MPI::Bcast(Restart_Vars.data(), nRestart_Vars, MPI_INT, MASTER_NODE, SU2_MPI::GetComm()); /*--- Check that this is an SU2 binary file. SU2 binary files have the hex representation of "SU2" as the first int in the file. ---*/ @@ -3099,11 +3098,11 @@ void CSolver::Read_SU2_Restart_Binary(CGeometry *geometry, const CConfig *config /*--- For now, create a temp 1D buffer to read the data from file. ---*/ const int bufSize = nBlock*blocklen[0]; - Restart_Data = new passivedouble[bufSize]; + Restart_Data.resize(bufSize); /*--- Collective call for all ranks to read from their view simultaneously. ---*/ - MPI_File_read_all(fhw, Restart_Data, bufSize, MPI_DOUBLE, &status); + MPI_File_read_all(fhw, Restart_Data.data(), bufSize, MPI_DOUBLE, &status); /*--- All ranks close the file after writing. ---*/ @@ -3186,8 +3185,7 @@ void CSolver::InterpolateRestartData(const CGeometry *geometry, const CConfig *c sendBuf(iPoint,iVar) = Restart_Data[iPointDonor*nFields+iVar]; } - delete [] Restart_Data; - Restart_Data = nullptr; + Restart_Data = decltype(Restart_Data){}; /*--- Make room to receive donor data from other ranks, and to map it to target points. ---*/ @@ -3302,7 +3300,7 @@ void CSolver::InterpolateRestartData(const CGeometry *geometry, const CConfig *c /*--- Move to Restart_Data in ascending order of global index, which is how a matching restart would have been read. ---*/ - Restart_Data = new passivedouble[nPointDomain*nFields]; + Restart_Data.resize(nPointDomain*nFields); Restart_Vars[2] = nPointDomain; int counter = 0; @@ -4214,8 +4212,8 @@ void CSolver::BasicLoadRestart(CGeometry *geometry, const CConfig *config, const /*--- Delete the class memory that is used to load the restart. ---*/ - delete [] Restart_Vars; Restart_Vars = nullptr; - delete [] Restart_Data; Restart_Data = nullptr; + Restart_Vars = decltype(Restart_Vars){}; + Restart_Data = decltype(Restart_Data){}; /*--- Detect a wrong solution file ---*/ diff --git a/SU2_CFD/src/solvers/CSolverFactory.cpp b/SU2_CFD/src/solvers/CSolverFactory.cpp index cf252ba018d..c282c2a9a78 100644 --- a/SU2_CFD/src/solvers/CSolverFactory.cpp +++ b/SU2_CFD/src/solvers/CSolverFactory.cpp @@ -2,14 +2,14 @@ * \file CSolverFactory.cpp * \brief Main subroutines for CSolverFactoryclass. * \author T. Albring - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/src/solvers/CSpeciesFlameletSolver.cpp b/SU2_CFD/src/solvers/CSpeciesFlameletSolver.cpp index 58c20ca3cc7..66b90d3e39b 100644 --- a/SU2_CFD/src/solvers/CSpeciesFlameletSolver.cpp +++ b/SU2_CFD/src/solvers/CSpeciesFlameletSolver.cpp @@ -2,14 +2,14 @@ * \file CSpeciesFlameletSolver.cpp * \brief Main subroutines of CSpeciesFlameletSolver class * \author D. Mayer, T. Economon, N. Beishuizen, E. Bunschoten - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/src/solvers/CSpeciesSolver.cpp b/SU2_CFD/src/solvers/CSpeciesSolver.cpp index 3d5c5406a3b..f5f5ed16603 100644 --- a/SU2_CFD/src/solvers/CSpeciesSolver.cpp +++ b/SU2_CFD/src/solvers/CSpeciesSolver.cpp @@ -2,14 +2,14 @@ * \file CSpeciesSolver.cpp * \brief Main subroutines of CSpeciesSolver class * \author T. Kattmann - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -284,10 +284,8 @@ void CSpeciesSolver::LoadRestart(CGeometry** geometry, CSolver*** solver, CConfi BEGIN_SU2_OMP_SAFE_GLOBAL_ACCESS { /*--- Delete the class memory that is used to load the restart. ---*/ - delete[] Restart_Vars; - Restart_Vars = nullptr; - delete[] Restart_Data; - Restart_Data = nullptr; + Restart_Vars = decltype(Restart_Vars){}; + Restart_Data = decltype(Restart_Data){}; } END_SU2_OMP_SAFE_GLOBAL_ACCESS } diff --git a/SU2_CFD/src/solvers/CTemplateSolver.cpp b/SU2_CFD/src/solvers/CTemplateSolver.cpp index df1e6e2946a..abf2c1d86a7 100644 --- a/SU2_CFD/src/solvers/CTemplateSolver.cpp +++ b/SU2_CFD/src/solvers/CTemplateSolver.cpp @@ -2,14 +2,14 @@ * \file CTemplateSolver.cpp * \brief Subroutines to be implemented for any new solvers * \author F. Palacios - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/src/solvers/CTransLMSolver.cpp b/SU2_CFD/src/solvers/CTransLMSolver.cpp index 7d8fb2485a9..b67e1b1af96 100644 --- a/SU2_CFD/src/solvers/CTransLMSolver.cpp +++ b/SU2_CFD/src/solvers/CTransLMSolver.cpp @@ -2,14 +2,14 @@ * \file CTransLMSolver.cpp * \brief Main subroutines for Langtry-Menter Transition model solver. * \author A. Aranake, S. Kang. - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -592,10 +592,8 @@ void CTransLMSolver::LoadRestart(CGeometry** geometry, CSolver*** solver, CConfi BEGIN_SU2_OMP_SAFE_GLOBAL_ACCESS { /*--- Delete the class memory that is used to load the restart. ---*/ - delete[] Restart_Vars; - Restart_Vars = nullptr; - delete[] Restart_Data; - Restart_Data = nullptr; + Restart_Vars.clear(); + Restart_Data.clear(); } END_SU2_OMP_SAFE_GLOBAL_ACCESS diff --git a/SU2_CFD/src/solvers/CTurbSASolver.cpp b/SU2_CFD/src/solvers/CTurbSASolver.cpp index 2d301dc7722..f3a6d57b589 100644 --- a/SU2_CFD/src/solvers/CTurbSASolver.cpp +++ b/SU2_CFD/src/solvers/CTurbSASolver.cpp @@ -2,14 +2,14 @@ * \file CTurbSASolver.cpp * \brief Main subroutines of CTurbSASolver class * \author F. Palacios, A. Bueno - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/src/solvers/CTurbSSTSolver.cpp b/SU2_CFD/src/solvers/CTurbSSTSolver.cpp index e1e9ef644c7..1973b70a331 100644 --- a/SU2_CFD/src/solvers/CTurbSSTSolver.cpp +++ b/SU2_CFD/src/solvers/CTurbSSTSolver.cpp @@ -2,14 +2,14 @@ * \file CTurbSSTSolver.cpp * \brief Main subroutines of CTurbSSTSolver class * \author F. Palacios, A. Bueno - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/src/solvers/CTurbSolver.cpp b/SU2_CFD/src/solvers/CTurbSolver.cpp index 3277cd443e0..c4b5a0b2e2b 100644 --- a/SU2_CFD/src/solvers/CTurbSolver.cpp +++ b/SU2_CFD/src/solvers/CTurbSolver.cpp @@ -2,14 +2,14 @@ * \file CTurbSolver.cpp * \brief Main subroutines of CTurbSolver class * \author F. Palacios, A. Bueno - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -196,10 +196,8 @@ void CTurbSolver::LoadRestart(CGeometry** geometry, CSolver*** solver, CConfig* BEGIN_SU2_OMP_SAFE_GLOBAL_ACCESS { /*--- Delete the class memory that is used to load the restart. ---*/ - delete[] Restart_Vars; - Restart_Vars = nullptr; - delete[] Restart_Data; - Restart_Data = nullptr; + Restart_Vars = decltype(Restart_Vars){}; + Restart_Data = decltype(Restart_Data){}; } END_SU2_OMP_SAFE_GLOBAL_ACCESS } diff --git a/SU2_CFD/src/variables/CAdjEulerVariable.cpp b/SU2_CFD/src/variables/CAdjEulerVariable.cpp index 48591ed0aa2..896d6a935e5 100644 --- a/SU2_CFD/src/variables/CAdjEulerVariable.cpp +++ b/SU2_CFD/src/variables/CAdjEulerVariable.cpp @@ -2,14 +2,14 @@ * \file CAdjEulerVariable.cpp * \brief Definition of the solution fields. * \author F. Palacios, T. Economon - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/src/variables/CAdjNSVariable.cpp b/SU2_CFD/src/variables/CAdjNSVariable.cpp index 1753ae9eb4d..3e1fef4a720 100644 --- a/SU2_CFD/src/variables/CAdjNSVariable.cpp +++ b/SU2_CFD/src/variables/CAdjNSVariable.cpp @@ -2,14 +2,14 @@ * \file CAdjNSVariable.cpp * \brief Definition of the solution fields. * \author F. Palacios, T. Economon - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/src/variables/CAdjTurbVariable.cpp b/SU2_CFD/src/variables/CAdjTurbVariable.cpp index ff454b08c38..b8092f1c32d 100644 --- a/SU2_CFD/src/variables/CAdjTurbVariable.cpp +++ b/SU2_CFD/src/variables/CAdjTurbVariable.cpp @@ -2,14 +2,14 @@ * \file CAdjTurbVariable.cpp * \brief Definition of the solution fields. * \author F. Palacios, A. Bueno - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/src/variables/CBaselineVariable.cpp b/SU2_CFD/src/variables/CBaselineVariable.cpp index 8c8745758b9..30870eb14ed 100644 --- a/SU2_CFD/src/variables/CBaselineVariable.cpp +++ b/SU2_CFD/src/variables/CBaselineVariable.cpp @@ -2,14 +2,14 @@ * \file CBaselineVariable.cpp * \brief Definition of the solution fields. * \author F. Palacios, T. Economon - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/src/variables/CDiscAdjFEABoundVariable.cpp b/SU2_CFD/src/variables/CDiscAdjFEABoundVariable.cpp index d3454b8df60..8b89892ca29 100644 --- a/SU2_CFD/src/variables/CDiscAdjFEABoundVariable.cpp +++ b/SU2_CFD/src/variables/CDiscAdjFEABoundVariable.cpp @@ -2,14 +2,14 @@ * \file CDiscAdjFEAVariable.cpp * \brief Definition of the variables for FEM adjoint elastic structural problems. * \author Ruben Sanchez - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/src/variables/CDiscAdjMeshBoundVariable.cpp b/SU2_CFD/src/variables/CDiscAdjMeshBoundVariable.cpp index 8c56d503579..39151c49039 100644 --- a/SU2_CFD/src/variables/CDiscAdjMeshBoundVariable.cpp +++ b/SU2_CFD/src/variables/CDiscAdjMeshBoundVariable.cpp @@ -2,14 +2,14 @@ * \file CDiscAdjMeshVariable.cpp * \brief Main subroutines for the discrete adjoint mesh variable structure. * \author Ruben Sanchez - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/src/variables/CDiscAdjVariable.cpp b/SU2_CFD/src/variables/CDiscAdjVariable.cpp index 2a6aa681f3a..a4a29700f6d 100644 --- a/SU2_CFD/src/variables/CDiscAdjVariable.cpp +++ b/SU2_CFD/src/variables/CDiscAdjVariable.cpp @@ -2,14 +2,14 @@ * \file CDiscAdjVariable.cpp * \brief Main subroutines for the discrete adjoint variable structure. * \author T. Albring - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/src/variables/CEulerVariable.cpp b/SU2_CFD/src/variables/CEulerVariable.cpp index 84cb00eb67c..9ee74babaf0 100644 --- a/SU2_CFD/src/variables/CEulerVariable.cpp +++ b/SU2_CFD/src/variables/CEulerVariable.cpp @@ -2,14 +2,14 @@ * \file CEulerVariable.cpp * \brief Definition of the solution fields. * \author F. Palacios, T. Economon - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/src/variables/CFEABoundVariable.cpp b/SU2_CFD/src/variables/CFEABoundVariable.cpp index a1ab96467d3..e6ac5077394 100644 --- a/SU2_CFD/src/variables/CFEABoundVariable.cpp +++ b/SU2_CFD/src/variables/CFEABoundVariable.cpp @@ -2,14 +2,14 @@ * \file CFEABoundVariable.cpp * \brief Definition of the variables for FEM elastic structural problems. * \author R. Sanchez - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/src/variables/CFEAVariable.cpp b/SU2_CFD/src/variables/CFEAVariable.cpp index 8e3c32c36fc..558edcc8ead 100644 --- a/SU2_CFD/src/variables/CFEAVariable.cpp +++ b/SU2_CFD/src/variables/CFEAVariable.cpp @@ -2,14 +2,14 @@ * \file CFEAVariable.cpp * \brief Definition of the variables for FEM elastic structural problems. * \author R. Sanchez - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/src/variables/CFlowVariable.cpp b/SU2_CFD/src/variables/CFlowVariable.cpp index 050f3e862d1..c094bc4e043 100644 --- a/SU2_CFD/src/variables/CFlowVariable.cpp +++ b/SU2_CFD/src/variables/CFlowVariable.cpp @@ -1,14 +1,14 @@ /*! * \file CFlowVariable.cpp * \brief Definition of common solution fields for flow solvers. - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/src/variables/CHeatVariable.cpp b/SU2_CFD/src/variables/CHeatVariable.cpp index 158aec9bcc6..6ed261ec015 100644 --- a/SU2_CFD/src/variables/CHeatVariable.cpp +++ b/SU2_CFD/src/variables/CHeatVariable.cpp @@ -2,14 +2,14 @@ * \file CHeatVariable.cpp * \brief Definition of the variables for heat equation problems. * \author F. Palacios, T. Economon - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/src/variables/CIncEulerVariable.cpp b/SU2_CFD/src/variables/CIncEulerVariable.cpp index 4fca7f5c357..aeed1afeebd 100644 --- a/SU2_CFD/src/variables/CIncEulerVariable.cpp +++ b/SU2_CFD/src/variables/CIncEulerVariable.cpp @@ -2,14 +2,14 @@ * \file CIncEulerVariable.cpp * \brief Definition of the variable classes for incompressible flow. * \author F. Palacios, T. Economon - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/src/variables/CIncNSVariable.cpp b/SU2_CFD/src/variables/CIncNSVariable.cpp index e32b8d6dd73..7aee6086d05 100644 --- a/SU2_CFD/src/variables/CIncNSVariable.cpp +++ b/SU2_CFD/src/variables/CIncNSVariable.cpp @@ -2,14 +2,14 @@ * \file CIncNSVariable.cpp * \brief Definition of the variable classes for incompressible flow. * \author F. Palacios, T. Economon - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/src/variables/CMeshBoundVariable.cpp b/SU2_CFD/src/variables/CMeshBoundVariable.cpp index 8a981ef16d1..26b3b6996f5 100644 --- a/SU2_CFD/src/variables/CMeshBoundVariable.cpp +++ b/SU2_CFD/src/variables/CMeshBoundVariable.cpp @@ -2,14 +2,14 @@ * \file CMeshBoundVariable.cpp * \brief Definition of the boundary variables for mesh motion using a pseudo-elastic approach. * \author Ruben Sanchez - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/src/variables/CMeshElement.cpp b/SU2_CFD/src/variables/CMeshElement.cpp index 78794d873fc..fed9a6cf0f0 100644 --- a/SU2_CFD/src/variables/CMeshElement.cpp +++ b/SU2_CFD/src/variables/CMeshElement.cpp @@ -2,14 +2,14 @@ * \file CMeshElement.cpp * \brief Definition of the mesh elements for mesh deformation using a pseudo-elastic approach. * \author Ruben Sanchez - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/src/variables/CMeshVariable.cpp b/SU2_CFD/src/variables/CMeshVariable.cpp index c494d0447f7..bfe4a03f81a 100644 --- a/SU2_CFD/src/variables/CMeshVariable.cpp +++ b/SU2_CFD/src/variables/CMeshVariable.cpp @@ -2,14 +2,14 @@ * \file CMeshVariable.cpp * \brief Definition of the variables for mesh motion using a pseudo-elastic approach. * \author Ruben Sanchez - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/src/variables/CNEMOEulerVariable.cpp b/SU2_CFD/src/variables/CNEMOEulerVariable.cpp index 2d8690c3ffb..601d7cbea2b 100644 --- a/SU2_CFD/src/variables/CNEMOEulerVariable.cpp +++ b/SU2_CFD/src/variables/CNEMOEulerVariable.cpp @@ -2,14 +2,14 @@ * \file CNEMOEulerVariable.cpp * \brief Definition of the solution fields. * \author C. Garbacz, W. Maier, S.R. Copeland - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/src/variables/CNEMONSVariable.cpp b/SU2_CFD/src/variables/CNEMONSVariable.cpp index 360d996eb72..0670cee10c7 100644 --- a/SU2_CFD/src/variables/CNEMONSVariable.cpp +++ b/SU2_CFD/src/variables/CNEMONSVariable.cpp @@ -2,14 +2,14 @@ * \file CNEMONSVariable.cpp * \brief Definition of the solution fields. * \author C. Garbacz, W. Maier, S.R. Copeland - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/src/variables/CNSVariable.cpp b/SU2_CFD/src/variables/CNSVariable.cpp index b2fe70b35cc..59032c525c5 100644 --- a/SU2_CFD/src/variables/CNSVariable.cpp +++ b/SU2_CFD/src/variables/CNSVariable.cpp @@ -2,14 +2,14 @@ * \file CNSVariable.cpp * \brief Definition of the solution fields. * \author F. Palacios, T. Economon - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/src/variables/CRadP1Variable.cpp b/SU2_CFD/src/variables/CRadP1Variable.cpp index 529fe578dec..5524e6c6112 100644 --- a/SU2_CFD/src/variables/CRadP1Variable.cpp +++ b/SU2_CFD/src/variables/CRadP1Variable.cpp @@ -2,14 +2,14 @@ * \file CRadP1Variable.cpp * \brief Definition of the P1 model variables * \author Ruben Sanchez - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/src/variables/CRadVariable.cpp b/SU2_CFD/src/variables/CRadVariable.cpp index 97bcdf1e934..304cbb141fc 100644 --- a/SU2_CFD/src/variables/CRadVariable.cpp +++ b/SU2_CFD/src/variables/CRadVariable.cpp @@ -2,14 +2,14 @@ * \file CRadVariable.cpp * \brief Definition of the radiation variables * \author Ruben Sanchez - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/src/variables/CScalarVariable.cpp b/SU2_CFD/src/variables/CScalarVariable.cpp index fcb9a491eaa..49eff3f8ec3 100644 --- a/SU2_CFD/src/variables/CScalarVariable.cpp +++ b/SU2_CFD/src/variables/CScalarVariable.cpp @@ -2,14 +2,14 @@ * \file CScalarVariable.cpp * \brief Definition of the solution fields. * \author F. Palacios, A. Bueno - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/src/variables/CSobolevSmoothingVariable.cpp b/SU2_CFD/src/variables/CSobolevSmoothingVariable.cpp index d332aa71720..a9362930d80 100644 --- a/SU2_CFD/src/variables/CSobolevSmoothingVariable.cpp +++ b/SU2_CFD/src/variables/CSobolevSmoothingVariable.cpp @@ -2,14 +2,14 @@ * \file CSobolevSmoothingVariable.cpp * \brief Definition of the variables for gradient smoothing problems. * \author T. Dick - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/src/variables/CSpeciesFlameletVariable.cpp b/SU2_CFD/src/variables/CSpeciesFlameletVariable.cpp index 658d5c85722..da10ba21bd8 100644 --- a/SU2_CFD/src/variables/CSpeciesFlameletVariable.cpp +++ b/SU2_CFD/src/variables/CSpeciesFlameletVariable.cpp @@ -2,14 +2,14 @@ * \file CSpeciesFlameletVariable.cpp * \brief Definition of the variable fields for the flamelet class. * \author D. Mayer, T. Economon, N. Beishuizen - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/src/variables/CSpeciesVariable.cpp b/SU2_CFD/src/variables/CSpeciesVariable.cpp index ddf9f1dd726..3372455937f 100644 --- a/SU2_CFD/src/variables/CSpeciesVariable.cpp +++ b/SU2_CFD/src/variables/CSpeciesVariable.cpp @@ -2,14 +2,14 @@ * \file CSpeciesVariable.cpp * \brief Definition of the solution fields. * \author T. Kattmann - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/src/variables/CTransLMVariable.cpp b/SU2_CFD/src/variables/CTransLMVariable.cpp index c5a4a503fa6..551968b1c35 100644 --- a/SU2_CFD/src/variables/CTransLMVariable.cpp +++ b/SU2_CFD/src/variables/CTransLMVariable.cpp @@ -2,14 +2,14 @@ * \file CTransLMVariable.cpp * \brief Definition of the solution fields. * \author A. Aranake, S. Kang - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/src/variables/CTurbSAVariable.cpp b/SU2_CFD/src/variables/CTurbSAVariable.cpp index 454ce5734a8..ac5cee3dc3d 100644 --- a/SU2_CFD/src/variables/CTurbSAVariable.cpp +++ b/SU2_CFD/src/variables/CTurbSAVariable.cpp @@ -2,14 +2,14 @@ * \file CTurbSAVariable.cpp * \brief Definition of the solution fields. * \author F. Palacios, A. Bueno - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/src/variables/CTurbSSTVariable.cpp b/SU2_CFD/src/variables/CTurbSSTVariable.cpp index 9778f1e37cc..3b88c4b8f3f 100644 --- a/SU2_CFD/src/variables/CTurbSSTVariable.cpp +++ b/SU2_CFD/src/variables/CTurbSSTVariable.cpp @@ -2,14 +2,14 @@ * \file CTurbSSTVariable.cpp * \brief Definition of the solution fields. * \author F. Palacios, A. Bueno - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/src/variables/CTurbVariable.cpp b/SU2_CFD/src/variables/CTurbVariable.cpp index 54bede5033f..7fcc357c0ee 100644 --- a/SU2_CFD/src/variables/CTurbVariable.cpp +++ b/SU2_CFD/src/variables/CTurbVariable.cpp @@ -2,14 +2,14 @@ * \file CTurbVariable.cpp * \brief Definition of the solution fields. * \author F. Palacios, A. Bueno - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_CFD/src/variables/CVariable.cpp b/SU2_CFD/src/variables/CVariable.cpp index 601a25f62bc..9f307fd49f2 100644 --- a/SU2_CFD/src/variables/CVariable.cpp +++ b/SU2_CFD/src/variables/CVariable.cpp @@ -2,14 +2,14 @@ * \file CVariable.cpp * \brief Definition of the solution fields. * \author F. Palacios, T. Economon - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_DEF/include/drivers/CDeformationDriver.hpp b/SU2_DEF/include/drivers/CDeformationDriver.hpp index ae731d601e7..fc5fecf3591 100644 --- a/SU2_DEF/include/drivers/CDeformationDriver.hpp +++ b/SU2_DEF/include/drivers/CDeformationDriver.hpp @@ -2,14 +2,14 @@ * \file CDeformationDriver.hpp * \brief Headers of the main subroutines for driving the mesh deformation. * \author A. Gastaldi, H. Patel - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_DEF/include/drivers/CDiscAdjDeformationDriver.hpp b/SU2_DEF/include/drivers/CDiscAdjDeformationDriver.hpp index 2feddd82224..4300529cd98 100644 --- a/SU2_DEF/include/drivers/CDiscAdjDeformationDriver.hpp +++ b/SU2_DEF/include/drivers/CDiscAdjDeformationDriver.hpp @@ -1,15 +1,15 @@ /*! - * \file CDiscAdjDeformationDriver.cpp + * \file CDiscAdjDeformationDriver.hpp * \brief Headers of the main subroutines for driving the projection of sensitivities. * \author T. Economon, H. Kline, R. Sanchez, A. Gastaldi, H. Patel - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_DEF/src/SU2_DEF.cpp b/SU2_DEF/src/SU2_DEF.cpp index 2597ec778c0..7417cc40422 100644 --- a/SU2_DEF/src/SU2_DEF.cpp +++ b/SU2_DEF/src/SU2_DEF.cpp @@ -2,14 +2,14 @@ * \file SU2_DEF.cpp * \brief Main file of Mesh Deformation Code (SU2_DEF). * \author F. Palacios, T. Economon - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_DEF/src/drivers/CDeformationDriver.cpp b/SU2_DEF/src/drivers/CDeformationDriver.cpp index 4a147ff55ac..ed33ef219bc 100644 --- a/SU2_DEF/src/drivers/CDeformationDriver.cpp +++ b/SU2_DEF/src/drivers/CDeformationDriver.cpp @@ -2,14 +2,14 @@ * \file CDeformationDriver.cpp * \brief Main subroutines for driving the mesh deformation. * \author A. Gastaldi, H. Patel - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser/ General Public diff --git a/SU2_DEF/src/drivers/CDiscAdjDeformationDriver.cpp b/SU2_DEF/src/drivers/CDiscAdjDeformationDriver.cpp index 99c3546389b..6e07e6b4108 100644 --- a/SU2_DEF/src/drivers/CDiscAdjDeformationDriver.cpp +++ b/SU2_DEF/src/drivers/CDiscAdjDeformationDriver.cpp @@ -2,14 +2,14 @@ * \file CDiscAdjDeformationDriver.cpp * \brief Main subroutines for driving the projection of sensitivities. * \author T. Economon, H. Kline, R. Sanchez, A. Gastaldi, H. Patel - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_DOT/src/SU2_DOT.cpp b/SU2_DOT/src/SU2_DOT.cpp index 92b063447f6..3e538d539aa 100644 --- a/SU2_DOT/src/SU2_DOT.cpp +++ b/SU2_DOT/src/SU2_DOT.cpp @@ -2,14 +2,14 @@ * \file SU2_DOT.cpp * \brief Main file of the Gradient Projection Code (SU2_DOT). * \author F. Palacios, T. Economon - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_GEO/include/SU2_GEO.hpp b/SU2_GEO/include/SU2_GEO.hpp index 55e4aa2a3fe..929edcdc591 100644 --- a/SU2_GEO/include/SU2_GEO.hpp +++ b/SU2_GEO/include/SU2_GEO.hpp @@ -3,14 +3,14 @@ * \brief Headers of the main subroutines of the code SU2_GEO. * The subroutines and functions are in the SU2_GEO.cpp file. * \author F. Palacios, T. Economon - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_GEO/src/SU2_GEO.cpp b/SU2_GEO/src/SU2_GEO.cpp index a509fbadac8..86b9ee5c6e0 100644 --- a/SU2_GEO/src/SU2_GEO.cpp +++ b/SU2_GEO/src/SU2_GEO.cpp @@ -2,14 +2,14 @@ * \file SU2_GEO.cpp * \brief Main file of the Geometry Definition Code (SU2_GEO). * \author F. Palacios, T. Economon - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_PY/FSI_tools/FSIInterface.py b/SU2_PY/FSI_tools/FSIInterface.py index 4375d53c58d..1c5b57051f2 100644 --- a/SU2_PY/FSI_tools/FSIInterface.py +++ b/SU2_PY/FSI_tools/FSIInterface.py @@ -3,14 +3,14 @@ ## \file FSIInterface.py # \brief FSI interface class that handles fluid/solid solvers synchronisation and communication. # \authors Nicola Fonzi, Vittorio Cavalieri based on the work of David Thomas -# \version 8.0.0 "Harrier" +# \version 8.0.1 "Harrier" # # SU2 Project Website: https://su2code.github.io # # The SU2 Project is maintained by the SU2 Foundation # (http://su2foundation.org) # -# Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) +# Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) # # SU2 is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public diff --git a/SU2_PY/FSI_tools/FSI_config.py b/SU2_PY/FSI_tools/FSI_config.py index 12828d7721a..66b443f801e 100644 --- a/SU2_PY/FSI_tools/FSI_config.py +++ b/SU2_PY/FSI_tools/FSI_config.py @@ -3,14 +3,14 @@ ## \file FSI_config.py # \brief Python class for handling configuration file for FSI computation. # \authors Nicola Fonzi, Vittorio Cavalieri based on the work of David Thomas -# \version 8.0.0 "Harrier" +# \version 8.0.1 "Harrier" # # SU2 Project Website: https://su2code.github.io # # The SU2 Project is maintained by the SU2 Foundation # (http://su2foundation.org) # -# Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) +# Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) # # SU2 is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public diff --git a/SU2_PY/OptimalPropeller.py b/SU2_PY/OptimalPropeller.py index fff4202c644..5070173db6a 100644 --- a/SU2_PY/OptimalPropeller.py +++ b/SU2_PY/OptimalPropeller.py @@ -1,14 +1,14 @@ ## \file OptimalPropeller.py # \brief Python script for generating the ActuatorDisk.dat file. # \author E. Saetta, L. Russo, R. Tognaccini -# \version 8.0.0 "Harrier" +# \version 8.0.1 "Harrier" # # SU2 Project Website: https://su2code.github.io # # The SU2 Project is maintained by the SU2 Foundation # (http://su2foundation.org) # -# Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) +# Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) # # SU2 is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public diff --git a/SU2_PY/SU2/eval/design.py b/SU2_PY/SU2/eval/design.py index fb7d61b4ad2..4fccc843ace 100644 --- a/SU2_PY/SU2/eval/design.py +++ b/SU2_PY/SU2/eval/design.py @@ -3,14 +3,14 @@ ## \file design.py # \brief python package for designs # \author T. Lukaczyk, F. Palacios -# \version 8.0.0 "Harrier" +# \version 8.0.1 "Harrier" # # SU2 Project Website: https://su2code.github.io # # The SU2 Project is maintained by the SU2 Foundation # (http://su2foundation.org) # -# Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) +# Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) # # SU2 is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public diff --git a/SU2_PY/SU2/eval/functions.py b/SU2_PY/SU2/eval/functions.py index c215a863426..94ce20f0754 100644 --- a/SU2_PY/SU2/eval/functions.py +++ b/SU2_PY/SU2/eval/functions.py @@ -3,14 +3,14 @@ ## \file functions.py # \brief python package for functions # \author T. Lukaczyk, F. Palacios -# \version 8.0.0 "Harrier" +# \version 8.0.1 "Harrier" # # SU2 Project Website: https://su2code.github.io # # The SU2 Project is maintained by the SU2 Foundation # (http://su2foundation.org) # -# Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) +# Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) # # SU2 is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public diff --git a/SU2_PY/SU2/eval/gradients.py b/SU2_PY/SU2/eval/gradients.py index f768fa69e90..64201e3158b 100644 --- a/SU2_PY/SU2/eval/gradients.py +++ b/SU2_PY/SU2/eval/gradients.py @@ -3,14 +3,14 @@ ## \file gradients.py # \brief python package for gradients # \author T. Lukaczyk, F. Palacios -# \version 8.0.0 "Harrier" +# \version 8.0.1 "Harrier" # # SU2 Project Website: https://su2code.github.io # # The SU2 Project is maintained by the SU2 Foundation # (http://su2foundation.org) # -# Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) +# Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) # # SU2 is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public diff --git a/SU2_PY/SU2/io/config.py b/SU2_PY/SU2/io/config.py index 5768b0660f3..f60608c7552 100755 --- a/SU2_PY/SU2/io/config.py +++ b/SU2_PY/SU2/io/config.py @@ -3,14 +3,14 @@ ## \file config.py # \brief python package for config # \author T. Lukaczyk, F. Palacios -# \version 8.0.0 "Harrier" +# \version 8.0.1 "Harrier" # # SU2 Project Website: https://su2code.github.io # # The SU2 Project is maintained by the SU2 Foundation # (http://su2foundation.org) # -# Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) +# Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) # # SU2 is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public diff --git a/SU2_PY/SU2/io/config_options.py b/SU2_PY/SU2/io/config_options.py index dce4261f427..f5db7e1b916 100644 --- a/SU2_PY/SU2/io/config_options.py +++ b/SU2_PY/SU2/io/config_options.py @@ -1,14 +1,14 @@ # \file config_options.py # \brief python package for config # \author T. Lukaczyk, F. Palacios -# \version 8.0.0 "Harrier" +# \version 8.0.1 "Harrier" # # SU2 Project Website: https://su2code.github.io # # The SU2 Project is maintained by the SU2 Foundation # (http://su2foundation.org) # -# Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) +# Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) # # SU2 is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public diff --git a/SU2_PY/SU2/io/data.py b/SU2_PY/SU2/io/data.py index 850f3eb4eec..264e7585f5b 100644 --- a/SU2_PY/SU2/io/data.py +++ b/SU2_PY/SU2/io/data.py @@ -3,14 +3,14 @@ ## \file data.py # \brief python package for data utility functions # \author T. Lukaczyk, F. Palacios -# \version 8.0.0 "Harrier" +# \version 8.0.1 "Harrier" # # SU2 Project Website: https://su2code.github.io # # The SU2 Project is maintained by the SU2 Foundation # (http://su2foundation.org) # -# Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) +# Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) # # SU2 is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public diff --git a/SU2_PY/SU2/io/filelock.py b/SU2_PY/SU2/io/filelock.py index 0bdda9ae390..d3bc8ffda84 100644 --- a/SU2_PY/SU2/io/filelock.py +++ b/SU2_PY/SU2/io/filelock.py @@ -3,14 +3,14 @@ ## \file filelock.py # \brief python package for filelocking # \author T. Lukaczyk, F. Palacios -# \version 8.0.0 "Harrier" +# \version 8.0.1 "Harrier" # # SU2 Project Website: https://su2code.github.io # # The SU2 Project is maintained by the SU2 Foundation # (http://su2foundation.org) # -# Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) +# Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) # # SU2 is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public diff --git a/SU2_PY/SU2/io/redirect.py b/SU2_PY/SU2/io/redirect.py index 4cf248c7145..7efbc55c889 100644 --- a/SU2_PY/SU2/io/redirect.py +++ b/SU2_PY/SU2/io/redirect.py @@ -3,14 +3,14 @@ ## \file redirect.py # \brief python package for file redirection # \author T. Lukaczyk, F. Palacios -# \version 8.0.0 "Harrier" +# \version 8.0.1 "Harrier" # # SU2 Project Website: https://su2code.github.io # # The SU2 Project is maintained by the SU2 Foundation # (http://su2foundation.org) # -# Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) +# Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) # # SU2 is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public diff --git a/SU2_PY/SU2/io/state.py b/SU2_PY/SU2/io/state.py index 584f4ab1f28..1026c5de8f3 100644 --- a/SU2_PY/SU2/io/state.py +++ b/SU2_PY/SU2/io/state.py @@ -3,14 +3,14 @@ ## \file state.py # \brief python package for state # \author T. Lukaczyk, F. Palacios -# \version 8.0.0 "Harrier" +# \version 8.0.1 "Harrier" # # SU2 Project Website: https://su2code.github.io # # The SU2 Project is maintained by the SU2 Foundation # (http://su2foundation.org) # -# Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) +# Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) # # SU2 is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public diff --git a/SU2_PY/SU2/io/tools.py b/SU2_PY/SU2/io/tools.py index 35a5d2ef45f..b10cb7b9f54 100755 --- a/SU2_PY/SU2/io/tools.py +++ b/SU2_PY/SU2/io/tools.py @@ -3,14 +3,14 @@ ## \file tools.py # \brief file i/o functions # \author T. Lukaczyk, F. Palacios -# \version 8.0.0 "Harrier" +# \version 8.0.1 "Harrier" # # SU2 Project Website: https://su2code.github.io # # The SU2 Project is maintained by the SU2 Foundation # (http://su2foundation.org) # -# Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) +# Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) # # SU2 is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public diff --git a/SU2_PY/SU2/opt/project.py b/SU2_PY/SU2/opt/project.py index 5a26924f481..17fac091970 100644 --- a/SU2_PY/SU2/opt/project.py +++ b/SU2_PY/SU2/opt/project.py @@ -3,14 +3,14 @@ ## \file project.py # \brief package for optimization projects # \author T. Lukaczyk, F. Palacios -# \version 8.0.0 "Harrier" +# \version 8.0.1 "Harrier" # # SU2 Project Website: https://su2code.github.io # # The SU2 Project is maintained by the SU2 Foundation # (http://su2foundation.org) # -# Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) +# Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) # # SU2 is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public diff --git a/SU2_PY/SU2/opt/scipy_tools.py b/SU2_PY/SU2/opt/scipy_tools.py index 1fdc5d81cca..1418314c2ca 100644 --- a/SU2_PY/SU2/opt/scipy_tools.py +++ b/SU2_PY/SU2/opt/scipy_tools.py @@ -3,14 +3,14 @@ ## \file scipy_tools.py # \brief tools for interfacing with scipy # \author T. Lukaczyk, F. Palacios -# \version 8.0.0 "Harrier" +# \version 8.0.1 "Harrier" # # SU2 Project Website: https://su2code.github.io # # The SU2 Project is maintained by the SU2 Foundation # (http://su2foundation.org) # -# Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) +# Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) # # SU2 is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public diff --git a/SU2_PY/SU2/run/adjoint.py b/SU2_PY/SU2/run/adjoint.py index 394bbae7b94..c9afa8de96a 100644 --- a/SU2_PY/SU2/run/adjoint.py +++ b/SU2_PY/SU2/run/adjoint.py @@ -3,14 +3,14 @@ ## \file adjoint.py # \brief python package for running adjoint problems # \author T. Lukaczyk, F. Palacios -# \version 8.0.0 "Harrier" +# \version 8.0.1 "Harrier" # # SU2 Project Website: https://su2code.github.io # # The SU2 Project is maintained by the SU2 Foundation # (http://su2foundation.org) # -# Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) +# Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) # # SU2 is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public diff --git a/SU2_PY/SU2/run/deform.py b/SU2_PY/SU2/run/deform.py index 28b033621a1..6724eb51da0 100644 --- a/SU2_PY/SU2/run/deform.py +++ b/SU2_PY/SU2/run/deform.py @@ -3,14 +3,14 @@ ## \file deform.py # \brief python package for deforming meshes # \author T. Lukaczyk, F. Palacios -# \version 8.0.0 "Harrier" +# \version 8.0.1 "Harrier" # # SU2 Project Website: https://su2code.github.io # # The SU2 Project is maintained by the SU2 Foundation # (http://su2foundation.org) # -# Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) +# Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) # # SU2 is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public diff --git a/SU2_PY/SU2/run/direct.py b/SU2_PY/SU2/run/direct.py index 98ef77ea4e6..4610d8f938f 100644 --- a/SU2_PY/SU2/run/direct.py +++ b/SU2_PY/SU2/run/direct.py @@ -3,14 +3,14 @@ ## \file direct.py # \brief python package for running direct solutions # \author T. Lukaczyk, F. Palacios -# \version 8.0.0 "Harrier" +# \version 8.0.1 "Harrier" # # SU2 Project Website: https://su2code.github.io # # The SU2 Project is maintained by the SU2 Foundation # (http://su2foundation.org) # -# Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) +# Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) # # SU2 is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public diff --git a/SU2_PY/SU2/run/geometry.py b/SU2_PY/SU2/run/geometry.py index 3257a332f10..acd0caec0fb 100644 --- a/SU2_PY/SU2/run/geometry.py +++ b/SU2_PY/SU2/run/geometry.py @@ -3,14 +3,14 @@ ## \file geometry.py # \brief python package for running geometry analyses # \author T. Lukaczyk, F. Palacios -# \version 8.0.0 "Harrier" +# \version 8.0.1 "Harrier" # # SU2 Project Website: https://su2code.github.io # # The SU2 Project is maintained by the SU2 Foundation # (http://su2foundation.org) # -# Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) +# Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) # # SU2 is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public diff --git a/SU2_PY/SU2/run/interface.py b/SU2_PY/SU2/run/interface.py index 796c5977091..73dba4801a6 100644 --- a/SU2_PY/SU2/run/interface.py +++ b/SU2_PY/SU2/run/interface.py @@ -3,14 +3,14 @@ ## \file interface.py # \brief python package interfacing with the SU2 suite # \author T. Lukaczyk, F. Palacios -# \version 8.0.0 "Harrier" +# \version 8.0.1 "Harrier" # # SU2 Project Website: https://su2code.github.io # # The SU2 Project is maintained by the SU2 Foundation # (http://su2foundation.org) # -# Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) +# Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) # # SU2 is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public diff --git a/SU2_PY/SU2/run/merge.py b/SU2_PY/SU2/run/merge.py index 39b7a38e181..027937dc252 100644 --- a/SU2_PY/SU2/run/merge.py +++ b/SU2_PY/SU2/run/merge.py @@ -1,14 +1,14 @@ ## \file merge.py # \brief python package for merging meshes # \author T. Economon, T. Lukaczyk, F. Palacios -# \version 8.0.0 "Harrier" +# \version 8.0.1 "Harrier" # # SU2 Project Website: https://su2code.github.io # # The SU2 Project is maintained by the SU2 Foundation # (http://su2foundation.org) # -# Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) +# Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) # # SU2 is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public diff --git a/SU2_PY/SU2/run/projection.py b/SU2_PY/SU2/run/projection.py index 4afbc0d6884..f425b22f88f 100644 --- a/SU2_PY/SU2/run/projection.py +++ b/SU2_PY/SU2/run/projection.py @@ -3,14 +3,14 @@ ## \file projection.py # \brief python package for running gradient projection # \author T. Lukaczyk, F. Palacios -# \version 8.0.0 "Harrier" +# \version 8.0.1 "Harrier" # # SU2 Project Website: https://su2code.github.io # # The SU2 Project is maintained by the SU2 Foundation # (http://su2foundation.org) # -# Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) +# Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) # # SU2 is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public diff --git a/SU2_PY/SU2/util/filter_adjoint.py b/SU2_PY/SU2/util/filter_adjoint.py index 226f505b6f5..3b9cd4dc87c 100644 --- a/SU2_PY/SU2/util/filter_adjoint.py +++ b/SU2_PY/SU2/util/filter_adjoint.py @@ -3,14 +3,14 @@ ## \file filter_adjoint.py # \brief Applies various filters to the adjoint surface sensitivities of an airfoil # \author T. Lukaczyk, F. Palacios -# \version 8.0.0 "Harrier" +# \version 8.0.1 "Harrier" # # SU2 Project Website: https://su2code.github.io # # The SU2 Project is maintained by the SU2 Foundation # (http://su2foundation.org) # -# Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) +# Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) # # SU2 is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public diff --git a/SU2_PY/SU2/util/plot.py b/SU2_PY/SU2/util/plot.py index 0450f2a96ca..73f1f00f649 100644 --- a/SU2_PY/SU2/util/plot.py +++ b/SU2_PY/SU2/util/plot.py @@ -3,14 +3,14 @@ ## \file plot.py # \brief python package for plotting # \author T. Lukaczyk, F. Palacios -# \version 8.0.0 "Harrier" +# \version 8.0.1 "Harrier" # # SU2 Project Website: https://su2code.github.io # # The SU2 Project is maintained by the SU2 Foundation # (http://su2foundation.org) # -# Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) +# Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) # # SU2 is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public diff --git a/SU2_PY/SU2/util/polarSweepLib.py b/SU2_PY/SU2/util/polarSweepLib.py index 2114d8c9966..30f785b8734 100755 --- a/SU2_PY/SU2/util/polarSweepLib.py +++ b/SU2_PY/SU2/util/polarSweepLib.py @@ -1,14 +1,14 @@ # \file polarSweepLib.py # \brief Functions library for compute_polar.py script. # \author E Arad -# \version 8.0.0 "Harrier" +# \version 8.0.1 "Harrier" # # SU2 Project Website: https://su2code.github.io # # The SU2 Project is maintained by the SU2 Foundation # (http://su2foundation.org) # -# Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) +# Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) # # SU2 is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public diff --git a/SU2_PY/SU2/util/which.py b/SU2_PY/SU2/util/which.py index e4bb84f889f..7aec152b10e 100644 --- a/SU2_PY/SU2/util/which.py +++ b/SU2_PY/SU2/util/which.py @@ -3,14 +3,14 @@ ## \file which.py # \brief looks for where a program is # \author T. Lukaczyk, F. Palacios -# \version 8.0.0 "Harrier" +# \version 8.0.1 "Harrier" # # SU2 Project Website: https://su2code.github.io # # The SU2 Project is maintained by the SU2 Foundation # (http://su2foundation.org) # -# Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) +# Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) # # SU2 is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public diff --git a/SU2_PY/SU2_CFD.py b/SU2_PY/SU2_CFD.py index fe786936fea..96e5fcbb1b8 100755 --- a/SU2_PY/SU2_CFD.py +++ b/SU2_PY/SU2_CFD.py @@ -3,14 +3,14 @@ ## \file SU2_CFD.py # \brief Python script to launch SU2_CFD through the Python Wrapper. # \author David Thomas -# \version 8.0.0 "Harrier" +# \version 8.0.1 "Harrier" # # SU2 Project Website: https://su2code.github.io # # The SU2 Project is maintained by the SU2 Foundation # (http://su2foundation.org) # -# Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) +# Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) # # SU2 is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public diff --git a/SU2_PY/SU2_Nastran/pysu2_nastran.py b/SU2_PY/SU2_Nastran/pysu2_nastran.py index b0d3b8c6965..4bba2dd5fce 100644 --- a/SU2_PY/SU2_Nastran/pysu2_nastran.py +++ b/SU2_PY/SU2_Nastran/pysu2_nastran.py @@ -3,14 +3,14 @@ ## \file pysu2_nastran.py # \brief Structural solver using Nastran models # \authors Nicola Fonzi, Vittorio Cavalieri, based on the work of David Thomas -# \version 8.0.0 "Harrier" +# \version 8.0.1 "Harrier" # # SU2 Project Website: https://su2code.github.io # # The SU2 Project is maintained by the SU2 Foundation # (http://su2foundation.org) # -# Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) +# Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) # # SU2 is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public diff --git a/SU2_PY/change_version_number.py b/SU2_PY/change_version_number.py index e6358c8b73e..68cf39905c4 100755 --- a/SU2_PY/change_version_number.py +++ b/SU2_PY/change_version_number.py @@ -3,14 +3,14 @@ ## \file change_version_number.py # \brief Python script for updating the version number of the SU2 suite. # \author A. Aranake -# \version 8.0.0 "Harrier" +# \version 8.0.1 "Harrier" # # SU2 Project Website: https://su2code.github.io # # The SU2 Project is maintained by the SU2 Foundation # (http://su2foundation.org) # -# Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) +# Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) # # SU2 is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public @@ -55,13 +55,13 @@ if not options.version: parser.error("new version number must be provided with -v option") -oldvers = '8.0.0 "Harrier"' -oldvers_q = r"8.0.0 \"Harrier\"" +oldvers = '8.0.1 "Harrier"' +oldvers_q = r"8.0.1 \"Harrier\"" newvers = str(options.version) + ' "' + str(options.releasename) + '"' newvers_q = str(options.version) + ' \\"' + str(options.releasename) + '\\"' -# oldvers = 'Copyright 2012-2023, SU2' +# oldvers = 'Copyright 2012-2024, SU2' # oldvers_q = oldvers -# newvers = 'Copyright 2012-2023, SU2' +# newvers = 'Copyright 2012-2024, SU2' # newvers_q = newvers if sys.version_info[0] > 2: diff --git a/SU2_PY/compute_polar.py b/SU2_PY/compute_polar.py index 102a5eb8bdb..1a510e1b48c 100755 --- a/SU2_PY/compute_polar.py +++ b/SU2_PY/compute_polar.py @@ -3,14 +3,14 @@ ## \file Compute_polar.py # \brief Python script for performing polar sweep. # \author E Arad (based on T. Lukaczyk and F. Palacios script) -# \version 8.0.0 "Harrier" +# \version 8.0.1 "Harrier" # # SU2 Project Website: https://su2code.github.io # # The SU2 Project is maintained by the SU2 Foundation # (http://su2foundation.org) # -# Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) +# Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) # # SU2 is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public diff --git a/SU2_PY/compute_uncertainty.py b/SU2_PY/compute_uncertainty.py index 57fb9b3e598..da97ab620e4 100755 --- a/SU2_PY/compute_uncertainty.py +++ b/SU2_PY/compute_uncertainty.py @@ -3,14 +3,14 @@ ## \file compute_uncertainty.py # \brief Python script for performing model-form UQ for SST turbulence model # \author J. Mukhopadhaya -# \version 8.0.0 "Harrier" +# \version 8.0.1 "Harrier" # # SU2 Project Website: https://su2code.github.io # # The SU2 Project is maintained by the SU2 Foundation # (http://su2foundation.org) # -# Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) +# Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) # # SU2 is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public diff --git a/SU2_PY/continuous_adjoint.py b/SU2_PY/continuous_adjoint.py index 8ec95d2ad31..7cc98aa7269 100755 --- a/SU2_PY/continuous_adjoint.py +++ b/SU2_PY/continuous_adjoint.py @@ -3,14 +3,14 @@ ## \file continuous_adjoint.py # \brief Python script for continuous adjoint computation using the SU2 suite. # \author F. Palacios, T. Economon, T. Lukaczyk -# \version 8.0.0 "Harrier" +# \version 8.0.1 "Harrier" # # SU2 Project Website: https://su2code.github.io # # The SU2 Project is maintained by the SU2 Foundation # (http://su2foundation.org) # -# Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) +# Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) # # SU2 is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public diff --git a/SU2_PY/copy_directory.py b/SU2_PY/copy_directory.py index aa42e27cc61..29f99b68ac0 100755 --- a/SU2_PY/copy_directory.py +++ b/SU2_PY/copy_directory.py @@ -1,5 +1,5 @@ #!/usr/bin/env python -# Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) +# Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) import sys import os diff --git a/SU2_PY/direct_differentiation.py b/SU2_PY/direct_differentiation.py index e5d458ae582..a348abe621d 100755 --- a/SU2_PY/direct_differentiation.py +++ b/SU2_PY/direct_differentiation.py @@ -3,14 +3,14 @@ ## \file direct_differentiation.py # \brief Python script for doing the direct differentiation computation using the SU2 suite. # \author F. Palacios -# \version 8.0.0 "Harrier" +# \version 8.0.1 "Harrier" # # SU2 Project Website: https://su2code.github.io # # The SU2 Project is maintained by the SU2 Foundation # (http://su2foundation.org) # -# Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) +# Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) # # SU2 is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public diff --git a/SU2_PY/discrete_adjoint.py b/SU2_PY/discrete_adjoint.py index 30f07747df4..0e3dd93addc 100755 --- a/SU2_PY/discrete_adjoint.py +++ b/SU2_PY/discrete_adjoint.py @@ -3,14 +3,14 @@ ## \file discrete_adjoint.py # \brief Python script for doing the discrete adjoint computation using the SU2 suite. # \author F. Palacios, T. Economon, T. Lukaczyk -# \version 8.0.0 "Harrier" +# \version 8.0.1 "Harrier" # # SU2 Project Website: https://su2code.github.io # # The SU2 Project is maintained by the SU2 Foundation # (http://su2foundation.org) # -# Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) +# Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) # # SU2 is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public diff --git a/SU2_PY/finite_differences.py b/SU2_PY/finite_differences.py index 589905f7ccc..78b0c6a1ea8 100755 --- a/SU2_PY/finite_differences.py +++ b/SU2_PY/finite_differences.py @@ -3,14 +3,14 @@ ## \file finite_differences.py # \brief Python script for doing the finite differences computation using the SU2 suite. # \author F. Palacios -# \version 8.0.0 "Harrier" +# \version 8.0.1 "Harrier" # # SU2 Project Website: https://su2code.github.io # # The SU2 Project is maintained by the SU2 Foundation # (http://su2foundation.org) # -# Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) +# Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) # # SU2 is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public diff --git a/SU2_PY/fsi_computation.py b/SU2_PY/fsi_computation.py index 4f497290332..41c5ff20051 100755 --- a/SU2_PY/fsi_computation.py +++ b/SU2_PY/fsi_computation.py @@ -3,14 +3,14 @@ ## \file fsi_computation.py # \brief Python wrapper code for FSI computation by coupling a third-party structural solver to SU2. # \authors Nicola Fonzi, Vittorio Cavalieri based on the work of David Thomas -# \version 8.0.0 "Harrier" +# \version 8.0.1 "Harrier" # # SU2 Project Website: https://su2code.github.io # # The SU2 Project is maintained by the SU2 Foundation # (http://su2foundation.org) # -# Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) +# Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) # # SU2 is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public diff --git a/SU2_PY/merge_solution.py b/SU2_PY/merge_solution.py index 94c4ec9ffbb..3f1c177569d 100755 --- a/SU2_PY/merge_solution.py +++ b/SU2_PY/merge_solution.py @@ -3,14 +3,14 @@ ## \file merge_solution.py # \brief Python script for merging of the solution files. # \author F. Palacios -# \version 8.0.0 "Harrier" +# \version 8.0.1 "Harrier" # # SU2 Project Website: https://su2code.github.io # # The SU2 Project is maintained by the SU2 Foundation # (http://su2foundation.org) # -# Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) +# Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) # # SU2 is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public diff --git a/SU2_PY/mesh_deformation.py b/SU2_PY/mesh_deformation.py index 5420a6b62c2..0b5619c697c 100755 --- a/SU2_PY/mesh_deformation.py +++ b/SU2_PY/mesh_deformation.py @@ -3,14 +3,14 @@ ## \file mesh_deformation.py # \brief Python script for doing the parallel deformation using SU2_DEF. # \author F. Palacios -# \version 8.0.0 "Harrier" +# \version 8.0.1 "Harrier" # # SU2 Project Website: https://su2code.github.io # # The SU2 Project is maintained by the SU2 Foundation # (http://su2foundation.org) # -# Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) +# Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) # # SU2 is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public diff --git a/SU2_PY/parallel_computation.py b/SU2_PY/parallel_computation.py index 0aaa7825c70..ea610f0671e 100755 --- a/SU2_PY/parallel_computation.py +++ b/SU2_PY/parallel_computation.py @@ -3,14 +3,14 @@ ## \file parallel_computation.py # \brief Python script for doing the continuous adjoint computation using the SU2 suite. # \author T. Economon, T. Lukaczyk, F. Palacios -# \version 8.0.0 "Harrier" +# \version 8.0.1 "Harrier" # # SU2 Project Website: https://su2code.github.io # # The SU2 Project is maintained by the SU2 Foundation # (http://su2foundation.org) # -# Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) +# Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) # # SU2 is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public diff --git a/SU2_PY/parallel_computation_fsi.py b/SU2_PY/parallel_computation_fsi.py index e81a32d7ba3..f4ebd1451a4 100755 --- a/SU2_PY/parallel_computation_fsi.py +++ b/SU2_PY/parallel_computation_fsi.py @@ -3,14 +3,14 @@ ## \file parallel_computation_fsi.py # \brief Python script for running FSI simulations using the SU2 suite. # \author T. Economon, T. Lukaczyk, F. Palacios, H. Kline, R. Sanchez -# \version 8.0.0 "Harrier" +# \version 8.0.1 "Harrier" # # SU2 Project Website: https://su2code.github.io # # The SU2 Project is maintained by the SU2 Foundation # (http://su2foundation.org) # -# Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) +# Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) # # SU2 is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public diff --git a/SU2_PY/parse_config.py b/SU2_PY/parse_config.py index 6157d3985b2..5e0ec1c2620 100755 --- a/SU2_PY/parse_config.py +++ b/SU2_PY/parse_config.py @@ -3,14 +3,14 @@ ## \file parse_config.py # \brief Builds a worksheet of all SU2.cpp options # \author A. Aranake, F. Palacios -# \version 8.0.0 "Harrier" +# \version 8.0.1 "Harrier" # # SU2 Project Website: https://su2code.github.io # # The SU2 Project is maintained by the SU2 Foundation # (http://su2foundation.org) # -# Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) +# Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) # # SU2 is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public diff --git a/SU2_PY/profiling.py b/SU2_PY/profiling.py index b14382db8ca..021b68bdc4e 100755 --- a/SU2_PY/profiling.py +++ b/SU2_PY/profiling.py @@ -3,14 +3,14 @@ ## \file profiling.py # \brief Python script for postprocessing the SU2 custom profiling (profiling.csv) # \author T. Economon -# \version 8.0.0 "Harrier" +# \version 8.0.1 "Harrier" # # SU2 Project Website: https://su2code.github.io # # The SU2 Project is maintained by the SU2 Foundation # (http://su2foundation.org) # -# Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) +# Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) # # SU2 is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public diff --git a/SU2_PY/pySU2/pySU2.i b/SU2_PY/pySU2/pySU2.i index 2fb6e2b058f..c139d9c02ef 100644 --- a/SU2_PY/pySU2/pySU2.i +++ b/SU2_PY/pySU2/pySU2.i @@ -4,14 +4,14 @@ # \file pySU2.i # \brief Configuration file for the Swig compilation of the Python wrapper. # \author D. Thomas -# \version 8.0.0 "Harrier" +# \version 8.0.1 "Harrier" # # SU2 Project Website: https://su2code.github.io # # The SU2 Project is maintained by the SU2 Foundation # (http://su2foundation.org) # -# Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) +# Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) # # SU2 is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public diff --git a/SU2_PY/pySU2/pySU2ad.i b/SU2_PY/pySU2/pySU2ad.i index 67ce17d7669..d970ffb5d2c 100644 --- a/SU2_PY/pySU2/pySU2ad.i +++ b/SU2_PY/pySU2/pySU2ad.i @@ -4,14 +4,14 @@ # \file pySU2ad.i # \brief Configuration file for the Swig compilation of the Python wrapper. # \author D. Thomas, R. Sanchez -# \version 8.0.0 "Harrier" +# \version 8.0.1 "Harrier" # # SU2 Project Website: https://su2code.github.io # # The SU2 Project is maintained by the SU2 Foundation # (http://su2foundation.org) # -# Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) +# Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) # # SU2 is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public diff --git a/SU2_PY/set_ffd_design_var.py b/SU2_PY/set_ffd_design_var.py index ec343c0e75c..e764ab8d283 100755 --- a/SU2_PY/set_ffd_design_var.py +++ b/SU2_PY/set_ffd_design_var.py @@ -3,14 +3,14 @@ ## \file set_ffd_design_var.py # \brief Python script for automatically generating a list of FFD variables. # \author T. Economon, F. Palacios -# \version 8.0.0 "Harrier" +# \version 8.0.1 "Harrier" # # SU2 Project Website: https://su2code.github.io # # The SU2 Project is maintained by the SU2 Foundation # (http://su2foundation.org) # -# Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) +# Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) # # SU2 is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public diff --git a/SU2_PY/shape_optimization.py b/SU2_PY/shape_optimization.py index c5edaa09b7d..dc50d9984c4 100755 --- a/SU2_PY/shape_optimization.py +++ b/SU2_PY/shape_optimization.py @@ -3,14 +3,14 @@ ## \file shape_optimization.py # \brief Python script for performing the shape optimization. # \author T. Economon, T. Lukaczyk, F. Palacios -# \version 8.0.0 "Harrier" +# \version 8.0.1 "Harrier" # # SU2 Project Website: https://su2code.github.io # # The SU2 Project is maintained by the SU2 Foundation # (http://su2foundation.org) # -# Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) +# Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) # # SU2 is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public @@ -106,7 +106,7 @@ def main(): "| ___ _ _ ___ |\n" ) sys.stdout.write( - '| / __| | | |_ ) Release 8.0.0 "Harrier" |\n' + '| / __| | | |_ ) Release 8.0.1 "Harrier" |\n' ) sys.stdout.write( "| \\__ \\ |_| |/ / |\n" @@ -136,7 +136,7 @@ def main(): "-------------------------------------------------------------------------\n" ) sys.stdout.write( - "| Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) |\n" + "| Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) |\n" ) sys.stdout.write( "| |\n" diff --git a/SU2_PY/topology_optimization.py b/SU2_PY/topology_optimization.py index f8fcfd38885..83e91c5807b 100755 --- a/SU2_PY/topology_optimization.py +++ b/SU2_PY/topology_optimization.py @@ -2,14 +2,14 @@ ## \file topology_optimization.py # \brief Python script to drive SU2 in topology optimization. -# \version 8.0.0 "Harrier" +# \version 8.0.1 "Harrier" # # SU2 Project Website: https://su2code.github.io # # The SU2 Project is maintained by the SU2 Foundation # (http://su2foundation.org) # -# Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) +# Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) # # SU2 is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public diff --git a/SU2_PY/updateHistoryMap.py b/SU2_PY/updateHistoryMap.py index ffd29019261..61a98a9a0ea 100644 --- a/SU2_PY/updateHistoryMap.py +++ b/SU2_PY/updateHistoryMap.py @@ -3,14 +3,14 @@ ## \file updateHistoryMap.py # \brief Python script for updating the historyMap.py file. # \author T. Albring -# \version 8.0.0 "Harrier" +# \version 8.0.1 "Harrier" # # SU2 Project Website: https://su2code.github.io # # The SU2 Project is maintained by the SU2 Foundation # (http://su2foundation.org) # -# Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) +# Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) # # SU2 is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public diff --git a/SU2_SOL/include/SU2_SOL.hpp b/SU2_SOL/include/SU2_SOL.hpp index 5097dea4154..340c0dfaa6d 100644 --- a/SU2_SOL/include/SU2_SOL.hpp +++ b/SU2_SOL/include/SU2_SOL.hpp @@ -3,14 +3,14 @@ * \brief Headers of the main subroutines of the code SU2_SOL. * The subroutines and functions are in the SU2_SOL.cpp file. * \author F. Palacios, T. Economon - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/SU2_SOL/src/SU2_SOL.cpp b/SU2_SOL/src/SU2_SOL.cpp index 4d26b1a4844..d5342042960 100644 --- a/SU2_SOL/src/SU2_SOL.cpp +++ b/SU2_SOL/src/SU2_SOL.cpp @@ -2,14 +2,14 @@ * \file SU2_SOL.cpp * \brief Main file for the solution export/conversion code (SU2_SOL). * \author F. Palacios, T. Economon - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/TestCases/TestCase.py b/TestCases/TestCase.py index 488865bc936..6d577b47df4 100644 --- a/TestCases/TestCase.py +++ b/TestCases/TestCase.py @@ -3,14 +3,14 @@ ## \file TestCase.py # \brief Python class for automated regression testing of SU2 examples # \author A. Aranake, A. Campos, T. Economon, T. Lukaczyk, S. Padron -# \version 8.0.0 "Harrier" +# \version 8.0.1 "Harrier" # # SU2 Project Website: https://su2code.github.io # # The SU2 Project is maintained by the SU2 Foundation # (http://su2foundation.org) # -# Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) +# Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) # # SU2 is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public @@ -111,8 +111,8 @@ def __init__(self,tag_in): self.ntest_vals = 4 self.test_vals = [] self.test_vals_aarch64 = [] - self.cpu_arch = platform.processor() - self.enabled_on_cpu_arch = ["x86_64", "aarch64"] + self.cpu_arch = platform.machine().casefold() + self.enabled_on_cpu_arch = ["x86_64","amd64","aarch64","arm64"] self.enabled_with_tsan = True self.command = self.Command() self.timeout = 0 @@ -340,10 +340,10 @@ def run_filediff(self, running_with_tsan=False): diff = '' try: fromdate = time.ctime(os.stat(fromfile).st_mtime) - fromlines = open(fromfile, 'U').readlines() + fromlines = open(fromfile, 'r').readlines() try: todate = time.ctime(os.stat(tofile).st_mtime) - tolines = open(tofile, 'U').readlines() + tolines = open(tofile, 'r').readlines() # If file tolerance is set to 0, make regular diff if self.tol_file_percent == 0.0: @@ -361,7 +361,7 @@ def run_filediff(self, running_with_tsan=False): if len(fromlines) != len(tolines): diff = ["ERROR: Number of lines in " + fromfile + " and " + tofile + " differ."] passed = False - + # Loop through all lines for i_line in range(0, len(fromlines)): @@ -957,7 +957,7 @@ def is_enabled(self, running_with_tsan=False): def adjust_test_data(self): - if self.cpu_arch == 'aarch64': + if self.cpu_arch == 'aarch64' or self.cpu_arch == 'arm64': if len(self.test_vals_aarch64) != 0: self.test_vals = self.test_vals_aarch64 diff --git a/TestCases/aeroelastic/aeroelastic_NACA64A010.cfg b/TestCases/aeroelastic/aeroelastic_NACA64A010.cfg index 883979e23e0..39a2c90ae61 100644 --- a/TestCases/aeroelastic/aeroelastic_NACA64A010.cfg +++ b/TestCases/aeroelastic/aeroelastic_NACA64A010.cfg @@ -5,7 +5,7 @@ % Author: Santiago Padron % % Institution: Stanford University % % Date: 07-09-15 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/axisymmetric_rans/air_nozzle/air_nozzle_restart.cfg b/TestCases/axisymmetric_rans/air_nozzle/air_nozzle_restart.cfg index bc6bd05fc6e..de7e93cd78e 100644 --- a/TestCases/axisymmetric_rans/air_nozzle/air_nozzle_restart.cfg +++ b/TestCases/axisymmetric_rans/air_nozzle/air_nozzle_restart.cfg @@ -4,7 +4,7 @@ % Case description: Axisymmetric supersonic converging-diverging air nozzle % % Author: Florian Dittmann % % Date: 2021.12.02 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % diff --git a/TestCases/cgns_writer/config.cfg b/TestCases/cgns_writer/config.cfg new file mode 100644 index 00000000000..ec6fbda0190 --- /dev/null +++ b/TestCases/cgns_writer/config.cfg @@ -0,0 +1,96 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% % +% SU2 configuration file % +% Case description: Subsonic U-Turn % +% Author: Andrea Rausa % +% Institution: Politecnico di Milano % +% Date: 12/2/2023 % +% File Version 8.0.1 "Harrier" % +% % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% ------------- DIRECT, ADJOINT, AND LINEARIZED PROBLEM DEFINITION ------------% +% +SOLVER= RANS +KIND_TURB_MODEL= SST +MATH_PROBLEM= DIRECT +RESTART_SOL= NO + +% -------------------- COMPRESSIBLE FREE-STREAM DEFINITION --------------------% +% +MACH_NUMBER= 0.2 +AOA= 0.0 +FREESTREAM_TEMPERATURE= 270.0 +REYNOLDS_NUMBER= 3.28E6 +REYNOLDS_LENGTH= 1 +REF_DIMENSIONALIZATION= FREESTREAM_VEL_EQ_MACH + +% ---------------------- REFERENCE VALUE DEFINITION ---------------------------% +% +REF_ORIGIN_MOMENT_X = -0.2473 +REF_ORIGIN_MOMENT_Y = 0.00 +REF_ORIGIN_MOMENT_Z = 0.00 +REF_LENGTH= 1 +REF_AREA= 1 + +% -------------------- BOUNDARY CONDITION DEFINITION --------------------------% +% +MARKER_HEATFLUX= ( OuterWall, 0.0, InnerWall, 0.0 ) +MARKER_FAR= ( Inlet, Outlet ) +MARKER_PLOTTING= ( InnerWall ) +MARKER_MONITORING= ( InnerWall ) + +% ------------------------ LINEAR SOLVER DEFINITION ---------------------------% +% +LINEAR_SOLVER= FGMRES +LINEAR_SOLVER_PREC= ILU +LINEAR_SOLVER_ERROR= 1.0e-6 +LINEAR_SOLVER_ITER= 15 + +% -------------------------- MULTIGRID PARAMETERS -----------------------------% +% +CFL_ADAPT= YES +CFL_NUMBER= 1 +CFL_REDUCTION_TURB= 1.0 +CFL_ADAPT_PARAM= ( 0.5, 1.01, 1.0, 5, 0.0001) +ITER= 1 + +% -------------------- FLOW NUMERICAL METHOD DEFINITION -----------------------% +% +CONV_NUM_METHOD_FLOW= ROE +USE_VECTORIZATION= YES +MUSCL_FLOW= NO +SLOPE_LIMITER_FLOW= VENKATAKRISHNAN +VENKAT_LIMITER_COEFF= 0.03 +TIME_DISCRE_FLOW= EULER_IMPLICIT + +% -------------------- TURBULENT NUMERICAL METHOD DEFINITION ------------------% +% +CONV_NUM_METHOD_TURB= SCALAR_UPWIND +MUSCL_TURB= NO +TIME_DISCRE_TURB= EULER_IMPLICIT + + +% --------------------------- CONVERGENCE PARAMETERS --------------------------% +% +CONV_FIELD= MOMENT_X +CONV_STARTITER= 10 +CONV_CAUCHY_ELEMS= 100 +CONV_CAUCHY_EPS= 1E-6 + +% ------------------------- INPUT/OUTPUT INFORMATION --------------------------% +% +MESH_FILENAME= mesh.su2 +MESH_FORMAT= SU2 +SOLUTION_FILENAME= restart_flow +TABULAR_FORMAT= CSV +CONV_FILENAME= history_First +RESTART_FILENAME= restart_flow +VOLUME_FILENAME= flow +SURFACE_FILENAME= surface_flow +OUTPUT_WRT_FREQ= 100 +SCREEN_OUTPUT= (INNER_ITER, WALL_TIME, RMS_DENSITY, LIFT, DRAG, MOMENT_Z) +OUTPUT_FILES= (SURFACE_CGNS) +WRT_FORCES_BREAKDOWN= NO +VOLUME_OUTPUT= (COORDINATES) +HISTORY_OUTPUT= (ITER) diff --git a/TestCases/cont_adj_euler/naca0012/inv_NACA0012.cfg b/TestCases/cont_adj_euler/naca0012/inv_NACA0012.cfg index 96f0ea2e43d..723d9e59dd4 100644 --- a/TestCases/cont_adj_euler/naca0012/inv_NACA0012.cfg +++ b/TestCases/cont_adj_euler/naca0012/inv_NACA0012.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 2011.11.02 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/cont_adj_euler/naca0012/inv_NACA0012_FD.cfg b/TestCases/cont_adj_euler/naca0012/inv_NACA0012_FD.cfg index 1a9bc3ac798..33fda8e7d94 100644 --- a/TestCases/cont_adj_euler/naca0012/inv_NACA0012_FD.cfg +++ b/TestCases/cont_adj_euler/naca0012/inv_NACA0012_FD.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 2011.11.02 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/cont_adj_euler/naca0012/inv_NACA0012_discadj.cfg b/TestCases/cont_adj_euler/naca0012/inv_NACA0012_discadj.cfg index e6b16f0575e..f92eb76c9dc 100644 --- a/TestCases/cont_adj_euler/naca0012/inv_NACA0012_discadj.cfg +++ b/TestCases/cont_adj_euler/naca0012/inv_NACA0012_discadj.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 2011.11.02 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/cont_adj_euler/oneram6/inv_ONERAM6.cfg b/TestCases/cont_adj_euler/oneram6/inv_ONERAM6.cfg index 087457f061c..56c9c5ca08e 100644 --- a/TestCases/cont_adj_euler/oneram6/inv_ONERAM6.cfg +++ b/TestCases/cont_adj_euler/oneram6/inv_ONERAM6.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 2015.08.25 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/cont_adj_euler/wedge/inv_wedge_ROE.cfg b/TestCases/cont_adj_euler/wedge/inv_wedge_ROE.cfg index ea2d11081a4..d76bbb66340 100644 --- a/TestCases/cont_adj_euler/wedge/inv_wedge_ROE.cfg +++ b/TestCases/cont_adj_euler/wedge/inv_wedge_ROE.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 2012.10.07 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/cont_adj_euler/wedge/inv_wedge_ROE_multiobj.cfg b/TestCases/cont_adj_euler/wedge/inv_wedge_ROE_multiobj.cfg index d31759e32ca..6df6386c164 100644 --- a/TestCases/cont_adj_euler/wedge/inv_wedge_ROE_multiobj.cfg +++ b/TestCases/cont_adj_euler/wedge/inv_wedge_ROE_multiobj.cfg @@ -6,7 +6,7 @@ % Author: H.L. Kline, modified from inviscid wedge by Thomas D. Economon % % Institution: Stanford University % % Date: 2018.01.07 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/cont_adj_navierstokes/cylinder/lam_cylinder.cfg b/TestCases/cont_adj_navierstokes/cylinder/lam_cylinder.cfg index 8ed53e331ac..8180c693495 100644 --- a/TestCases/cont_adj_navierstokes/cylinder/lam_cylinder.cfg +++ b/TestCases/cont_adj_navierstokes/cylinder/lam_cylinder.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 2013.03.01 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/cont_adj_navierstokes/naca0012_sub/lam_NACA0012.cfg b/TestCases/cont_adj_navierstokes/naca0012_sub/lam_NACA0012.cfg index 674af9042f3..8e7ed696399 100644 --- a/TestCases/cont_adj_navierstokes/naca0012_sub/lam_NACA0012.cfg +++ b/TestCases/cont_adj_navierstokes/naca0012_sub/lam_NACA0012.cfg @@ -5,7 +5,7 @@ % Author: Francisco Palacios % % Institution: Stanford University % % Date: Jul 18th, 2014 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/cont_adj_navierstokes/naca0012_trans/lam_NACA0012.cfg b/TestCases/cont_adj_navierstokes/naca0012_trans/lam_NACA0012.cfg index d2f99966354..6e78240aa3d 100644 --- a/TestCases/cont_adj_navierstokes/naca0012_trans/lam_NACA0012.cfg +++ b/TestCases/cont_adj_navierstokes/naca0012_trans/lam_NACA0012.cfg @@ -5,7 +5,7 @@ % Author: Francisco Palacios % % Institution: Stanford University % % Date: Jul 18th, 2014 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/cont_adj_rans/naca0012/turb_nasa.cfg b/TestCases/cont_adj_rans/naca0012/turb_nasa.cfg index 92b3b7189b7..06a11c93442 100644 --- a/TestCases/cont_adj_rans/naca0012/turb_nasa.cfg +++ b/TestCases/cont_adj_rans/naca0012/turb_nasa.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 2013.03.01 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/cont_adj_rans/naca0012/turb_nasa_binary.cfg b/TestCases/cont_adj_rans/naca0012/turb_nasa_binary.cfg index 46be0b5f825..2f9ce184acb 100644 --- a/TestCases/cont_adj_rans/naca0012/turb_nasa_binary.cfg +++ b/TestCases/cont_adj_rans/naca0012/turb_nasa_binary.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 2013.03.01 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/cont_adj_rans/oneram6/turb_ONERAM6.cfg b/TestCases/cont_adj_rans/oneram6/turb_ONERAM6.cfg index b82dcf516ca..4e6b06a79be 100644 --- a/TestCases/cont_adj_rans/oneram6/turb_ONERAM6.cfg +++ b/TestCases/cont_adj_rans/oneram6/turb_ONERAM6.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 2013.03.01 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/cont_adj_rans/rae2822/turb_SA_RAE2822.cfg b/TestCases/cont_adj_rans/rae2822/turb_SA_RAE2822.cfg index e7cad06fd8d..84a65a361fd 100644 --- a/TestCases/cont_adj_rans/rae2822/turb_SA_RAE2822.cfg +++ b/TestCases/cont_adj_rans/rae2822/turb_SA_RAE2822.cfg @@ -5,7 +5,7 @@ % Author: Francisco Palacios % % Institution: Stanford University % % Date: 5/15/2013 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/control_surface/inv_ONERAM6_moving.cfg b/TestCases/control_surface/inv_ONERAM6_moving.cfg index b698bf27689..4ee5d0c2707 100644 --- a/TestCases/control_surface/inv_ONERAM6_moving.cfg +++ b/TestCases/control_surface/inv_ONERAM6_moving.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 09.07.2011 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/control_surface/inv_ONERAM6_setting.cfg b/TestCases/control_surface/inv_ONERAM6_setting.cfg index c48c32c31e0..8201482471e 100644 --- a/TestCases/control_surface/inv_ONERAM6_setting.cfg +++ b/TestCases/control_surface/inv_ONERAM6_setting.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 09.07.2011 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/coupled_cht/comp_2d/cht_2d_3cylinders.cfg b/TestCases/coupled_cht/comp_2d/cht_2d_3cylinders.cfg index a81a7cea3c8..b4498076228 100644 --- a/TestCases/coupled_cht/comp_2d/cht_2d_3cylinders.cfg +++ b/TestCases/coupled_cht/comp_2d/cht_2d_3cylinders.cfg @@ -5,7 +5,7 @@ % Author: O. Burghardt % % Institution: Chair for Scientific Computing, TU Kaiserslautern % % Date: January 6, 2020 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/coupled_cht/disc_adj_incomp_2d/cht_2d_3cylinders.cfg b/TestCases/coupled_cht/disc_adj_incomp_2d/cht_2d_3cylinders.cfg index 5c9455c03d4..38fbfcb2318 100644 --- a/TestCases/coupled_cht/disc_adj_incomp_2d/cht_2d_3cylinders.cfg +++ b/TestCases/coupled_cht/disc_adj_incomp_2d/cht_2d_3cylinders.cfg @@ -5,7 +5,7 @@ % Author: O. Burghardt, T. Economon % % Institution: Chair for Scientific Computing, TU Kaiserslautern % % Date: August 8, 2019 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/coupled_cht/incomp_2d/cht_2d_3cylinders.cfg b/TestCases/coupled_cht/incomp_2d/cht_2d_3cylinders.cfg index 71f1d1f2ed0..f6d575ada78 100644 --- a/TestCases/coupled_cht/incomp_2d/cht_2d_3cylinders.cfg +++ b/TestCases/coupled_cht/incomp_2d/cht_2d_3cylinders.cfg @@ -5,7 +5,7 @@ % Author: O. Burghardt, T. Economon % % Institution: Chair for Scientific Computing, TU Kaiserslautern % % Date: August 8, 2019 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/coupled_cht/incomp_2d_unsteady/cht_2d_3cylinders.cfg b/TestCases/coupled_cht/incomp_2d_unsteady/cht_2d_3cylinders.cfg index f7192c82a64..a8b6e4ee981 100644 --- a/TestCases/coupled_cht/incomp_2d_unsteady/cht_2d_3cylinders.cfg +++ b/TestCases/coupled_cht/incomp_2d_unsteady/cht_2d_3cylinders.cfg @@ -5,7 +5,7 @@ % Author: O. Burghardt, T. Economon % % Institution: Chair for Scientific Computing, TU Kaiserslautern % % Date: August 8, 2019 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/ddes/flatplate/ddes_flatplate.cfg b/TestCases/ddes/flatplate/ddes_flatplate.cfg index 4fba06c6542..3de41f50175 100644 --- a/TestCases/ddes/flatplate/ddes_flatplate.cfg +++ b/TestCases/ddes/flatplate/ddes_flatplate.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 2011.11.10 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/deformation/brick_hex/def_brick_hex.cfg b/TestCases/deformation/brick_hex/def_brick_hex.cfg index 6b7fd09138b..efed7edf727 100755 --- a/TestCases/deformation/brick_hex/def_brick_hex.cfg +++ b/TestCases/deformation/brick_hex/def_brick_hex.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 2016.05.31 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/deformation/brick_hex_rans/def_brick_hex_rans.cfg b/TestCases/deformation/brick_hex_rans/def_brick_hex_rans.cfg index ff84232a6d2..54cab488292 100755 --- a/TestCases/deformation/brick_hex_rans/def_brick_hex_rans.cfg +++ b/TestCases/deformation/brick_hex_rans/def_brick_hex_rans.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 2016.05.31 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/deformation/brick_prism/def_brick_prism.cfg b/TestCases/deformation/brick_prism/def_brick_prism.cfg index 9399ba8f391..3c3aa557c0d 100755 --- a/TestCases/deformation/brick_prism/def_brick_prism.cfg +++ b/TestCases/deformation/brick_prism/def_brick_prism.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 2016.05.31 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/deformation/brick_prism_rans/def_brick_prism_rans.cfg b/TestCases/deformation/brick_prism_rans/def_brick_prism_rans.cfg index cf7a28e8dab..5ed88afab3e 100755 --- a/TestCases/deformation/brick_prism_rans/def_brick_prism_rans.cfg +++ b/TestCases/deformation/brick_prism_rans/def_brick_prism_rans.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 2016.05.31 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/deformation/brick_pyra/def_brick_pyra.cfg b/TestCases/deformation/brick_pyra/def_brick_pyra.cfg index 00061ed7a40..45f18645df2 100755 --- a/TestCases/deformation/brick_pyra/def_brick_pyra.cfg +++ b/TestCases/deformation/brick_pyra/def_brick_pyra.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 2016.05.31 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/deformation/brick_tets/def_brick_tets.cfg b/TestCases/deformation/brick_tets/def_brick_tets.cfg index 48c8017aa8f..3c880fdc770 100755 --- a/TestCases/deformation/brick_tets/def_brick_tets.cfg +++ b/TestCases/deformation/brick_tets/def_brick_tets.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 2016.05.31 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/deformation/cst/Mesh Deformation Comparison.png b/TestCases/deformation/cst/Mesh Deformation Comparison.png new file mode 100644 index 00000000000..2dd70194f0a Binary files /dev/null and b/TestCases/deformation/cst/Mesh Deformation Comparison.png differ diff --git a/TestCases/deformation/cst/Readme.md b/TestCases/deformation/cst/Readme.md new file mode 100644 index 00000000000..0cc90457fd8 --- /dev/null +++ b/TestCases/deformation/cst/Readme.md @@ -0,0 +1,3 @@ +run ```SU2_DEF naca0012.cfg``` or ```mpiexec -n 4 SU2_DEF naca0012.cfg```
+the **CST** deformation result as below:
+![cst result](Mesh%20Deformation%20Comparison.png "mesh") diff --git a/TestCases/deformation/cst/naca0012.cfg b/TestCases/deformation/cst/naca0012.cfg new file mode 100644 index 00000000000..fa5bf0d35c3 --- /dev/null +++ b/TestCases/deformation/cst/naca0012.cfg @@ -0,0 +1,135 @@ +% -------------------- BOUNDARY CONDITION DEFINITION --------------------------% +% +% Euler wall boundary marker(s) (NONE = no marker) +% Implementation identical to MARKER_SYM. +MARKER_EULER= ( airfoil ) +% Far-field boundary marker(s) (NONE = no marker) +MARKER_FAR= ( farfield ) + + + +% ----------------------- GEOMETRY EVALUATION PARAMETERS ----------------------% +% +% Marker(s) of the surface where geometrical based function will be evaluated +GEO_MARKER= ( airfoil ) +% +% Description of the geometry to be analyzed (AIRFOIL, WING) +GEO_DESCRIPTION= AIRFOIL +% +% Coordinate of the stations to be analyzed +% GEO_LOCATION_STATIONS= (0.0, 0.5, 1.0) +% +% Geometrical bounds (Y coordinate) for the wing geometry analysis or +% fuselage evaluation (X coordinate) +% GEO_BOUNDS= (1.5, 3.5) +% +% Plot loads and Cp distributions on each airfoil section +GEO_PLOT_STATIONS= NO +% +% Number of section cuts to make when calculating wing geometry +GEO_NUMBER_STATIONS= 25 +% +% Geometrical evaluation mode (FUNCTION, GRADIENT) +GEO_MODE= FUNCTION + +% ----------------------- DESIGN VARIABLE PARAMETERS --------------------------% +% +% Kind of deformation (NO_DEFORMATION, SCALE_GRID, TRANSLATE_GRID, ROTATE_GRID, +% FFD_SETTING, FFD_NACELLE, +% FFD_CONTROL_POINT, FFD_CAMBER, FFD_THICKNESS, FFD_TWIST +% FFD_CONTROL_POINT_2D, FFD_CAMBER_2D, FFD_THICKNESS_2D, +% HICKS_HENNE, SURFACE_BUMP, SURFACE_FILE) +DV_KIND= CST,CST +% +% Marker of the surface in which we are going apply the shape deformation +DV_MARKER= ( airfoil ) +% +% Parameters of the shape deformation +% - NO_DEFORMATION ( 1.0 ) +% - TRANSLATE_GRID ( x_Disp, y_Disp, z_Disp ), as a unit vector +% - ROTATE_GRID ( x_Orig, y_Orig, z_Orig, x_End, y_End, z_End ) axis, DV_VALUE in deg. +% - SCALE_GRID ( 1.0 ) +% - ANGLE_OF_ATTACK ( 1.0 ) +% - FFD_SETTING ( 1.0 ) +% - FFD_CONTROL_POINT ( FFD_BoxTag, i_Ind, j_Ind, k_Ind, x_Disp, y_Disp, z_Disp ) +% - FFD_NACELLE ( FFD_BoxTag, rho_Ind, theta_Ind, phi_Ind, rho_Disp, phi_Disp ) +% - FFD_GULL ( FFD_BoxTag, j_Ind ) +% - FFD_ANGLE_OF_ATTACK ( FFD_BoxTag, 1.0 ) +% - FFD_CAMBER ( FFD_BoxTag, i_Ind, j_Ind ) +% - FFD_THICKNESS ( FFD_BoxTag, i_Ind, j_Ind ) +% - FFD_TWIST ( FFD_BoxTag, j_Ind, x_Orig, y_Orig, z_Orig, x_End, y_End, z_End ) +% - FFD_CONTROL_POINT_2D ( FFD_BoxTag, i_Ind, j_Ind, x_Disp, y_Disp ) +% - FFD_CAMBER_2D ( FFD_BoxTag, i_Ind ) +% - FFD_THICKNESS_2D ( FFD_BoxTag, i_Ind ) +% - HICKS_HENNE ( Lower Surface (0)/Upper Surface (1)/Only one Surface (2), x_Loc ) +% - SURFACE_BUMP ( x_Start, x_End, x_Loc ) +DV_PARAM= (0, 5, 7);(1, 5, 10) +% +% Value of the shape deformation +DV_VALUE= -0.5,0.5 + +% ------------------------- INPUT/OUTPUT FILE INFORMATION --------------------------% +% +DEFORM_CONSOLE_OUTPUT= YES +% +% Mesh input file +MESH_FILENAME= ../naca0012/mesh_NACA0012_inv.su2 +% +% Mesh input file format (SU2, CGNS) +MESH_FORMAT= SU2 +% +% Mesh output file +MESH_OUT_FILENAME= mesh_out.su2 +% +% Restart flow input file +SOLUTION_FILENAME= solution_flow.dat +% +% Restart adjoint input file +SOLUTION_ADJ_FILENAME= solution_adj.dat +% +% Output tabular file format (TECPLOT, CSV) +TABULAR_FORMAT= CSV +% +% Files to output +% Possible formats : (TECPLOT_ASCII, TECPLOT, SURFACE_TECPLOT_ASCII, +% SURFACE_TECPLOT, CSV, SURFACE_CSV, PARAVIEW_ASCII, PARAVIEW_LEGACY, SURFACE_PARAVIEW_ASCII, +% SURFACE_PARAVIEW_LEGACY, PARAVIEW, SURFACE_PARAVIEW, RESTART_ASCII, RESTART, CGNS, SURFACE_CGNS, STL_ASCII, STL_BINARY) +% default : (RESTART, PARAVIEW, SURFACE_PARAVIEW) +OUTPUT_FILES= (RESTART, PARAVIEW_MULTIBLOCK) +% +% Output file convergence history (w/o extension) +CONV_FILENAME= history +% +% Output file with the forces breakdown +BREAKDOWN_FILENAME= forces_breakdown.dat +% +% Output file restart flow +RESTART_FILENAME= restart_flow.dat +% +% Output file restart adjoint +RESTART_ADJ_FILENAME= restart_adj.dat +% +% Output file flow (w/o extension) variables +VOLUME_FILENAME= flow +% +% Output file adjoint (w/o extension) variables +VOLUME_ADJ_FILENAME= adjoint +% +% Output Objective function +VALUE_OBJFUNC_FILENAME= of_eval.dat +% +% Output objective function gradient (using continuous adjoint) +GRAD_OBJFUNC_FILENAME= of_grad.dat +% +% Output file surface flow coefficient (w/o extension) +SURFACE_FILENAME= surface_flow +% +% Output file surface adjoint coefficient (w/o extension) +SURFACE_ADJ_FILENAME= surface_adjoint +% +% Read binary restart files (YES, NO) +READ_BINARY_RESTART= YES +% +% Reorient elements based on potential negative volumes (YES/NO) +REORIENT_ELEMENTS= YES +% \ No newline at end of file diff --git a/TestCases/deformation/cylindrical_ffd/def_cylindrical.cfg b/TestCases/deformation/cylindrical_ffd/def_cylindrical.cfg index 129c7ca8761..6a9e1f5abcc 100644 --- a/TestCases/deformation/cylindrical_ffd/def_cylindrical.cfg +++ b/TestCases/deformation/cylindrical_ffd/def_cylindrical.cfg @@ -5,7 +5,7 @@ % Author: Francisco Palacios % % Institution: Stanford University % % Date: 5/15/2013 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/deformation/intersection_prevention/def_intersect.cfg b/TestCases/deformation/intersection_prevention/def_intersect.cfg index 6df45ec5ce7..df51acdcfad 100644 --- a/TestCases/deformation/intersection_prevention/def_intersect.cfg +++ b/TestCases/deformation/intersection_prevention/def_intersect.cfg @@ -15,7 +15,7 @@ % Institution: % % Technische Universiteit Eindhoven % % Date: 2021.01.08 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % ------------- DIRECT, ADJOINT, AND LINEARIZED PROBLEM DEFINITION ------------% diff --git a/TestCases/deformation/naca0012/def_NACA0012.cfg b/TestCases/deformation/naca0012/def_NACA0012.cfg index e6675bba06b..400cddbd6a0 100644 --- a/TestCases/deformation/naca0012/def_NACA0012.cfg +++ b/TestCases/deformation/naca0012/def_NACA0012.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 2014.06.11 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/deformation/naca0012/surface_file_NACA0012.cfg b/TestCases/deformation/naca0012/surface_file_NACA0012.cfg index b4b8b07f1db..be89720657d 100644 --- a/TestCases/deformation/naca0012/surface_file_NACA0012.cfg +++ b/TestCases/deformation/naca0012/surface_file_NACA0012.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 2014.06.11 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/deformation/naca4412/def_NACA4412.cfg b/TestCases/deformation/naca4412/def_NACA4412.cfg index a1ceac5ca8b..7fe4c9df8ea 100644 --- a/TestCases/deformation/naca4412/def_NACA4412.cfg +++ b/TestCases/deformation/naca4412/def_NACA4412.cfg @@ -6,7 +6,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 2016.05.06 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/deformation/rae2822/def_RAE2822.cfg b/TestCases/deformation/rae2822/def_RAE2822.cfg index 85bb3f0997c..c048953dfef 100644 --- a/TestCases/deformation/rae2822/def_RAE2822.cfg +++ b/TestCases/deformation/rae2822/def_RAE2822.cfg @@ -5,7 +5,7 @@ % Author: Francisco Palacios % % Institution: Stanford University % % Date: 5/15/2013 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/deformation/spherical_ffd/def_spherical.cfg b/TestCases/deformation/spherical_ffd/def_spherical.cfg index e959c7026bf..7ebc42f92c9 100644 --- a/TestCases/deformation/spherical_ffd/def_spherical.cfg +++ b/TestCases/deformation/spherical_ffd/def_spherical.cfg @@ -5,7 +5,7 @@ % Author: Francisco Palacios % % Institution: Stanford University % % Date: 5/15/2013 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/deformation/spherical_ffd/def_spherical_bspline.cfg b/TestCases/deformation/spherical_ffd/def_spherical_bspline.cfg index f1b1b02ca7f..d0c7d7bcd73 100644 --- a/TestCases/deformation/spherical_ffd/def_spherical_bspline.cfg +++ b/TestCases/deformation/spherical_ffd/def_spherical_bspline.cfg @@ -5,7 +5,7 @@ % Author: Francisco Palacios % % Institution: Stanford University % % Date: 5/15/2013 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/disc_adj_euler/arina2k/Arina2KRS.cfg b/TestCases/disc_adj_euler/arina2k/Arina2KRS.cfg index 9a1aacfe9db..ad3325e8cb5 100644 --- a/TestCases/disc_adj_euler/arina2k/Arina2KRS.cfg +++ b/TestCases/disc_adj_euler/arina2k/Arina2KRS.cfg @@ -6,7 +6,7 @@ % Author: Jairo Paes Cavalcante Filho [Based on T. Economon & M. Pini work] % % Institution: University of São Paulo % % Date: 8-JUL-2018 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/disc_adj_euler/cylinder3D/inv_cylinder3D.cfg b/TestCases/disc_adj_euler/cylinder3D/inv_cylinder3D.cfg index b1846a409dc..604147bdc1c 100644 --- a/TestCases/disc_adj_euler/cylinder3D/inv_cylinder3D.cfg +++ b/TestCases/disc_adj_euler/cylinder3D/inv_cylinder3D.cfg @@ -5,7 +5,7 @@ % Author: ___________________________________________________________________ % % Institution: ______________________________________________________________ % % Date: __________ % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/disc_adj_euler/oneram6/inv_ONERAM6.cfg b/TestCases/disc_adj_euler/oneram6/inv_ONERAM6.cfg index fb67eb36588..065b07278f2 100644 --- a/TestCases/disc_adj_euler/oneram6/inv_ONERAM6.cfg +++ b/TestCases/disc_adj_euler/oneram6/inv_ONERAM6.cfg @@ -5,7 +5,7 @@ % Author: Francisco Palacios, Heather Kline % % Institution: Stanford University % % Date: 01.17.2017 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/disc_adj_fea/configAD_fem.cfg b/TestCases/disc_adj_fea/configAD_fem.cfg index 0303c08aa0b..a10d9b4246a 100644 --- a/TestCases/disc_adj_fea/configAD_fem.cfg +++ b/TestCases/disc_adj_fea/configAD_fem.cfg @@ -4,7 +4,7 @@ % Author: R.Sanchez % % Institution: Imperial College London % % Date: 2017.11.29 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% SOLVER= ELASTICITY diff --git a/TestCases/disc_adj_fsi/configFEA.cfg b/TestCases/disc_adj_fsi/configFEA.cfg index 5a81e020ea5..e4aaef4a103 100644 --- a/TestCases/disc_adj_fsi/configFEA.cfg +++ b/TestCases/disc_adj_fsi/configFEA.cfg @@ -4,7 +4,7 @@ % Author: R.Sanchez % % Institution: Imperial College London % % Date: 2017.11.29 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% SOLVER= ELASTICITY diff --git a/TestCases/disc_adj_fsi/configFlow.cfg b/TestCases/disc_adj_fsi/configFlow.cfg index 682e7d2a108..4d0ea2ddac7 100644 --- a/TestCases/disc_adj_fsi/configFlow.cfg +++ b/TestCases/disc_adj_fsi/configFlow.cfg @@ -4,7 +4,7 @@ % Author: R.Sanchez % % Institution: Imperial College London % % Date: 2017.11.29 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% SOLVER= NAVIER_STOKES diff --git a/TestCases/disc_adj_heat/disc_adj_heat.cfg b/TestCases/disc_adj_heat/disc_adj_heat.cfg index e4989879349..85e7d30e98c 100644 --- a/TestCases/disc_adj_heat/disc_adj_heat.cfg +++ b/TestCases/disc_adj_heat/disc_adj_heat.cfg @@ -6,7 +6,7 @@ % Author: Ole Burghardt % % Institution: Chair for Scientific Computing, TU Kaiserslautern % % Date: November 26th, 2018 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/disc_adj_heat/primal.cfg b/TestCases/disc_adj_heat/primal.cfg index 6ada129211c..921b74cfb7f 100644 --- a/TestCases/disc_adj_heat/primal.cfg +++ b/TestCases/disc_adj_heat/primal.cfg @@ -5,7 +5,7 @@ % Author: Ole Burghardt % % Institution: Chair for Scientific Computing, TU Kaiserslautern % % Date: November 26th, 2018 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/disc_adj_incomp_euler/naca0012/incomp_NACA0012_disc.cfg b/TestCases/disc_adj_incomp_euler/naca0012/incomp_NACA0012_disc.cfg index d92f2bc75db..30d4eb6a097 100644 --- a/TestCases/disc_adj_incomp_euler/naca0012/incomp_NACA0012_disc.cfg +++ b/TestCases/disc_adj_incomp_euler/naca0012/incomp_NACA0012_disc.cfg @@ -4,7 +4,7 @@ % Case description: Subsonic incompressible inviscid flow around a NACA0012 % % Author: Thomas D. Economon % % Date: 2018.10.30 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/disc_adj_incomp_navierstokes/cylinder/heated_cylinder.cfg b/TestCases/disc_adj_incomp_navierstokes/cylinder/heated_cylinder.cfg index dc328c88f05..0baafe8a912 100644 --- a/TestCases/disc_adj_incomp_navierstokes/cylinder/heated_cylinder.cfg +++ b/TestCases/disc_adj_incomp_navierstokes/cylinder/heated_cylinder.cfg @@ -4,7 +4,7 @@ % Case description: Steady incompressible laminar flow past a heated cylinder % % Author: Thomas D. Economon % % Date: 2018.06.10 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/disc_adj_incomp_rans/naca0012/turb_naca0012_sa.cfg b/TestCases/disc_adj_incomp_rans/naca0012/turb_naca0012_sa.cfg index 56cb3331551..51e29e14823 100755 --- a/TestCases/disc_adj_incomp_rans/naca0012/turb_naca0012_sa.cfg +++ b/TestCases/disc_adj_incomp_rans/naca0012/turb_naca0012_sa.cfg @@ -5,7 +5,7 @@ % http://turbmodels.larc.nasa.gov/naca0012_val_sa.html % % Author: Thomas D. Economon & Francisco Palacios % % Date: 2018.06.10 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/disc_adj_incomp_rans/naca0012/turb_naca0012_sst.cfg b/TestCases/disc_adj_incomp_rans/naca0012/turb_naca0012_sst.cfg index aea7942ecef..332959e21df 100755 --- a/TestCases/disc_adj_incomp_rans/naca0012/turb_naca0012_sst.cfg +++ b/TestCases/disc_adj_incomp_rans/naca0012/turb_naca0012_sst.cfg @@ -5,7 +5,7 @@ % http://turbmodels.larc.nasa.gov/naca0012_val_sst.html % % Author: Thomas D. Economon & Francisco Palacios % % Date: 2018.06.10 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/disc_adj_rans/cylinder/cylinder.cfg b/TestCases/disc_adj_rans/cylinder/cylinder.cfg index b2d4ca0848b..88ff1448323 100644 --- a/TestCases/disc_adj_rans/cylinder/cylinder.cfg +++ b/TestCases/disc_adj_rans/cylinder/cylinder.cfg @@ -5,7 +5,7 @@ % Author: Tim Albring % % Institution: TU Kaiserslautern % % Date: 2016.06.14 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/disc_adj_rans/cylinder/cylinder_Windowing.cfg b/TestCases/disc_adj_rans/cylinder/cylinder_Windowing.cfg index d89c9e75498..6a06d426604 100644 --- a/TestCases/disc_adj_rans/cylinder/cylinder_Windowing.cfg +++ b/TestCases/disc_adj_rans/cylinder/cylinder_Windowing.cfg @@ -5,7 +5,7 @@ % Author: Tim Albring % % Institution: TU Kaiserslautern % % Date: 2016.06.14 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/disc_adj_rans/cylinder/cylinder_Windowing_AD.cfg b/TestCases/disc_adj_rans/cylinder/cylinder_Windowing_AD.cfg index 7ae2770e6f2..498166f02b8 100644 --- a/TestCases/disc_adj_rans/cylinder/cylinder_Windowing_AD.cfg +++ b/TestCases/disc_adj_rans/cylinder/cylinder_Windowing_AD.cfg @@ -5,7 +5,7 @@ % Author: Tim Albring % % Institution: TU Kaiserslautern % % Date: 2016.06.14 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/disc_adj_rans/cylinder_DT_1ST/cylinder.cfg b/TestCases/disc_adj_rans/cylinder_DT_1ST/cylinder.cfg index b204d5b8f4b..da9544dad61 100644 --- a/TestCases/disc_adj_rans/cylinder_DT_1ST/cylinder.cfg +++ b/TestCases/disc_adj_rans/cylinder_DT_1ST/cylinder.cfg @@ -5,7 +5,7 @@ % Author: Tim Albring % % Institution: TU Kaiserslautern % % Date: 2016.06.14 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/disc_adj_rans/naca0012/naca0012.cfg b/TestCases/disc_adj_rans/naca0012/naca0012.cfg index c83765fdd28..d43947219e2 100644 --- a/TestCases/disc_adj_rans/naca0012/naca0012.cfg +++ b/TestCases/disc_adj_rans/naca0012/naca0012.cfg @@ -5,7 +5,7 @@ % Author: Steffen Schotthöfer % % Institution: TU Kaiserslautern % % Date: Mar 16, 2017 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/disc_adj_rans/naca0012/turb_NACA0012_sa.cfg b/TestCases/disc_adj_rans/naca0012/turb_NACA0012_sa.cfg index a1b710cb933..0cf3a202746 100644 --- a/TestCases/disc_adj_rans/naca0012/turb_NACA0012_sa.cfg +++ b/TestCases/disc_adj_rans/naca0012/turb_NACA0012_sa.cfg @@ -6,7 +6,7 @@ % Author: Francisco Palacios % % Institution: Stanford University % % Date: Feb 18th, 2013 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/disc_adj_rans/naca0012/turb_NACA0012_sst.cfg b/TestCases/disc_adj_rans/naca0012/turb_NACA0012_sst.cfg index 7134a4de925..5135e0b27a4 100644 --- a/TestCases/disc_adj_rans/naca0012/turb_NACA0012_sst.cfg +++ b/TestCases/disc_adj_rans/naca0012/turb_NACA0012_sst.cfg @@ -6,7 +6,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: Feb 18th, 2013 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/disc_adj_turbomachinery/transonic_stator_2D/transonic_stator.cfg b/TestCases/disc_adj_turbomachinery/transonic_stator_2D/transonic_stator.cfg index 0afb824397b..5519306524d 100644 --- a/TestCases/disc_adj_turbomachinery/transonic_stator_2D/transonic_stator.cfg +++ b/TestCases/disc_adj_turbomachinery/transonic_stator_2D/transonic_stator.cfg @@ -5,7 +5,7 @@ % Author: S. Vitale % % Institution: Delft University of Technology % % Date: 2017.03.01 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -75,6 +75,7 @@ SPATIAL_FOURIER= YES %---------------------------- TURBOMACHINERY SIMULATION -----------------------------% % TURBOMACHINERY_KIND = AXIAL +TURBO_PERF_KIND = TURBINE RAMP_OUTLET_PRESSURE= NO RAMP_OUTLET_PRESSURE_COEFF= (700000.0, 10.0, 500) AVERAGE_PROCESS_KIND= MIXEDOUT diff --git a/TestCases/euler/CRM/inv_CRM_JST.cfg b/TestCases/euler/CRM/inv_CRM_JST.cfg index 5472813ad1e..a401ca3a4a9 100644 --- a/TestCases/euler/CRM/inv_CRM_JST.cfg +++ b/TestCases/euler/CRM/inv_CRM_JST.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 2012.10.07 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/euler/biparabolic/BIPARABOLIC.cfg b/TestCases/euler/biparabolic/BIPARABOLIC.cfg index 7506bdb98b1..0ae1d7a53eb 100644 --- a/TestCases/euler/biparabolic/BIPARABOLIC.cfg +++ b/TestCases/euler/biparabolic/BIPARABOLIC.cfg @@ -5,7 +5,7 @@ % Author: Trent W. Lukaczyk % % Institution: Stanford University % % Date: 2012.08.16 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/euler/bluntbody/blunt.cfg b/TestCases/euler/bluntbody/blunt.cfg index c16188707a0..f9ece1cbae4 100644 --- a/TestCases/euler/bluntbody/blunt.cfg +++ b/TestCases/euler/bluntbody/blunt.cfg @@ -5,7 +5,7 @@ % Author: Amit Sachdeva % % Institution: ADSG-VSSC % % Date: 2019.01.23 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/euler/channel/inv_channel.cfg b/TestCases/euler/channel/inv_channel.cfg index ae7ab80cbc1..096688e6fd9 100644 --- a/TestCases/euler/channel/inv_channel.cfg +++ b/TestCases/euler/channel/inv_channel.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 2012.09.29 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/euler/channel/inv_channel_RK.cfg b/TestCases/euler/channel/inv_channel_RK.cfg index 2a7c72c77f7..ee2b3513e14 100644 --- a/TestCases/euler/channel/inv_channel_RK.cfg +++ b/TestCases/euler/channel/inv_channel_RK.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 2012.10.07 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/euler/naca0012/inv_NACA0012.cfg b/TestCases/euler/naca0012/inv_NACA0012.cfg index a57ff4e4e4d..a3d676a2773 100644 --- a/TestCases/euler/naca0012/inv_NACA0012.cfg +++ b/TestCases/euler/naca0012/inv_NACA0012.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 2014.06.11 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/euler/naca0012/inv_NACA0012_Roe.cfg b/TestCases/euler/naca0012/inv_NACA0012_Roe.cfg index 4df2ca7e453..6215d0870ae 100644 --- a/TestCases/euler/naca0012/inv_NACA0012_Roe.cfg +++ b/TestCases/euler/naca0012/inv_NACA0012_Roe.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 2012.10.07 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/euler/oneram6/inv_ONERAM6.cfg b/TestCases/euler/oneram6/inv_ONERAM6.cfg index f8a5ed2228c..ef6e0028a09 100644 --- a/TestCases/euler/oneram6/inv_ONERAM6.cfg +++ b/TestCases/euler/oneram6/inv_ONERAM6.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 2015.08.25 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/euler/ramp/inv_ramp.cfg b/TestCases/euler/ramp/inv_ramp.cfg index 2f27ee85973..7aa109d1cf4 100644 --- a/TestCases/euler/ramp/inv_ramp.cfg +++ b/TestCases/euler/ramp/inv_ramp.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon, Amit Sachdeva % % Institution: Stanford University % % Date: 2023.04.08 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/euler/wedge/inv_wedge_HLLC.cfg b/TestCases/euler/wedge/inv_wedge_HLLC.cfg index ebbafb0f624..30120e792dd 100644 --- a/TestCases/euler/wedge/inv_wedge_HLLC.cfg +++ b/TestCases/euler/wedge/inv_wedge_HLLC.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 2012.10.07 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/fea_fsi/Airfoil_RBF/config.cfg b/TestCases/fea_fsi/Airfoil_RBF/config.cfg index 9039bd4519e..6d4d173b816 100755 --- a/TestCases/fea_fsi/Airfoil_RBF/config.cfg +++ b/TestCases/fea_fsi/Airfoil_RBF/config.cfg @@ -3,7 +3,7 @@ % Case description: 2D airfoil FSI with radial basis function interp. % % Institution: Imperial College London % % Date: 2015.08.12 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% SOLVER = MULTIPHYSICS diff --git a/TestCases/fea_fsi/Airfoil_RBF/configFEA.cfg b/TestCases/fea_fsi/Airfoil_RBF/configFEA.cfg index ba53a5cc31a..1302baddd57 100644 --- a/TestCases/fea_fsi/Airfoil_RBF/configFEA.cfg +++ b/TestCases/fea_fsi/Airfoil_RBF/configFEA.cfg @@ -2,7 +2,7 @@ % SU2 configuration file % % Case description: 2D airfoil FSI with radial basis function interp. % % Institution: Imperial College London % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % Interface options ---------------------------------------------------- % diff --git a/TestCases/fea_fsi/Airfoil_RBF/configFlow.cfg b/TestCases/fea_fsi/Airfoil_RBF/configFlow.cfg index 9e2032c5a08..3d64047489c 100644 --- a/TestCases/fea_fsi/Airfoil_RBF/configFlow.cfg +++ b/TestCases/fea_fsi/Airfoil_RBF/configFlow.cfg @@ -2,7 +2,7 @@ % SU2 configuration file % % Case description: 2D airfoil FSI with radial basis function interp. % % Institution: Imperial College London % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % Interface options ---------------------------------------------------- % diff --git a/TestCases/fea_fsi/DynBeam_2d/configBeam_2d.cfg b/TestCases/fea_fsi/DynBeam_2d/configBeam_2d.cfg index 3b9e5f955dd..b1bfd911ada 100644 --- a/TestCases/fea_fsi/DynBeam_2d/configBeam_2d.cfg +++ b/TestCases/fea_fsi/DynBeam_2d/configBeam_2d.cfg @@ -4,7 +4,7 @@ % Author: Ruben Sanchez Fernandez % % Institution: Imperial College London % % Date: 2016.02.01 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% SOLVER= ELASTICITY diff --git a/TestCases/fea_fsi/MixElemsKnowles/config.cfg b/TestCases/fea_fsi/MixElemsKnowles/config.cfg index 53f943ca738..1c5f46f1301 100644 --- a/TestCases/fea_fsi/MixElemsKnowles/config.cfg +++ b/TestCases/fea_fsi/MixElemsKnowles/config.cfg @@ -4,7 +4,7 @@ % Case description: Tip-loaded 3D cantilever beam, mix of element types, % % nonlinear elasticity with Knowles material model. % % Institution: Imperial College London % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % diff --git a/TestCases/fea_fsi/SquareCyl_Beam/config.cfg b/TestCases/fea_fsi/SquareCyl_Beam/config.cfg index 361e6a4e5ed..deaf7faf43f 100644 --- a/TestCases/fea_fsi/SquareCyl_Beam/config.cfg +++ b/TestCases/fea_fsi/SquareCyl_Beam/config.cfg @@ -5,7 +5,7 @@ % Author: Ruben Sanchez Fernandez % % Institution: Imperial College London % % Date: 2016.06.01 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/fea_fsi/StatBeam_3d/configBeam_3d.cfg b/TestCases/fea_fsi/StatBeam_3d/configBeam_3d.cfg index c2cc8594e51..bf260358617 100644 --- a/TestCases/fea_fsi/StatBeam_3d/configBeam_3d.cfg +++ b/TestCases/fea_fsi/StatBeam_3d/configBeam_3d.cfg @@ -4,7 +4,7 @@ % Author: Ruben Sanchez Fernandez % % Institution: Imperial College London % % Date: 2016.02.01 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% SOLVER= ELASTICITY diff --git a/TestCases/fea_topology/config.cfg b/TestCases/fea_topology/config.cfg index a1d6fe63e98..2d003609721 100644 --- a/TestCases/fea_topology/config.cfg +++ b/TestCases/fea_topology/config.cfg @@ -2,7 +2,7 @@ % SU2 configuration file % % Case description: 4 by 1 cantilever optim. for stiff. @ 50% material % % Institution: Imperial College London % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % Optimization diff --git a/TestCases/fixed_cl/naca0012/inv_NACA0012.cfg b/TestCases/fixed_cl/naca0012/inv_NACA0012.cfg index 8b42d149a35..5842e3848dc 100644 --- a/TestCases/fixed_cl/naca0012/inv_NACA0012.cfg +++ b/TestCases/fixed_cl/naca0012/inv_NACA0012.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 2014.06.11 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/fixed_cl/naca0012/inv_NACA0012_ContAdj.cfg b/TestCases/fixed_cl/naca0012/inv_NACA0012_ContAdj.cfg index eecbe2141e1..eb7cb3939a4 100644 --- a/TestCases/fixed_cl/naca0012/inv_NACA0012_ContAdj.cfg +++ b/TestCases/fixed_cl/naca0012/inv_NACA0012_ContAdj.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 2014.06.11 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/flamelet/01_laminar_premixed_ch4_flame_cfd/lam_prem_ch4_cfd.cfg b/TestCases/flamelet/01_laminar_premixed_ch4_flame_cfd/lam_prem_ch4_cfd.cfg index d218369f9f7..1b927581780 100644 --- a/TestCases/flamelet/01_laminar_premixed_ch4_flame_cfd/lam_prem_ch4_cfd.cfg +++ b/TestCases/flamelet/01_laminar_premixed_ch4_flame_cfd/lam_prem_ch4_cfd.cfg @@ -4,7 +4,7 @@ % Author: Nijso Beishuizen % % Institution: Bosch Thermotechnology % % Date: 08/09/2021 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % diff --git a/TestCases/flamelet/02_laminar_premixed_ch4_flame_hx_ad/lam_prem_ch4_hx_ad.cfg b/TestCases/flamelet/02_laminar_premixed_ch4_flame_hx_ad/lam_prem_ch4_hx_ad.cfg index 0d9ad8f0331..6774d3acf72 100644 --- a/TestCases/flamelet/02_laminar_premixed_ch4_flame_hx_ad/lam_prem_ch4_hx_ad.cfg +++ b/TestCases/flamelet/02_laminar_premixed_ch4_flame_hx_ad/lam_prem_ch4_hx_ad.cfg @@ -11,7 +11,7 @@ % Institution b: Bosch Thermotechnology % % % % Date: 02/21/2023 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/flamelet/02_laminar_premixed_ch4_flame_hx_ad/lam_prem_ch4_hx_dot.cfg b/TestCases/flamelet/02_laminar_premixed_ch4_flame_hx_ad/lam_prem_ch4_hx_dot.cfg index e24fba9b935..30fdebdebcb 100644 --- a/TestCases/flamelet/02_laminar_premixed_ch4_flame_hx_ad/lam_prem_ch4_hx_dot.cfg +++ b/TestCases/flamelet/02_laminar_premixed_ch4_flame_hx_ad/lam_prem_ch4_hx_dot.cfg @@ -11,7 +11,7 @@ % Institution b: Bosch Thermotechnology % % % % Date: 02/21/2023 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/flamelet/05_laminar_premixed_ch4_flame_cfd_axi/lam_prem_ch4_cfd_axi.cfg b/TestCases/flamelet/05_laminar_premixed_ch4_flame_cfd_axi/lam_prem_ch4_cfd_axi.cfg index d2750fcae1d..7163bb3e833 100644 --- a/TestCases/flamelet/05_laminar_premixed_ch4_flame_cfd_axi/lam_prem_ch4_cfd_axi.cfg +++ b/TestCases/flamelet/05_laminar_premixed_ch4_flame_cfd_axi/lam_prem_ch4_cfd_axi.cfg @@ -5,7 +5,7 @@ % Author: Nijso Beishuizen % % Institution: Bosch Thermotechnology % % Date: 08/09/2021 % -% File Version 8.0.0 "Harrier", % +% File Version 8.0.1 "Harrier", % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % diff --git a/TestCases/flamelet/06_laminar_partial_premixed_ch4_flame_cfd/lam_partial_prem_ch4_cfd.cfg b/TestCases/flamelet/06_laminar_partial_premixed_ch4_flame_cfd/lam_partial_prem_ch4_cfd.cfg index 1ac7c1ebf67..8d1eaf5884f 100644 --- a/TestCases/flamelet/06_laminar_partial_premixed_ch4_flame_cfd/lam_partial_prem_ch4_cfd.cfg +++ b/TestCases/flamelet/06_laminar_partial_premixed_ch4_flame_cfd/lam_partial_prem_ch4_cfd.cfg @@ -4,7 +4,7 @@ % Author: Nijso Beishuizen % % Institution: Bosch Thermotechnology % % Date: 16/06/2023 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % diff --git a/TestCases/grad_smooth/naca0012/inv_NACA0012_gradsmooth.cfg b/TestCases/grad_smooth/naca0012/inv_NACA0012_gradsmooth.cfg index ce3989662c2..641944defc7 100644 --- a/TestCases/grad_smooth/naca0012/inv_NACA0012_gradsmooth.cfg +++ b/TestCases/grad_smooth/naca0012/inv_NACA0012_gradsmooth.cfg @@ -4,7 +4,7 @@ % Case description: Sobolev smoothing for gradient on the NACA 0012 airfoil % % Author: Thomas Dick (TU Kaiserslautern) % % Date: 11.11.2021 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/grad_smooth/oneram6/ONERAM6_gradsmooth.cfg b/TestCases/grad_smooth/oneram6/ONERAM6_gradsmooth.cfg index 354c0681020..d416d9fa02f 100644 --- a/TestCases/grad_smooth/oneram6/ONERAM6_gradsmooth.cfg +++ b/TestCases/grad_smooth/oneram6/ONERAM6_gradsmooth.cfg @@ -4,7 +4,7 @@ % Case description: Sobolev smoothing for gradient on the ONERA M6 wing % % Author: Thomas Dick (TU Kaiserslautern) % % Date: 11.11.2021 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/gust/cosine_gust_zdir.cfg b/TestCases/gust/cosine_gust_zdir.cfg index 402bd5ca232..f4af2f82a91 100644 --- a/TestCases/gust/cosine_gust_zdir.cfg +++ b/TestCases/gust/cosine_gust_zdir.cfg @@ -5,7 +5,7 @@ % Author: Arne Voß % % Institution: DLR % % Date: 25.05.2023 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/gust/gust_with_mesh_deformation.cfg b/TestCases/gust/gust_with_mesh_deformation.cfg index b9b956d7721..adb8b86afa2 100644 --- a/TestCases/gust/gust_with_mesh_deformation.cfg +++ b/TestCases/gust/gust_with_mesh_deformation.cfg @@ -5,7 +5,7 @@ % Author: Arne Voß % % Institution: DLR % % Date: 25.05.2023 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/gust/inv_gust_NACA0012.cfg b/TestCases/gust/inv_gust_NACA0012.cfg index f91ffedf7ab..a7aacaddc3a 100644 --- a/TestCases/gust/inv_gust_NACA0012.cfg +++ b/TestCases/gust/inv_gust_NACA0012.cfg @@ -5,7 +5,7 @@ % Author: Santiago Padron % % Institution: Stanford University % % Date: 06-26-2015 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/harmonic_balance/HB.cfg b/TestCases/harmonic_balance/HB.cfg index 57b4bd0b9a1..060bee2483e 100644 --- a/TestCases/harmonic_balance/HB.cfg +++ b/TestCases/harmonic_balance/HB.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 2016.20.09 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/harmonic_balance/hb_rans_preconditioning/davis.cfg b/TestCases/harmonic_balance/hb_rans_preconditioning/davis.cfg index bd52f939081..e84aa95f79d 100644 --- a/TestCases/harmonic_balance/hb_rans_preconditioning/davis.cfg +++ b/TestCases/harmonic_balance/hb_rans_preconditioning/davis.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 2016.20.09 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/hom_euler/NACA0012_3D_Hybrid_4thOrder/fem_NACA0012.cfg b/TestCases/hom_euler/NACA0012_3D_Hybrid_4thOrder/fem_NACA0012.cfg index 16c0e1dc2c2..83342f46f2e 100644 --- a/TestCases/hom_euler/NACA0012_3D_Hybrid_4thOrder/fem_NACA0012.cfg +++ b/TestCases/hom_euler/NACA0012_3D_Hybrid_4thOrder/fem_NACA0012.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 2014.06.11 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/hom_euler/NACA0012_5thOrder/fem_NACA0012.cfg b/TestCases/hom_euler/NACA0012_5thOrder/fem_NACA0012.cfg index a52f55b7bdb..7181f908947 100644 --- a/TestCases/hom_euler/NACA0012_5thOrder/fem_NACA0012.cfg +++ b/TestCases/hom_euler/NACA0012_5thOrder/fem_NACA0012.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 2014.06.11 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/hom_euler/NACA0012_5thOrder/fem_NACA0012_reg.cfg b/TestCases/hom_euler/NACA0012_5thOrder/fem_NACA0012_reg.cfg index 4308de0c36a..452b22aaade 100644 --- a/TestCases/hom_euler/NACA0012_5thOrder/fem_NACA0012_reg.cfg +++ b/TestCases/hom_euler/NACA0012_5thOrder/fem_NACA0012_reg.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 2014.06.11 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/hom_euler/Sphere_4thOrder_Hexa/fem_Sphere.cfg b/TestCases/hom_euler/Sphere_4thOrder_Hexa/fem_Sphere.cfg index 9967a7f393b..30ebc23af37 100644 --- a/TestCases/hom_euler/Sphere_4thOrder_Hexa/fem_Sphere.cfg +++ b/TestCases/hom_euler/Sphere_4thOrder_Hexa/fem_Sphere.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 2014.06.11 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/hom_euler/Sphere_4thOrder_Tet/fem_Sphere.cfg b/TestCases/hom_euler/Sphere_4thOrder_Tet/fem_Sphere.cfg index 00ec7aa99ea..419a0ee75eb 100644 --- a/TestCases/hom_euler/Sphere_4thOrder_Tet/fem_Sphere.cfg +++ b/TestCases/hom_euler/Sphere_4thOrder_Tet/fem_Sphere.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 2014.06.11 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/hom_euler/SubsonicChannel/nPoly1/fem_SubsonicChannel.cfg b/TestCases/hom_euler/SubsonicChannel/nPoly1/fem_SubsonicChannel.cfg index 29dadb14954..f2f85bc4d59 100644 --- a/TestCases/hom_euler/SubsonicChannel/nPoly1/fem_SubsonicChannel.cfg +++ b/TestCases/hom_euler/SubsonicChannel/nPoly1/fem_SubsonicChannel.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 2014.06.11 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/hom_euler/SubsonicChannel/nPoly1/fem_SubsonicChannel_Farfield.cfg b/TestCases/hom_euler/SubsonicChannel/nPoly1/fem_SubsonicChannel_Farfield.cfg index 8748d28aa55..45bc5af1dfa 100644 --- a/TestCases/hom_euler/SubsonicChannel/nPoly1/fem_SubsonicChannel_Farfield.cfg +++ b/TestCases/hom_euler/SubsonicChannel/nPoly1/fem_SubsonicChannel_Farfield.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 2014.06.11 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/hom_euler/SubsonicChannel/nPoly2/fem_SubsonicChannel.cfg b/TestCases/hom_euler/SubsonicChannel/nPoly2/fem_SubsonicChannel.cfg index b7401a2720f..6036babd65a 100644 --- a/TestCases/hom_euler/SubsonicChannel/nPoly2/fem_SubsonicChannel.cfg +++ b/TestCases/hom_euler/SubsonicChannel/nPoly2/fem_SubsonicChannel.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 2014.06.11 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/hom_euler/SubsonicChannel/nPoly2/fem_SubsonicChannel_Farfield.cfg b/TestCases/hom_euler/SubsonicChannel/nPoly2/fem_SubsonicChannel_Farfield.cfg index 2c53edb7869..f0f06f23f39 100644 --- a/TestCases/hom_euler/SubsonicChannel/nPoly2/fem_SubsonicChannel_Farfield.cfg +++ b/TestCases/hom_euler/SubsonicChannel/nPoly2/fem_SubsonicChannel_Farfield.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 2014.06.11 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/hom_euler/SubsonicChannel/nPoly4/fem_SubsonicChannel.cfg b/TestCases/hom_euler/SubsonicChannel/nPoly4/fem_SubsonicChannel.cfg index a5dcaac6a8e..95967d915c5 100644 --- a/TestCases/hom_euler/SubsonicChannel/nPoly4/fem_SubsonicChannel.cfg +++ b/TestCases/hom_euler/SubsonicChannel/nPoly4/fem_SubsonicChannel.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 2014.06.11 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/hom_euler/SubsonicChannel/nPoly4/fem_SubsonicChannel_Farfield.cfg b/TestCases/hom_euler/SubsonicChannel/nPoly4/fem_SubsonicChannel_Farfield.cfg index 9d19fc688b6..88016cb065c 100644 --- a/TestCases/hom_euler/SubsonicChannel/nPoly4/fem_SubsonicChannel_Farfield.cfg +++ b/TestCases/hom_euler/SubsonicChannel/nPoly4/fem_SubsonicChannel_Farfield.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 2014.06.11 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/hom_navierstokes/CylinderViscous/nPoly3/fem_Cylinder_reg.cfg b/TestCases/hom_navierstokes/CylinderViscous/nPoly3/fem_Cylinder_reg.cfg index 2c430c8989c..c3573e54b67 100644 --- a/TestCases/hom_navierstokes/CylinderViscous/nPoly3/fem_Cylinder_reg.cfg +++ b/TestCases/hom_navierstokes/CylinderViscous/nPoly3/fem_Cylinder_reg.cfg @@ -5,7 +5,7 @@ % Author: Edwin van der Weide % % Institution: University of Twente % % Date: 2016.07.15 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/hom_navierstokes/FlatPlate/nPoly4/lam_flatplate_reg.cfg b/TestCases/hom_navierstokes/FlatPlate/nPoly4/lam_flatplate_reg.cfg index 99260564e78..562f1b960d3 100644 --- a/TestCases/hom_navierstokes/FlatPlate/nPoly4/lam_flatplate_reg.cfg +++ b/TestCases/hom_navierstokes/FlatPlate/nPoly4/lam_flatplate_reg.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 2013.09.30 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/hom_navierstokes/SphereViscous/nPoly3_QuadDominant/fem_Sphere_reg.cfg b/TestCases/hom_navierstokes/SphereViscous/nPoly3_QuadDominant/fem_Sphere_reg.cfg index 01c13c309dd..f00853bac70 100644 --- a/TestCases/hom_navierstokes/SphereViscous/nPoly3_QuadDominant/fem_Sphere_reg.cfg +++ b/TestCases/hom_navierstokes/SphereViscous/nPoly3_QuadDominant/fem_Sphere_reg.cfg @@ -5,7 +5,7 @@ % Author: Edwin van der Weide % % Institution: University of Twente % % Date: 2016.07.15 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/hom_navierstokes/SphereViscous/nPoly3_QuadDominant/fem_Sphere_reg_ADER.cfg b/TestCases/hom_navierstokes/SphereViscous/nPoly3_QuadDominant/fem_Sphere_reg_ADER.cfg index 724ed5bedc1..fe18b0cf63a 100644 --- a/TestCases/hom_navierstokes/SphereViscous/nPoly3_QuadDominant/fem_Sphere_reg_ADER.cfg +++ b/TestCases/hom_navierstokes/SphereViscous/nPoly3_QuadDominant/fem_Sphere_reg_ADER.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 2014.06.11 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/hom_navierstokes/UnsteadyCylinder/nPoly4/fem_unst_cylinder.cfg b/TestCases/hom_navierstokes/UnsteadyCylinder/nPoly4/fem_unst_cylinder.cfg index 5f0fb601fca..9d04015124b 100644 --- a/TestCases/hom_navierstokes/UnsteadyCylinder/nPoly4/fem_unst_cylinder.cfg +++ b/TestCases/hom_navierstokes/UnsteadyCylinder/nPoly4/fem_unst_cylinder.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 2014.06.11 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/hom_navierstokes/UnsteadyCylinder/nPoly4/fem_unst_cylinder_ADER.cfg b/TestCases/hom_navierstokes/UnsteadyCylinder/nPoly4/fem_unst_cylinder_ADER.cfg index 9bec3e9366c..1042c16c768 100644 --- a/TestCases/hom_navierstokes/UnsteadyCylinder/nPoly4/fem_unst_cylinder_ADER.cfg +++ b/TestCases/hom_navierstokes/UnsteadyCylinder/nPoly4/fem_unst_cylinder_ADER.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 2014.06.11 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/hybrid_regression.py b/TestCases/hybrid_regression.py index 801ca167f31..8745a96f610 100644 --- a/TestCases/hybrid_regression.py +++ b/TestCases/hybrid_regression.py @@ -3,14 +3,14 @@ ## \file hybrid_regression.py # \brief Python script for automated regression testing of SU2 examples # \author A. Aranake, A. Campos, T. Economon, T. Lukaczyk, S. Padron -# \version 8.0.0 "Harrier" +# \version 8.0.1 "Harrier" # # SU2 Project Website: https://su2code.github.io # # The SU2 Project is maintained by the SU2 Foundation # (http://su2foundation.org) # -# Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) +# Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) # # SU2 is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public @@ -436,7 +436,7 @@ def main(): cavity.cfg_dir = "moving_wall/cavity" cavity.cfg_file = "lam_cavity.cfg" cavity.test_iter = 25 - cavity.test_vals = [-5.627934, -0.164469, 0.052000, 2.547063] + cavity.test_vals = [-5.627868, -0.164404, 0.053310, 2.545839] test_list.append(cavity) # Spinning cylinder @@ -444,8 +444,8 @@ def main(): spinning_cylinder.cfg_dir = "moving_wall/spinning_cylinder" spinning_cylinder.cfg_file = "spinning_cylinder.cfg" spinning_cylinder.test_iter = 25 - spinning_cylinder.test_vals = [-8.001291, -2.607959, 1.501321, 1.488559] - spinning_cylinder.test_vals_aarch64 = [-8.001291, -2.607959, 1.501321, 1.488559] + spinning_cylinder.test_vals = [-8.006541, -2.609759, 1.495662, 1.486341] + spinning_cylinder.test_vals_aarch64 = [-8.006541, -2.609759, 1.495662, 1.486341] test_list.append(spinning_cylinder) ###################################### @@ -561,7 +561,7 @@ def main(): Jones_tc_restart.cfg_dir = "turbomachinery/APU_turbocharger" Jones_tc_restart.cfg_file = "Jones_restart.cfg" Jones_tc_restart.test_iter = 5 - Jones_tc_restart.test_vals = [-6.604542, -2.792279, -14.328530, -8.769313, -11.371439, -5.845633, 73273.000000, 73273.000000] + Jones_tc_restart.test_vals = [-6.594590, -2.792279, -14.336129, -8.776066, -11.371439, -5.845633, 73273, 73273, 0.019884, 82.491] test_list.append(Jones_tc_restart) # 2D axial stage @@ -569,7 +569,8 @@ def main(): axial_stage2D.cfg_dir = "turbomachinery/axial_stage_2D" axial_stage2D.cfg_file = "Axial_stage2D.cfg" axial_stage2D.test_iter = 20 - axial_stage2D.test_vals = [0.974788, 1.534326, -2.897693, 2.599374, -2.418314, 3.087291, 106380.000000, 106380.000000] + axial_stage2D.test_vals = [0.983739, 1.534333, -2.888521, 2.606770, -2.418339, 3.087275, 106380, 106380, 5.7325, 64.711] + axial_stage2D.test_vals_aarch64 = [0.983739, 1.534333, -2.888521, 2.606770, -2.418339, 3.087275, 106380, 106380, 5.7325, 64.711] test_list.append(axial_stage2D) # 2D transonic stator restart @@ -577,7 +578,8 @@ def main(): transonic_stator_restart.cfg_dir = "turbomachinery/transonic_stator_2D" transonic_stator_restart.cfg_file = "transonic_stator_restart.cfg" transonic_stator_restart.test_iter = 20 - transonic_stator_restart.test_vals = [-5.346503, -3.510597, -3.156830, 0.752511, -3.834382, 1.816610, -471690] + transonic_stator_restart.test_vals = [-5.007735, -3.099310, -2.751696, 1.091966, -3.542819, 2.163237, -471630, 94.866, -0.035738] + transonic_stator_restart.test_vals_aarch64 = [-5.007735, -3.099310, -2.751696, 1.091966, -3.542819, 2.163237, -471630, 94.866, -0.035738] test_list.append(transonic_stator_restart) ###################################### @@ -771,6 +773,7 @@ def main(): pywrapper_translating_naca0012.reference_file = "forces_0.csv.ref" pywrapper_translating_naca0012.reference_file_aarch64 = "forces_0_aarch64.csv.ref" pywrapper_translating_naca0012.test_file = "forces_0.csv" + pywrapper_translating_naca0012.tol_file_percent = 0.1 pywrapper_translating_naca0012.enabled_on_cpu_arch = ["x86_64"] pywrapper_translating_naca0012.enabled_with_tsan = False file_diff_list.append(pywrapper_translating_naca0012) @@ -784,6 +787,7 @@ def main(): pywrapper_updated_moving_frame_naca0012.reference_file = "forces_0.csv.ref" pywrapper_updated_moving_frame_naca0012.reference_file_aarch64 = "forces_0_aarch64.csv.ref" pywrapper_updated_moving_frame_naca0012.test_file = "forces_0.csv" + pywrapper_updated_moving_frame_naca0012.tol_file_percent = 0.1 pywrapper_updated_moving_frame_naca0012.enabled_on_cpu_arch = ["x86_64"] pywrapper_updated_moving_frame_naca0012.enabled_with_tsan = False file_diff_list.append(pywrapper_updated_moving_frame_naca0012) diff --git a/TestCases/hybrid_regression_AD.py b/TestCases/hybrid_regression_AD.py index a2243e14e24..5bf0befa263 100644 --- a/TestCases/hybrid_regression_AD.py +++ b/TestCases/hybrid_regression_AD.py @@ -3,14 +3,14 @@ ## \file hybrid_regression_AD.py # \brief Python script for automated regression testing of SU2 examples # \author A. Aranake, A. Campos, T. Economon, T. Lukaczyk, S. Padron -# \version 8.0.0 "Harrier" +# \version 8.0.1 "Harrier" # # SU2 Project Website: https://su2code.github.io # # The SU2 Project is maintained by the SU2 Foundation # (http://su2foundation.org) # -# Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) +# Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) # # SU2 is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public @@ -238,11 +238,11 @@ def main(): pywrapper_FEA_AD_FlowLoad.cfg_dir = "py_wrapper/disc_adj_fea/flow_load_sens" pywrapper_FEA_AD_FlowLoad.cfg_file = "configAD_fem.cfg" pywrapper_FEA_AD_FlowLoad.test_iter = 100 - pywrapper_FEA_AD_FlowLoad.test_vals = [-0.131742, -0.553318, -0.000364, -0.003101] #last 4 columns + pywrapper_FEA_AD_FlowLoad.test_vals = [-0.131415, -0.551701, -0.000364, -0.003101] #last 4 columns pywrapper_FEA_AD_FlowLoad.test_vals_aarch64 = [-0.131745, -0.553214, -0.000364, -0.003101] pywrapper_FEA_AD_FlowLoad.command = TestCase.Command(exec = "python", param = "run_adjoint.py --parallel -f") pywrapper_FEA_AD_FlowLoad.timeout = 1600 - pywrapper_FEA_AD_FlowLoad.tol = 1e-4 + pywrapper_FEA_AD_FlowLoad.tol = 1e-2 pywrapper_FEA_AD_FlowLoad.new_output = False pywrapper_FEA_AD_FlowLoad.enabled_with_tsan = False test_list.append(pywrapper_FEA_AD_FlowLoad) @@ -253,11 +253,11 @@ def main(): pywrapper_CFD_AD_MeshDisp.cfg_dir = "py_wrapper/disc_adj_flow/mesh_disp_sens" pywrapper_CFD_AD_MeshDisp.cfg_file = "configAD_flow.cfg" pywrapper_CFD_AD_MeshDisp.test_iter = 1000 - pywrapper_CFD_AD_MeshDisp.test_vals = [30.000000, -2.520967, 1.375188, 0.000000] #last 4 columns + pywrapper_CFD_AD_MeshDisp.test_vals = [30.000000, -2.521422, 1.372295, 0.000000] #last 4 columns pywrapper_CFD_AD_MeshDisp.test_vals_aarch64 = [30.000000, -2.516536, 1.386443, 0.000000] pywrapper_CFD_AD_MeshDisp.command = TestCase.Command(exec = "python", param = "run_adjoint.py --parallel -f") pywrapper_CFD_AD_MeshDisp.timeout = 1600 - pywrapper_CFD_AD_MeshDisp.tol = 1e-4 + pywrapper_CFD_AD_MeshDisp.tol = 1e-2 pywrapper_CFD_AD_MeshDisp.new_output = False pywrapper_CFD_AD_MeshDisp.enabled_with_tsan = False test_list.append(pywrapper_CFD_AD_MeshDisp) diff --git a/TestCases/incomp_euler/naca0012/incomp_NACA0012.cfg b/TestCases/incomp_euler/naca0012/incomp_NACA0012.cfg index 216a1881a31..3b7da053aef 100644 --- a/TestCases/incomp_euler/naca0012/incomp_NACA0012.cfg +++ b/TestCases/incomp_euler/naca0012/incomp_NACA0012.cfg @@ -5,7 +5,7 @@ % Author: Francisco Palacios % % Institution: Stanford University % % Date: 09/18/2011 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/incomp_euler/nozzle/inv_nozzle.cfg b/TestCases/incomp_euler/nozzle/inv_nozzle.cfg index 314311408e6..0c793b2c903 100644 --- a/TestCases/incomp_euler/nozzle/inv_nozzle.cfg +++ b/TestCases/incomp_euler/nozzle/inv_nozzle.cfg @@ -4,7 +4,7 @@ % Case description: Inv. inc. nozzle with pressure inlet and mass flow outlet % % Author: Thomas D. Economon % % Date: 2018.11.30 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/incomp_navierstokes/buoyancy_cavity/lam_buoyancy_cavity.cfg b/TestCases/incomp_navierstokes/buoyancy_cavity/lam_buoyancy_cavity.cfg index 96bcd92712b..eb2922c6c91 100644 --- a/TestCases/incomp_navierstokes/buoyancy_cavity/lam_buoyancy_cavity.cfg +++ b/TestCases/incomp_navierstokes/buoyancy_cavity/lam_buoyancy_cavity.cfg @@ -4,7 +4,7 @@ % Case description: Buoyancy-driven flow inside a cavity % % Author: Thomas D. Economon % % Date: 2018.06.10 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/incomp_navierstokes/cylinder/incomp_cylinder.cfg b/TestCases/incomp_navierstokes/cylinder/incomp_cylinder.cfg index 416c10715c5..1c39879c839 100644 --- a/TestCases/incomp_navierstokes/cylinder/incomp_cylinder.cfg +++ b/TestCases/incomp_navierstokes/cylinder/incomp_cylinder.cfg @@ -5,7 +5,7 @@ % Author: Francisco Palacios % % Institution: Stanford University % % Date: 2012.03.14 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/incomp_navierstokes/cylinder/poly_cylinder.cfg b/TestCases/incomp_navierstokes/cylinder/poly_cylinder.cfg index 7e12b59731f..f6615b9cb9b 100644 --- a/TestCases/incomp_navierstokes/cylinder/poly_cylinder.cfg +++ b/TestCases/incomp_navierstokes/cylinder/poly_cylinder.cfg @@ -5,7 +5,7 @@ % custom fluid using polynomial fluid models. % % Author: Thomas D. Economon % % Date: 2018.12.02 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/incomp_navierstokes/streamwise_periodic/chtPinArray_2d/BC_HeatTransfer.cfg b/TestCases/incomp_navierstokes/streamwise_periodic/chtPinArray_2d/BC_HeatTransfer.cfg index accd40e479a..e173a1b963d 100644 --- a/TestCases/incomp_navierstokes/streamwise_periodic/chtPinArray_2d/BC_HeatTransfer.cfg +++ b/TestCases/incomp_navierstokes/streamwise_periodic/chtPinArray_2d/BC_HeatTransfer.cfg @@ -5,7 +5,7 @@ % Author: T. Kattmann % % Institution: Robert Bosch GmbH % % Date: 2020.12.15 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % diff --git a/TestCases/incomp_navierstokes/streamwise_periodic/chtPinArray_2d/DA_configMaster.cfg b/TestCases/incomp_navierstokes/streamwise_periodic/chtPinArray_2d/DA_configMaster.cfg index 959a904fd69..7f466aec419 100644 --- a/TestCases/incomp_navierstokes/streamwise_periodic/chtPinArray_2d/DA_configMaster.cfg +++ b/TestCases/incomp_navierstokes/streamwise_periodic/chtPinArray_2d/DA_configMaster.cfg @@ -5,7 +5,7 @@ % Author: T. Kattmann % % Institution: Robert Bosch GmbH % % Date: 2020.12.15 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % diff --git a/TestCases/incomp_navierstokes/streamwise_periodic/chtPinArray_2d/FD_configMaster.cfg b/TestCases/incomp_navierstokes/streamwise_periodic/chtPinArray_2d/FD_configMaster.cfg index 6fecd5e600a..78e73b6b8ac 100644 --- a/TestCases/incomp_navierstokes/streamwise_periodic/chtPinArray_2d/FD_configMaster.cfg +++ b/TestCases/incomp_navierstokes/streamwise_periodic/chtPinArray_2d/FD_configMaster.cfg @@ -5,7 +5,7 @@ % Author: T. Kattmann % % Institution: Robert Bosch GmbH % % Date: 2020.12.15 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % diff --git a/TestCases/incomp_navierstokes/streamwise_periodic/chtPinArray_2d/configFluid.cfg b/TestCases/incomp_navierstokes/streamwise_periodic/chtPinArray_2d/configFluid.cfg index 23a368fe73d..d3e26391ff7 100644 --- a/TestCases/incomp_navierstokes/streamwise_periodic/chtPinArray_2d/configFluid.cfg +++ b/TestCases/incomp_navierstokes/streamwise_periodic/chtPinArray_2d/configFluid.cfg @@ -5,7 +5,7 @@ % Author: T. Kattmann % % Institution: Robert Bosch GmbH % % Date: 2020.12.15 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % diff --git a/TestCases/incomp_navierstokes/streamwise_periodic/chtPinArray_2d/configMaster.cfg b/TestCases/incomp_navierstokes/streamwise_periodic/chtPinArray_2d/configMaster.cfg index 04f77424365..e3eb5f8c0fd 100644 --- a/TestCases/incomp_navierstokes/streamwise_periodic/chtPinArray_2d/configMaster.cfg +++ b/TestCases/incomp_navierstokes/streamwise_periodic/chtPinArray_2d/configMaster.cfg @@ -5,7 +5,7 @@ % Author: T. Kattmann % % Institution: Robert Bosch GmbH % % Date: 2020.12.15 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % diff --git a/TestCases/incomp_navierstokes/streamwise_periodic/chtPinArray_2d/configSolid.cfg b/TestCases/incomp_navierstokes/streamwise_periodic/chtPinArray_2d/configSolid.cfg index 07f3733229d..b5bb0e5fdfd 100644 --- a/TestCases/incomp_navierstokes/streamwise_periodic/chtPinArray_2d/configSolid.cfg +++ b/TestCases/incomp_navierstokes/streamwise_periodic/chtPinArray_2d/configSolid.cfg @@ -5,7 +5,7 @@ % Author: T. Kattmann % % Institution: Robert Bosch GmbH % % Date: 2020.12.15 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % diff --git a/TestCases/incomp_navierstokes/streamwise_periodic/chtPinArray_3d/configFluid.cfg b/TestCases/incomp_navierstokes/streamwise_periodic/chtPinArray_3d/configFluid.cfg index e6b53711cf2..2f46bdc72db 100644 --- a/TestCases/incomp_navierstokes/streamwise_periodic/chtPinArray_3d/configFluid.cfg +++ b/TestCases/incomp_navierstokes/streamwise_periodic/chtPinArray_3d/configFluid.cfg @@ -5,7 +5,7 @@ % Author: T. Kattmann % % Institution: Robert Bosch GmbH % % Date: 07.06.2019 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % diff --git a/TestCases/incomp_navierstokes/streamwise_periodic/chtPinArray_3d/configMaster.cfg b/TestCases/incomp_navierstokes/streamwise_periodic/chtPinArray_3d/configMaster.cfg index e4b01538e7e..8ff23f71359 100644 --- a/TestCases/incomp_navierstokes/streamwise_periodic/chtPinArray_3d/configMaster.cfg +++ b/TestCases/incomp_navierstokes/streamwise_periodic/chtPinArray_3d/configMaster.cfg @@ -5,7 +5,7 @@ % Author: T. Kattmann % % Institution: Robert Bosch GmbH % % Date: 2020.12.15 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % diff --git a/TestCases/incomp_navierstokes/streamwise_periodic/chtPinArray_3d/configSolid.cfg b/TestCases/incomp_navierstokes/streamwise_periodic/chtPinArray_3d/configSolid.cfg index 8db23aa8353..6322362ee9e 100644 --- a/TestCases/incomp_navierstokes/streamwise_periodic/chtPinArray_3d/configSolid.cfg +++ b/TestCases/incomp_navierstokes/streamwise_periodic/chtPinArray_3d/configSolid.cfg @@ -5,7 +5,7 @@ % Author: T. Kattmann % % Institution: Robert Bosch GmbH % % Date: 07.06.2019 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % diff --git a/TestCases/incomp_navierstokes/streamwise_periodic/dp-adjoint_chtPinArray_2d/configFluid.cfg b/TestCases/incomp_navierstokes/streamwise_periodic/dp-adjoint_chtPinArray_2d/configFluid.cfg index 41c4c40e07f..bfa4ef2751f 100644 --- a/TestCases/incomp_navierstokes/streamwise_periodic/dp-adjoint_chtPinArray_2d/configFluid.cfg +++ b/TestCases/incomp_navierstokes/streamwise_periodic/dp-adjoint_chtPinArray_2d/configFluid.cfg @@ -4,7 +4,7 @@ % Case description: Unit Cell flow around pin array (fluid) % % Author: T. Kattmann % % Date: 2022.02.10 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % diff --git a/TestCases/incomp_navierstokes/streamwise_periodic/dp-adjoint_chtPinArray_2d/configMaster.cfg b/TestCases/incomp_navierstokes/streamwise_periodic/dp-adjoint_chtPinArray_2d/configMaster.cfg index 84d81a2b70b..d919bd1f527 100644 --- a/TestCases/incomp_navierstokes/streamwise_periodic/dp-adjoint_chtPinArray_2d/configMaster.cfg +++ b/TestCases/incomp_navierstokes/streamwise_periodic/dp-adjoint_chtPinArray_2d/configMaster.cfg @@ -5,7 +5,7 @@ % Author: T. Kattmann % % Institution: None % % Date: 2022.02.10 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % diff --git a/TestCases/incomp_navierstokes/streamwise_periodic/dp-adjoint_chtPinArray_2d/configSolid.cfg b/TestCases/incomp_navierstokes/streamwise_periodic/dp-adjoint_chtPinArray_2d/configSolid.cfg index 20d3b009eb5..bb25006785f 100644 --- a/TestCases/incomp_navierstokes/streamwise_periodic/dp-adjoint_chtPinArray_2d/configSolid.cfg +++ b/TestCases/incomp_navierstokes/streamwise_periodic/dp-adjoint_chtPinArray_2d/configSolid.cfg @@ -5,7 +5,7 @@ % Author: T. Kattmann % % Institution: None % % Date: 2022.02.10 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % diff --git a/TestCases/incomp_navierstokes/streamwise_periodic/pipeSlice_3d/sp_pipeSlice_3d_dp_hf_tp.cfg b/TestCases/incomp_navierstokes/streamwise_periodic/pipeSlice_3d/sp_pipeSlice_3d_dp_hf_tp.cfg index 5b80170d3f7..66852d2f4f8 100644 --- a/TestCases/incomp_navierstokes/streamwise_periodic/pipeSlice_3d/sp_pipeSlice_3d_dp_hf_tp.cfg +++ b/TestCases/incomp_navierstokes/streamwise_periodic/pipeSlice_3d/sp_pipeSlice_3d_dp_hf_tp.cfg @@ -5,7 +5,7 @@ % Author: T. Kattmann % % Institution: Robert Bosch GmbH % % Date: 2020.12.14 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/incomp_rans/naca0012/naca0012.cfg b/TestCases/incomp_rans/naca0012/naca0012.cfg index 49bb44fde10..8788151b612 100644 --- a/TestCases/incomp_rans/naca0012/naca0012.cfg +++ b/TestCases/incomp_rans/naca0012/naca0012.cfg @@ -6,7 +6,7 @@ % Author: Francisco Palacios % % Institution: Stanford University % % Date: Feb 18th, 2013 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/incomp_rans/naca0012/naca0012_SST_SUST.cfg b/TestCases/incomp_rans/naca0012/naca0012_SST_SUST.cfg index c351edbd375..e60d19dab49 100644 --- a/TestCases/incomp_rans/naca0012/naca0012_SST_SUST.cfg +++ b/TestCases/incomp_rans/naca0012/naca0012_SST_SUST.cfg @@ -6,7 +6,7 @@ % Author: Francisco Palacios % % Institution: Stanford University % % Date: Feb 18th, 2013 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/incomp_rans/rough_flatplate/rough_flatplate_incomp.cfg b/TestCases/incomp_rans/rough_flatplate/rough_flatplate_incomp.cfg index 46d029f7e6d..a975c37c833 100644 --- a/TestCases/incomp_rans/rough_flatplate/rough_flatplate_incomp.cfg +++ b/TestCases/incomp_rans/rough_flatplate/rough_flatplate_incomp.cfg @@ -5,7 +5,7 @@ % pressure gradient % % Author: Akshay Koodly % % Date: 2020.07.07 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/mms/dg_ringleb/ringleb_dg.cfg b/TestCases/mms/dg_ringleb/ringleb_dg.cfg index f25a4f2d4b3..3225908ec46 100644 --- a/TestCases/mms/dg_ringleb/ringleb_dg.cfg +++ b/TestCases/mms/dg_ringleb/ringleb_dg.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 2014.06.11 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/mms/fvm_incomp_euler/inv_mms_jst.cfg b/TestCases/mms/fvm_incomp_euler/inv_mms_jst.cfg index 0ca4f269eae..db51abc1a30 100755 --- a/TestCases/mms/fvm_incomp_euler/inv_mms_jst.cfg +++ b/TestCases/mms/fvm_incomp_euler/inv_mms_jst.cfg @@ -4,7 +4,7 @@ % Case description: Incompressible inviscid MMS test case % % Author: Thomas D. Economon % % Date: 2019.04.09 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/mms/fvm_incomp_navierstokes/lam_mms_fds.cfg b/TestCases/mms/fvm_incomp_navierstokes/lam_mms_fds.cfg index 1e77e3c1574..76a136f7b46 100755 --- a/TestCases/mms/fvm_incomp_navierstokes/lam_mms_fds.cfg +++ b/TestCases/mms/fvm_incomp_navierstokes/lam_mms_fds.cfg @@ -4,7 +4,7 @@ % Case description: Incompressible laminar MMS test case % % Author: Thomas D. Economon % % Date: 2019.04.09 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/mms/fvm_navierstokes/lam_mms_roe.cfg b/TestCases/mms/fvm_navierstokes/lam_mms_roe.cfg index 139e6a4a84e..48190ff4095 100755 --- a/TestCases/mms/fvm_navierstokes/lam_mms_roe.cfg +++ b/TestCases/mms/fvm_navierstokes/lam_mms_roe.cfg @@ -4,7 +4,7 @@ % Case description: Compressible laminar MMS test case % % Author: Thomas D. Economon % % Date: 2019.04.09 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/moving_wall/cavity/lam_cavity.cfg b/TestCases/moving_wall/cavity/lam_cavity.cfg index 2fd187e65da..6d722cfc501 100644 --- a/TestCases/moving_wall/cavity/lam_cavity.cfg +++ b/TestCases/moving_wall/cavity/lam_cavity.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 2013.10.01 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/moving_wall/spinning_cylinder/spinning_cylinder.cfg b/TestCases/moving_wall/spinning_cylinder/spinning_cylinder.cfg index b28ce99bdc9..a91b8a7b3f6 100644 --- a/TestCases/moving_wall/spinning_cylinder/spinning_cylinder.cfg +++ b/TestCases/moving_wall/spinning_cylinder/spinning_cylinder.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 2013.08.21 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/multiple_ffd/naca0012/inv_NACA0012_ffd.cfg b/TestCases/multiple_ffd/naca0012/inv_NACA0012_ffd.cfg index 848ecf88acb..2eb8dc4b2bf 100644 --- a/TestCases/multiple_ffd/naca0012/inv_NACA0012_ffd.cfg +++ b/TestCases/multiple_ffd/naca0012/inv_NACA0012_ffd.cfg @@ -5,7 +5,7 @@ % Author: Francisco Palacios, Charanya Venkatesan-Crome % % Institution: Stanford University % % Date: 2018.07.23 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/navierstokes/cylinder/cylinder_lowmach.cfg b/TestCases/navierstokes/cylinder/cylinder_lowmach.cfg index ce01b555f79..1d09e8997c3 100644 --- a/TestCases/navierstokes/cylinder/cylinder_lowmach.cfg +++ b/TestCases/navierstokes/cylinder/cylinder_lowmach.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 2013.09.30 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/navierstokes/cylinder/lam_cylinder.cfg b/TestCases/navierstokes/cylinder/lam_cylinder.cfg index 1079748199e..8c0efd53259 100644 --- a/TestCases/navierstokes/cylinder/lam_cylinder.cfg +++ b/TestCases/navierstokes/cylinder/lam_cylinder.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 2013.09.30 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/navierstokes/flatplate/lam_flatplate.cfg b/TestCases/navierstokes/flatplate/lam_flatplate.cfg index 13f3b7db032..34f572d5598 100644 --- a/TestCases/navierstokes/flatplate/lam_flatplate.cfg +++ b/TestCases/navierstokes/flatplate/lam_flatplate.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 2013.09.30 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/navierstokes/flatplate/lam_flatplate_unst.cfg b/TestCases/navierstokes/flatplate/lam_flatplate_unst.cfg index 89050e0104c..649a2deae51 100644 --- a/TestCases/navierstokes/flatplate/lam_flatplate_unst.cfg +++ b/TestCases/navierstokes/flatplate/lam_flatplate_unst.cfg @@ -2,7 +2,7 @@ % % % SU2 configuration file % % Case description: Test interp. restart, and auto time-step for dual-time % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % diff --git a/TestCases/navierstokes/naca0012/lam_NACA0012.cfg b/TestCases/navierstokes/naca0012/lam_NACA0012.cfg index 1c31a0db257..7ee9335ef73 100644 --- a/TestCases/navierstokes/naca0012/lam_NACA0012.cfg +++ b/TestCases/navierstokes/naca0012/lam_NACA0012.cfg @@ -5,7 +5,7 @@ % Author: Francisco Palacios % % Institution: Stanford University % % Date: Sep 28, 2012 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/navierstokes/poiseuille/lam_poiseuille.cfg b/TestCases/navierstokes/poiseuille/lam_poiseuille.cfg index ba79d7445f6..35b04ae0790 100644 --- a/TestCases/navierstokes/poiseuille/lam_poiseuille.cfg +++ b/TestCases/navierstokes/poiseuille/lam_poiseuille.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 2017.02.27 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/navierstokes/poiseuille/profile_poiseuille.cfg b/TestCases/navierstokes/poiseuille/profile_poiseuille.cfg index d68a89741a1..d359fb8e155 100644 --- a/TestCases/navierstokes/poiseuille/profile_poiseuille.cfg +++ b/TestCases/navierstokes/poiseuille/profile_poiseuille.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Robert Bosch LLC % % Date: 2018.03.19 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/nicf/LS89/turb_SA_PR.cfg b/TestCases/nicf/LS89/turb_SA_PR.cfg index 737fdb2f467..8a2598faea0 100644 --- a/TestCases/nicf/LS89/turb_SA_PR.cfg +++ b/TestCases/nicf/LS89/turb_SA_PR.cfg @@ -5,7 +5,7 @@ % Author: M. Pini, S. Vitale % % Institution: Delft University of Technology % % Date: Feb 18th, 2013 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/nicf/LS89/turb_SST_PR.cfg b/TestCases/nicf/LS89/turb_SST_PR.cfg index ff9d057c34c..48387c1dad2 100644 --- a/TestCases/nicf/LS89/turb_SST_PR.cfg +++ b/TestCases/nicf/LS89/turb_SST_PR.cfg @@ -5,7 +5,7 @@ % Author: M. Pini, S. Vitale % % Institution: Delft University of Technology % % Date: Feb 18th, 2013 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/nicf/coolprop/fluidModel.cfg b/TestCases/nicf/coolprop/fluidModel.cfg index 89d0c98e03c..9c4b06cfbc9 100644 --- a/TestCases/nicf/coolprop/fluidModel.cfg +++ b/TestCases/nicf/coolprop/fluidModel.cfg @@ -6,7 +6,7 @@ % Author: Peng Yan, Alberto Guardone % % Institution: Politecnico di Milano % % Date: 2022.10.8 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/nicf/coolprop/transportModel.cfg b/TestCases/nicf/coolprop/transportModel.cfg index 1e731406a5d..5427fbc28d3 100644 --- a/TestCases/nicf/coolprop/transportModel.cfg +++ b/TestCases/nicf/coolprop/transportModel.cfg @@ -6,7 +6,7 @@ % Author: Peng Yan, Alberto Guardone % % Institution: Politecnico di Milano % % Date: 2022.11.26 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/nicf/datadriven/datadriven_nozzle.cfg b/TestCases/nicf/datadriven/datadriven_nozzle.cfg index 65051295b75..f47f151a18f 100644 --- a/TestCases/nicf/datadriven/datadriven_nozzle.cfg +++ b/TestCases/nicf/datadriven/datadriven_nozzle.cfg @@ -7,7 +7,7 @@ % Author: Evert Bunschoten % % Institution: Delft University of Technology % % Date: 2022.10.8 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/nicf/edge/edge_PPR.cfg b/TestCases/nicf/edge/edge_PPR.cfg index 06a3c9c7193..759187d1229 100644 --- a/TestCases/nicf/edge/edge_PPR.cfg +++ b/TestCases/nicf/edge/edge_PPR.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 2012.09.29 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/nicf/edge/edge_VW.cfg b/TestCases/nicf/edge/edge_VW.cfg index 91e8803278a..2646c8efb40 100644 --- a/TestCases/nicf/edge/edge_VW.cfg +++ b/TestCases/nicf/edge/edge_VW.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 2012.09.29 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/nonequilibrium/invwedge/invwedge_ausm.cfg b/TestCases/nonequilibrium/invwedge/invwedge_ausm.cfg index fcf606ccdf9..900a4e427ef 100644 --- a/TestCases/nonequilibrium/invwedge/invwedge_ausm.cfg +++ b/TestCases/nonequilibrium/invwedge/invwedge_ausm.cfg @@ -5,7 +5,7 @@ % Author: C. Garbacz % % Institution: Strathclyde University % % Date: 2020.11.01 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/nonequilibrium/invwedge/invwedge_ausmplusup2.cfg b/TestCases/nonequilibrium/invwedge/invwedge_ausmplusup2.cfg index 48399a94fab..4828e12e966 100644 --- a/TestCases/nonequilibrium/invwedge/invwedge_ausmplusup2.cfg +++ b/TestCases/nonequilibrium/invwedge/invwedge_ausmplusup2.cfg @@ -2,7 +2,7 @@ % % % SU2 configuration file % % Case description: Mach 5 inviscid flow over a 10deg wedge- AUSM+-Up2 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/nonequilibrium/invwedge/invwedge_lax.cfg b/TestCases/nonequilibrium/invwedge/invwedge_lax.cfg index 2c5627fc9a2..461c993dd3b 100644 --- a/TestCases/nonequilibrium/invwedge/invwedge_lax.cfg +++ b/TestCases/nonequilibrium/invwedge/invwedge_lax.cfg @@ -2,7 +2,7 @@ % % % SU2 configuration file % % Case description: Mach 5 inviscid flow over a 10deg wedge-LAX % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/nonequilibrium/invwedge/invwedge_msw.cfg b/TestCases/nonequilibrium/invwedge/invwedge_msw.cfg index 39a7e051035..3fdc413ef21 100644 --- a/TestCases/nonequilibrium/invwedge/invwedge_msw.cfg +++ b/TestCases/nonequilibrium/invwedge/invwedge_msw.cfg @@ -2,7 +2,7 @@ % % % SU2 configuration file % % Case description: Mach 5 inviscid flow over a 10deg wedge-MSW % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/nonequilibrium/invwedge/invwedge_roe.cfg b/TestCases/nonequilibrium/invwedge/invwedge_roe.cfg index 7264f767422..8c8d27b89de 100644 --- a/TestCases/nonequilibrium/invwedge/invwedge_roe.cfg +++ b/TestCases/nonequilibrium/invwedge/invwedge_roe.cfg @@ -2,7 +2,7 @@ % % % SU2 configuration file % % Case description: Mach 5 inviscid flow over a 10deg wedge-ROE % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/nonequilibrium/invwedge/invwedge_ss_inlet.cfg b/TestCases/nonequilibrium/invwedge/invwedge_ss_inlet.cfg index 1d9d94eb0c1..adf656aa95f 100644 --- a/TestCases/nonequilibrium/invwedge/invwedge_ss_inlet.cfg +++ b/TestCases/nonequilibrium/invwedge/invwedge_ss_inlet.cfg @@ -5,7 +5,7 @@ % Author: J. Needels % % Institution: Stanford University % % Date: 2022.1.11 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/nonequilibrium/thermalbath/finitechemistry/thermalbath.cfg b/TestCases/nonequilibrium/thermalbath/finitechemistry/thermalbath.cfg index 10d2be9ffa2..727f2225b25 100644 --- a/TestCases/nonequilibrium/thermalbath/finitechemistry/thermalbath.cfg +++ b/TestCases/nonequilibrium/thermalbath/finitechemistry/thermalbath.cfg @@ -7,7 +7,7 @@ % Author: C. Garbacz % % Institution: Strathclyde University % % Date: 2019.04.10 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/nonequilibrium/thermalbath/frozen/thermalbath_frozen.cfg b/TestCases/nonequilibrium/thermalbath/frozen/thermalbath_frozen.cfg index 65e1ae94997..123c3187c6a 100644 --- a/TestCases/nonequilibrium/thermalbath/frozen/thermalbath_frozen.cfg +++ b/TestCases/nonequilibrium/thermalbath/frozen/thermalbath_frozen.cfg @@ -6,7 +6,7 @@ % Author: C. Garbacz % % Institution: Strathclyde University % % Date: 2019.04.10 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/nonequilibrium/visc_wedge/axi_visccone.cfg b/TestCases/nonequilibrium/visc_wedge/axi_visccone.cfg index 9487af19964..62205204dc1 100644 --- a/TestCases/nonequilibrium/visc_wedge/axi_visccone.cfg +++ b/TestCases/nonequilibrium/visc_wedge/axi_visccone.cfg @@ -4,7 +4,7 @@ % Case description: Mach 5 viscous flow over a 10deg axisymmetric cone % % Author: C. Garbacz % % Institution: Strathclyde University % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/nonequilibrium/visc_wedge/partial_cat.cfg b/TestCases/nonequilibrium/visc_wedge/partial_cat.cfg index f139137c5ef..c5018a8496d 100644 --- a/TestCases/nonequilibrium/visc_wedge/partial_cat.cfg +++ b/TestCases/nonequilibrium/visc_wedge/partial_cat.cfg @@ -5,7 +5,7 @@ % catalytic walls - gamma model, effeciency = 0.2 % % Author: J. Needels % % Institution: Stanford University % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/nonequilibrium/visc_wedge/super_cat.cfg b/TestCases/nonequilibrium/visc_wedge/super_cat.cfg index a169763992c..b3ab5ff54c3 100644 --- a/TestCases/nonequilibrium/visc_wedge/super_cat.cfg +++ b/TestCases/nonequilibrium/visc_wedge/super_cat.cfg @@ -5,7 +5,7 @@ % catalytic walls - gamma model, effeciency = 0.2 % % Author: J. Needels % % Institution: Stanford University % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/nonequilibrium/viscwedge_mpp/viscwedge_mpp.cfg b/TestCases/nonequilibrium/viscwedge_mpp/viscwedge_mpp.cfg index 0e8a2c5e2c6..e53cea48620 100644 --- a/TestCases/nonequilibrium/viscwedge_mpp/viscwedge_mpp.cfg +++ b/TestCases/nonequilibrium/viscwedge_mpp/viscwedge_mpp.cfg @@ -5,7 +5,7 @@ % Author: C. Garbacz % % Institution: Strathclyde University % % Date: 2020.11.01 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/optimization_euler/equivalentarea_naca64206/NACA64206.cfg b/TestCases/optimization_euler/equivalentarea_naca64206/NACA64206.cfg index 429ea9fa6ea..f211202d8d9 100644 --- a/TestCases/optimization_euler/equivalentarea_naca64206/NACA64206.cfg +++ b/TestCases/optimization_euler/equivalentarea_naca64206/NACA64206.cfg @@ -5,7 +5,7 @@ % Author: Yuki Utsumi % % Institution: Individual % % Date: 2021.08.07 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/optimization_euler/multiobjective_wedge/inv_wedge_ROE_2surf_1obj.cfg b/TestCases/optimization_euler/multiobjective_wedge/inv_wedge_ROE_2surf_1obj.cfg index 96bdf7ba4bf..1ce5b6a5af2 100644 --- a/TestCases/optimization_euler/multiobjective_wedge/inv_wedge_ROE_2surf_1obj.cfg +++ b/TestCases/optimization_euler/multiobjective_wedge/inv_wedge_ROE_2surf_1obj.cfg @@ -7,7 +7,7 @@ % Author: H.L. Kline, modified from inviscid wedge by Thomas D. Economon % % Institution: Stanford University % % Date: 2018.01.07 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/optimization_euler/multiobjective_wedge/inv_wedge_ROE_multiobj.cfg b/TestCases/optimization_euler/multiobjective_wedge/inv_wedge_ROE_multiobj.cfg index 97dc0cc3f0d..28aaec3c659 100644 --- a/TestCases/optimization_euler/multiobjective_wedge/inv_wedge_ROE_multiobj.cfg +++ b/TestCases/optimization_euler/multiobjective_wedge/inv_wedge_ROE_multiobj.cfg @@ -8,7 +8,7 @@ % Author: H.L. Kline, modified from inviscid wedge by Thomas D. Economon % % Institution: Stanford University % % Date: 2018.01.07 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/optimization_euler/multiobjective_wedge/inv_wedge_ROE_multiobj_1surf.cfg b/TestCases/optimization_euler/multiobjective_wedge/inv_wedge_ROE_multiobj_1surf.cfg index af75dd2f1e6..f194a08ca24 100644 --- a/TestCases/optimization_euler/multiobjective_wedge/inv_wedge_ROE_multiobj_1surf.cfg +++ b/TestCases/optimization_euler/multiobjective_wedge/inv_wedge_ROE_multiobj_1surf.cfg @@ -8,7 +8,7 @@ % Author: H.L. Kline, modified from inviscid wedge by Thomas D. Economon % % Institution: Stanford University % % Date: 2018.01.07 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/optimization_euler/multiobjective_wedge/inv_wedge_ROE_multiobj_combo.cfg b/TestCases/optimization_euler/multiobjective_wedge/inv_wedge_ROE_multiobj_combo.cfg index d36e9cdca3e..a6a0e3f40da 100644 --- a/TestCases/optimization_euler/multiobjective_wedge/inv_wedge_ROE_multiobj_combo.cfg +++ b/TestCases/optimization_euler/multiobjective_wedge/inv_wedge_ROE_multiobj_combo.cfg @@ -10,7 +10,7 @@ % Author: H.L. Kline, modified from inviscid wedge by Thomas D. Economon % % Institution: Stanford University % % Date: 2018.01.07 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/optimization_euler/multipoint_naca0012/inv_NACA0012_multipoint.cfg b/TestCases/optimization_euler/multipoint_naca0012/inv_NACA0012_multipoint.cfg index 1cd29ecab6e..c1873813daa 100644 --- a/TestCases/optimization_euler/multipoint_naca0012/inv_NACA0012_multipoint.cfg +++ b/TestCases/optimization_euler/multipoint_naca0012/inv_NACA0012_multipoint.cfg @@ -5,7 +5,7 @@ % Author: Indiana Stokes % % Institution: % % Date: 2017.07.03 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/optimization_euler/pitching_naca64a010/pitching_NACA64A010.cfg b/TestCases/optimization_euler/pitching_naca64a010/pitching_NACA64A010.cfg index b48aa059677..6ba06a2fd1a 100644 --- a/TestCases/optimization_euler/pitching_naca64a010/pitching_NACA64A010.cfg +++ b/TestCases/optimization_euler/pitching_naca64a010/pitching_NACA64A010.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 2011.11.02 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/optimization_euler/pitching_oneram6/pitching_ONERAM6.cfg b/TestCases/optimization_euler/pitching_oneram6/pitching_ONERAM6.cfg index 5bc53860c7c..96c2c7cfbe9 100644 --- a/TestCases/optimization_euler/pitching_oneram6/pitching_ONERAM6.cfg +++ b/TestCases/optimization_euler/pitching_oneram6/pitching_ONERAM6.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 09.07.2011 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/optimization_euler/rotating_naca0012/rotating_NACA0012.cfg b/TestCases/optimization_euler/rotating_naca0012/rotating_NACA0012.cfg index e1e8aa5de38..8f94866a5a1 100644 --- a/TestCases/optimization_euler/rotating_naca0012/rotating_NACA0012.cfg +++ b/TestCases/optimization_euler/rotating_naca0012/rotating_NACA0012.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 2013.03.06 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/optimization_euler/steady_inverse_design/inv_NACA0012.cfg b/TestCases/optimization_euler/steady_inverse_design/inv_NACA0012.cfg index 13019e42b2c..c54371af89e 100644 --- a/TestCases/optimization_euler/steady_inverse_design/inv_NACA0012.cfg +++ b/TestCases/optimization_euler/steady_inverse_design/inv_NACA0012.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 2014.06.11 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/optimization_euler/steady_naca0012/inv_NACA0012_adv.cfg b/TestCases/optimization_euler/steady_naca0012/inv_NACA0012_adv.cfg index ab5620cc9eb..bac4af6834b 100644 --- a/TestCases/optimization_euler/steady_naca0012/inv_NACA0012_adv.cfg +++ b/TestCases/optimization_euler/steady_naca0012/inv_NACA0012_adv.cfg @@ -5,7 +5,7 @@ % Author: Francisco Palacios % % Institution: Stanford University % % Date: 2013.09.29 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/optimization_euler/steady_naca0012/inv_NACA0012_basic.cfg b/TestCases/optimization_euler/steady_naca0012/inv_NACA0012_basic.cfg index 8d733763b2e..b805a007637 100644 --- a/TestCases/optimization_euler/steady_naca0012/inv_NACA0012_basic.cfg +++ b/TestCases/optimization_euler/steady_naca0012/inv_NACA0012_basic.cfg @@ -5,7 +5,7 @@ % Author: Francisco Palacios % % Institution: Stanford University % % Date: 2013.09.29 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/optimization_euler/steady_oneram6/inv_ONERAM6_adv.cfg b/TestCases/optimization_euler/steady_oneram6/inv_ONERAM6_adv.cfg index 04c72351cae..a1b454dc4dd 100644 --- a/TestCases/optimization_euler/steady_oneram6/inv_ONERAM6_adv.cfg +++ b/TestCases/optimization_euler/steady_oneram6/inv_ONERAM6_adv.cfg @@ -5,7 +5,7 @@ % Author: Francisco Palacios, Heather Kline % % Institution: Stanford University % % Date: 01.17.2017 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/optimization_euler/steady_oneram6/inv_ONERAM6_basic.cfg b/TestCases/optimization_euler/steady_oneram6/inv_ONERAM6_basic.cfg index 0a7ac7a1953..1dfb759f260 100644 --- a/TestCases/optimization_euler/steady_oneram6/inv_ONERAM6_basic.cfg +++ b/TestCases/optimization_euler/steady_oneram6/inv_ONERAM6_basic.cfg @@ -5,7 +5,7 @@ % Author: Francisco Palacios, Heather Kline % % Institution: Stanford University % % Date: 01.17.2017 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/optimization_rans/naca0012/naca0012.cfg b/TestCases/optimization_rans/naca0012/naca0012.cfg index e9304f8f4ee..c01f1f3168c 100644 --- a/TestCases/optimization_rans/naca0012/naca0012.cfg +++ b/TestCases/optimization_rans/naca0012/naca0012.cfg @@ -5,7 +5,7 @@ % Author: Steffen Schotthöfer % % Institution: TU Kaiserslautern % % Date: Mar 16, 2017 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/optimization_rans/pitching_naca64a010/turb_NACA64A010.cfg b/TestCases/optimization_rans/pitching_naca64a010/turb_NACA64A010.cfg index 389b2793a40..1c748ac4691 100644 --- a/TestCases/optimization_rans/pitching_naca64a010/turb_NACA64A010.cfg +++ b/TestCases/optimization_rans/pitching_naca64a010/turb_NACA64A010.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 2011.11.02 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/optimization_rans/pitching_oneram6/turb_ONERAM6.cfg b/TestCases/optimization_rans/pitching_oneram6/turb_ONERAM6.cfg index 1ef6403d4ec..66a9151da78 100644 --- a/TestCases/optimization_rans/pitching_oneram6/turb_ONERAM6.cfg +++ b/TestCases/optimization_rans/pitching_oneram6/turb_ONERAM6.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 2011.11.02 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/optimization_rans/steady_oneram6/turb_ONERAM6.cfg b/TestCases/optimization_rans/steady_oneram6/turb_ONERAM6.cfg index 3c625996b40..bfccebceefa 100644 --- a/TestCases/optimization_rans/steady_oneram6/turb_ONERAM6.cfg +++ b/TestCases/optimization_rans/steady_oneram6/turb_ONERAM6.cfg @@ -5,7 +5,7 @@ % Author: Francisco Palacios % % Institution: Stanford University % % Date: 2011.11.02 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/optimization_rans/steady_rae2822/turb_SA_RAE2822.cfg b/TestCases/optimization_rans/steady_rae2822/turb_SA_RAE2822.cfg index 57cd64ad136..20c45bd7f4d 100644 --- a/TestCases/optimization_rans/steady_rae2822/turb_SA_RAE2822.cfg +++ b/TestCases/optimization_rans/steady_rae2822/turb_SA_RAE2822.cfg @@ -5,7 +5,7 @@ % Author: Francisco Palacios % % Institution: Stanford University % % Date: 5/15/2013 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/parallel_regression.py b/TestCases/parallel_regression.py index 41eb39ba981..cf1bd627e38 100644 --- a/TestCases/parallel_regression.py +++ b/TestCases/parallel_regression.py @@ -3,14 +3,14 @@ ## \file parallel_regression.py # \brief Python script for automated regression testing of SU2 examples # \author A. Aranake, A. Campos, T. Economon, T. Lukaczyk, S. Padron -# \version 8.0.0 "Harrier" +# \version 8.0.1 "Harrier" # # SU2 Project Website: https://su2code.github.io # # The SU2 Project is maintained by the SU2 Foundation # (http://su2foundation.org) # -# Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) +# Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) # # SU2 is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public @@ -486,6 +486,16 @@ def main(): propeller.timeout = 3200 test_list.append(propeller) + # Actuator disk BEM method for propeller + actuatordisk_bem = TestCase('actuatordisk_bem') + actuatordisk_bem.cfg_dir = "rans/actuatordisk_bem" + actuatordisk_bem.cfg_file = "actuatordisk_bem.cfg" + actuatordisk_bem.test_iter = 15 + actuatordisk_bem.test_vals = [-5.282249, -10.335140, 0.001383, -0.375718] + actuatordisk_bem.timeout = 3200 + actuatordisk_bem.tol = 0.001 + test_list.append(actuatordisk_bem) + ####################################### ### Axisymmetric Compressible RANS ### ####################################### @@ -915,7 +925,7 @@ def main(): cavity.cfg_dir = "moving_wall/cavity" cavity.cfg_file = "lam_cavity.cfg" cavity.test_iter = 25 - cavity.test_vals = [-5.611007, -0.146826, 1.113206, 1.491678] + cavity.test_vals = [-5.610928, -0.146749, 1.114461, 1.490381] test_list.append(cavity) # Spinning cylinder @@ -923,7 +933,7 @@ def main(): spinning_cylinder.cfg_dir = "moving_wall/spinning_cylinder" spinning_cylinder.cfg_file = "spinning_cylinder.cfg" spinning_cylinder.test_iter = 25 - spinning_cylinder.test_vals = [-7.802803, -2.362844, 1.687705, 1.519676] + spinning_cylinder.test_vals = [-7.806016, -2.364954, 1.683365, 1.517059] test_list.append(spinning_cylinder) ###################################### @@ -1039,7 +1049,7 @@ def main(): Jones_tc_restart.cfg_dir = "turbomachinery/APU_turbocharger" Jones_tc_restart.cfg_file = "Jones_restart.cfg" Jones_tc_restart.test_iter = 5 - Jones_tc_restart.test_vals = [-6.604542, -2.792281, -14.328530, -8.769313, -11.371439, -5.845632, 73273, 73273] + Jones_tc_restart.test_vals = [-6.594590, -2.792281, -14.336129, -8.776067, -11.371439, -5.845633, 73273, 73273, 0.019884, 82.491] test_list.append(Jones_tc_restart) # 2D axial stage @@ -1047,7 +1057,8 @@ def main(): axial_stage2D.cfg_dir = "turbomachinery/axial_stage_2D" axial_stage2D.cfg_file = "Axial_stage2D.cfg" axial_stage2D.test_iter = 20 - axial_stage2D.test_vals = [0.974805, 1.534447, -2.897694, 2.599376, -2.418379, 3.087219, 106380.000000, 106380.000000] + axial_stage2D.test_vals = [0.983754, 1.534455, -2.888523, 2.606770, -2.418403, 3.087203, 106380, 106380, 5.7325, 64.711] + axial_stage2D.test_vals_aarch64 = [0.983754, 1.534455, -2.888523, 2.606770, -2.418403, 3.087203, 106380, 106380, 5.7325, 64.711] test_list.append(axial_stage2D) # 2D transonic stator restart @@ -1055,7 +1066,8 @@ def main(): transonic_stator_restart.cfg_dir = "turbomachinery/transonic_stator_2D" transonic_stator_restart.cfg_file = "transonic_stator_restart.cfg" transonic_stator_restart.test_iter = 20 - transonic_stator_restart.test_vals = [-5.354418, -3.509964, -3.163206, 0.744733, -3.846691, 1.805587, -471690] + transonic_stator_restart.test_vals = [-5.011834, -3.091110, -2.757795, 1.087934, -3.544707, 2.166101, -471630, 94.868, -0.035888] + transonic_stator_restart.test_vals_aarch64 = [-5.011834, -3.091110, -2.757795, 1.087934, -3.544707, 2.166101, -471630, 94.868, -0.035888] test_list.append(transonic_stator_restart) ###################################### @@ -1545,6 +1557,20 @@ def main(): species3_multizone_restart.multizone = True test_list.append(species3_multizone_restart) + ##################### + ## CGNS writer ### + ##################### + + # CGNS writer + cgns_writer = TestCase('cgns_writer') + cgns_writer.cfg_dir = "cgns_writer" + cgns_writer.cfg_file = "config.cfg" + cgns_writer.test_iter = 1 + cgns_writer.test_vals = [-2.974473, 0.665204, 5.068846, -7.003873] + cgns_writer.command = TestCase.Command("mpirun -n 2", "SU2_CFD") + cgns_writer.new_output = True + test_list.append(cgns_writer) + ###################################### ### RUN TESTS ### ###################################### @@ -1771,6 +1797,19 @@ def main(): pass_list.append(sphere_ffd_def_bspline.run_def()) test_list.append(sphere_ffd_def_bspline) + # Inviscid NACA0012 (triangles) + naca0012_cst = TestCase('naca0012_cst') + naca0012_cst.cfg_dir = "deformation/cst" + naca0012_cst.cfg_file = "naca0012.cfg" + naca0012_cst.test_iter = 10 + naca0012_cst.test_vals = [0.000385514] #residual + naca0012_cst.command = TestCase.Command("mpirun -n 2", "SU2_DEF") + naca0012_cst.timeout = 1600 + naca0012_cst.tol = 1e-8 + + pass_list.append(naca0012_cst.run_def()) + test_list.append(naca0012_cst) + # 2D FD streamwise periodic cht, avg temp obj func fd_sp_pinArray_cht_2d_dp_hf = TestCase('fd_sp_pinArray_cht_2d_dp_hf') fd_sp_pinArray_cht_2d_dp_hf.cfg_dir = "incomp_navierstokes/streamwise_periodic/chtPinArray_2d" diff --git a/TestCases/parallel_regression_AD.py b/TestCases/parallel_regression_AD.py index 10a28c974e1..59576fdc410 100644 --- a/TestCases/parallel_regression_AD.py +++ b/TestCases/parallel_regression_AD.py @@ -3,14 +3,14 @@ ## \file parallel_regression.py # \brief Python script for automated regression testing of SU2 examples # \author A. Aranake, A. Campos, T. Economon, T. Lukaczyk, S. Padron -# \version 8.0.0 "Harrier" +# \version 8.0.1 "Harrier" # # SU2 Project Website: https://su2code.github.io # # The SU2 Project is maintained by the SU2 Foundation # (http://su2foundation.org) # -# Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) +# Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) # # SU2 is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public @@ -230,8 +230,8 @@ def main(): discadj_trans_stator.cfg_dir = "disc_adj_turbomachinery/transonic_stator_2D" discadj_trans_stator.cfg_file = "transonic_stator.cfg" discadj_trans_stator.test_iter = 79 - discadj_trans_stator.test_vals = [79, 0.769972, 0.374328, 0.474458, -0.996522, 2.154079, -4.446062] - discadj_trans_stator.test_vals_aarch64 = [79.000000, 0.769908, 0.374328, 0.474687, -0.996522, 2.154079, -4.446062] + discadj_trans_stator.test_vals = [79, 0.769967, 0.374299, 0.474436, -0.996528, 2.154053, -4.446085] + discadj_trans_stator.test_vals_aarch64 = [79, 0.769967, 0.374299, 0.474436, -0.996528, 2.154053, -4.446085] test_list.append(discadj_trans_stator) ################################### diff --git a/TestCases/pastix_support/config.cfg b/TestCases/pastix_support/config.cfg index a715bf34e94..7cb6cb32b34 100644 --- a/TestCases/pastix_support/config.cfg +++ b/TestCases/pastix_support/config.cfg @@ -2,7 +2,7 @@ % SU2 configuration file % % PaStiX options (http://pastix.gforge.inria.fr/files/README-txt.html) % % Institution: Imperial College London % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % Intro: diff --git a/TestCases/pastix_support/readme.txt b/TestCases/pastix_support/readme.txt index a4eb59a2d3a..14227a32485 100644 --- a/TestCases/pastix_support/readme.txt +++ b/TestCases/pastix_support/readme.txt @@ -2,7 +2,7 @@ % SU2 configuration file % % PaStiX support build instructions. % % Institution: Imperial College London % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % 1 - Download diff --git a/TestCases/polar/naca0012/inv_NACA0012.cfg b/TestCases/polar/naca0012/inv_NACA0012.cfg index 1a9275c6ba2..79089ee63fe 100644 --- a/TestCases/polar/naca0012/inv_NACA0012.cfg +++ b/TestCases/polar/naca0012/inv_NACA0012.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 2014.06.11 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/py_wrapper/custom_heat_flux/run_ad.py b/TestCases/py_wrapper/custom_heat_flux/run_ad.py index 7985e4ff5a2..69952306675 100644 --- a/TestCases/py_wrapper/custom_heat_flux/run_ad.py +++ b/TestCases/py_wrapper/custom_heat_flux/run_ad.py @@ -2,14 +2,14 @@ ## \file run.py # \brief Unsteady adjoint heat transfer case with custom heat flux. -# \version 8.0.0 "Harrier" +# \version 8.0.1 "Harrier" # # SU2 Project Website: https://su2code.github.io # # The SU2 Project is maintained by the SU2 Foundation # (http://su2foundation.org) # -# Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) +# Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) # # SU2 is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public diff --git a/TestCases/py_wrapper/custom_load_fea/config.cfg b/TestCases/py_wrapper/custom_load_fea/config.cfg index 45d6ef0e2b8..60aafbe8eaa 100644 --- a/TestCases/py_wrapper/custom_load_fea/config.cfg +++ b/TestCases/py_wrapper/custom_load_fea/config.cfg @@ -1,7 +1,7 @@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % SU2 configuration file % % Case description: 2D Beam with custom load via Python wrapper % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% SOLVER= ELASTICITY diff --git a/TestCases/py_wrapper/custom_load_fea/run.py b/TestCases/py_wrapper/custom_load_fea/run.py index 50567ddfc73..8b6ba89ccfb 100755 --- a/TestCases/py_wrapper/custom_load_fea/run.py +++ b/TestCases/py_wrapper/custom_load_fea/run.py @@ -2,14 +2,14 @@ ## \file run.py # \brief FEA case with custom load. -# \version 8.0.0 "Harrier" +# \version 8.0.1 "Harrier" # # SU2 Project Website: https://su2code.github.io # # The SU2 Project is maintained by the SU2 Foundation # (http://su2foundation.org) # -# Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) +# Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) # # SU2 is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public diff --git a/TestCases/py_wrapper/custom_load_fea/run_ad.py b/TestCases/py_wrapper/custom_load_fea/run_ad.py index 907264b39fd..24e4cf051c7 100644 --- a/TestCases/py_wrapper/custom_load_fea/run_ad.py +++ b/TestCases/py_wrapper/custom_load_fea/run_ad.py @@ -2,14 +2,14 @@ ## \file run.py # \brief Unsteady adjoint FEA case with custom load. -# \version 8.0.0 "Harrier" +# \version 8.0.1 "Harrier" # # SU2 Project Website: https://su2code.github.io # # The SU2 Project is maintained by the SU2 Foundation # (http://su2foundation.org) # -# Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) +# Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) # # SU2 is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public diff --git a/TestCases/py_wrapper/deforming_bump_in_channel/run.py b/TestCases/py_wrapper/deforming_bump_in_channel/run.py index 45c6e53b7d3..3d78b0071f2 100755 --- a/TestCases/py_wrapper/deforming_bump_in_channel/run.py +++ b/TestCases/py_wrapper/deforming_bump_in_channel/run.py @@ -2,14 +2,14 @@ ## \file run.py # \brief Deforming bump in channel. -# \version 8.0.0 "Harrier" +# \version 8.0.1 "Harrier" # # SU2 Project Website: https://su2code.github.io # # The SU2 Project is maintained by the SU2 Foundation # (http://su2foundation.org) # -# Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) +# Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) # # SU2 is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public diff --git a/TestCases/py_wrapper/disc_adj_fea/flow_load_sens/run_adjoint.py b/TestCases/py_wrapper/disc_adj_fea/flow_load_sens/run_adjoint.py index fbdafc0e1ec..ea8bd1d76ba 100755 --- a/TestCases/py_wrapper/disc_adj_fea/flow_load_sens/run_adjoint.py +++ b/TestCases/py_wrapper/disc_adj_fea/flow_load_sens/run_adjoint.py @@ -3,14 +3,14 @@ ## \file run_adjoint.py # \brief Python script to launch SU2_CFD_AD and compute the sensitivity of the FEA problem respect to flow loads. # \author Ruben Sanchez -# \version 8.0.0 "Harrier" +# \version 8.0.1 "Harrier" # # SU2 Project Website: https://su2code.github.io # # The SU2 Project is maintained by the SU2 Foundation # (http://su2foundation.org) # -# Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) +# Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) # # SU2 is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public diff --git a/TestCases/py_wrapper/disc_adj_flow/mesh_disp_sens/run_adjoint.py b/TestCases/py_wrapper/disc_adj_flow/mesh_disp_sens/run_adjoint.py index 49c8977a504..971a736966f 100755 --- a/TestCases/py_wrapper/disc_adj_flow/mesh_disp_sens/run_adjoint.py +++ b/TestCases/py_wrapper/disc_adj_flow/mesh_disp_sens/run_adjoint.py @@ -3,14 +3,14 @@ ## \file run_adjoint.py # \brief Python script to launch SU2_CFD_AD # \author Ruben Sanchez -# \version 8.0.0 "Harrier" +# \version 8.0.1 "Harrier" # # SU2 Project Website: https://su2code.github.io # # The SU2 Project is maintained by the SU2 Foundation # (http://su2foundation.org) # -# Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) +# Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) # # SU2 is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public diff --git a/TestCases/py_wrapper/dyn_fsi/run.py b/TestCases/py_wrapper/dyn_fsi/run.py index 19dce3c8b5a..f5c59c79e61 100644 --- a/TestCases/py_wrapper/dyn_fsi/run.py +++ b/TestCases/py_wrapper/dyn_fsi/run.py @@ -2,14 +2,14 @@ ## \file run.py # \brief Unsteady FSI case with custom load. -# \version 8.0.0 "Harrier" +# \version 8.0.1 "Harrier" # # SU2 Project Website: https://su2code.github.io # # The SU2 Project is maintained by the SU2 Foundation # (http://su2foundation.org) # -# Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) +# Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) # # SU2 is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public diff --git a/TestCases/py_wrapper/flatPlate_rigidMotion/flatPlate_rigidMotion_Conf.cfg b/TestCases/py_wrapper/flatPlate_rigidMotion/flatPlate_rigidMotion_Conf.cfg index 8577b5a87ab..ab4c281e7db 100644 --- a/TestCases/py_wrapper/flatPlate_rigidMotion/flatPlate_rigidMotion_Conf.cfg +++ b/TestCases/py_wrapper/flatPlate_rigidMotion/flatPlate_rigidMotion_Conf.cfg @@ -5,7 +5,7 @@ % Author: ___________________________________________________________________ % % Institution: ______________________________________________________________ % % Date: __________ % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/py_wrapper/flatPlate_rigidMotion/launch_flatPlate_rigidMotion.py b/TestCases/py_wrapper/flatPlate_rigidMotion/launch_flatPlate_rigidMotion.py index 4fa464f8d44..138351cdf58 100755 --- a/TestCases/py_wrapper/flatPlate_rigidMotion/launch_flatPlate_rigidMotion.py +++ b/TestCases/py_wrapper/flatPlate_rigidMotion/launch_flatPlate_rigidMotion.py @@ -3,14 +3,14 @@ ## \file flatPlate_rigidMotion.py # \brief Python script to launch SU2_CFD with customized unsteady boundary conditions using the Python wrapper. # \author David Thomas -# \version 8.0.0 "Harrier" +# \version 8.0.1 "Harrier" # # SU2 Project Website: https://su2code.github.io # # The SU2 Project is maintained by the SU2 Foundation # (http://su2foundation.org) # -# Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) +# Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) # # SU2 is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public diff --git a/TestCases/py_wrapper/flatPlate_unsteady_CHT/launch_unsteady_CHT_FlatPlate.py b/TestCases/py_wrapper/flatPlate_unsteady_CHT/launch_unsteady_CHT_FlatPlate.py index 276e37fa520..4fb99cb7899 100755 --- a/TestCases/py_wrapper/flatPlate_unsteady_CHT/launch_unsteady_CHT_FlatPlate.py +++ b/TestCases/py_wrapper/flatPlate_unsteady_CHT/launch_unsteady_CHT_FlatPlate.py @@ -3,14 +3,14 @@ ## \file launch_unsteady_CHT_FlatPlate.py # \brief Python script to launch SU2_CFD with customized unsteady boundary conditions using the Python wrapper. # \author David Thomas -# \version 8.0.0 "Harrier" +# \version 8.0.1 "Harrier" # # SU2 Project Website: https://su2code.github.io # # The SU2 Project is maintained by the SU2 Foundation # (http://su2foundation.org) # -# Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) +# Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) # # SU2 is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public diff --git a/TestCases/py_wrapper/flatPlate_unsteady_CHT/unsteady_CHT_FlatPlate_Conf.cfg b/TestCases/py_wrapper/flatPlate_unsteady_CHT/unsteady_CHT_FlatPlate_Conf.cfg index f7b504e96a7..dbe698edfb8 100644 --- a/TestCases/py_wrapper/flatPlate_unsteady_CHT/unsteady_CHT_FlatPlate_Conf.cfg +++ b/TestCases/py_wrapper/flatPlate_unsteady_CHT/unsteady_CHT_FlatPlate_Conf.cfg @@ -5,7 +5,7 @@ % Author: David THOMAS % % Institution: University of Liège % % Date: 12/12/2017 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/py_wrapper/rotating_cylinder/run.py b/TestCases/py_wrapper/rotating_cylinder/run.py new file mode 100644 index 00000000000..537cdcb696e --- /dev/null +++ b/TestCases/py_wrapper/rotating_cylinder/run.py @@ -0,0 +1,19 @@ +import pysu2 # imports the SU2 wrapped module +from mpi4py import MPI +import numpy as np + +comm = MPI.COMM_WORLD +rank = comm.Get_rank() +rotation_vector = np.linspace(0,20,10) +SU2Driver = pysu2.CSinglezoneDriver("spinning_cylinder.cfg",1, comm) + +for i, rate in enumerate(rotation_vector): + SU2Driver.SetMarkerRotationRate(0,0,0,rate) + SU2Driver.Preprocess(i) + SU2Driver.Run() + SU2Driver.Postprocess() + SU2Driver.Output(i) + SU2Driver.Update() +SU2Driver.Finalize() + + \ No newline at end of file diff --git a/TestCases/py_wrapper/rotating_cylinder/spinning_cylinder.cfg b/TestCases/py_wrapper/rotating_cylinder/spinning_cylinder.cfg new file mode 100644 index 00000000000..194a46064dd --- /dev/null +++ b/TestCases/py_wrapper/rotating_cylinder/spinning_cylinder.cfg @@ -0,0 +1,115 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% % +% SU2 configuration file % +% Case description: Laminar flow around a spinning cylinder % +% Author: Thomas D. Economon % +% Institution: Stanford University % +% Date: 2013.08.21 % +% File Version 7.5.1 "Blackbird" % +% % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% ------------- DIRECT, ADJOINT, AND LINEARIZED PROBLEM DEFINITION ------------% +% +SOLVER= NAVIER_STOKES +KIND_TURB_MODEL= NONE +MATH_PROBLEM= DIRECT +RESTART_SOL= NO + +% ----------- COMPRESSIBLE AND INCOMPRESSIBLE FREE-STREAM DEFINITION ----------% +% +MACH_NUMBER= 0.1 +AOA= 0.0 +SIDESLIP_ANGLE= 0.0 +FREESTREAM_TEMPERATURE= 288.15 +REYNOLDS_NUMBER= 200.0 +REYNOLDS_LENGTH= 1.0 + +% ----------------------- DYNAMIC MESH DEFINITION -----------------------------% +% +SURFACE_MOVEMENT= MOVING_WALL +MACH_MOTION= 0.1 +MARKER_MOVING= ( cylinder ) +SURFACE_MOTION_ORIGIN= 0.5 0.0 0.0 +SURFACE_ROTATION_RATE = 0.0 0.0 -199.0738 + +% ---------------------- REFERENCE VALUE DEFINITION ---------------------------% +% +REF_ORIGIN_MOMENT_X = 0.00 +REF_ORIGIN_MOMENT_Y = 0.00 +REF_ORIGIN_MOMENT_Z = 0.00 +REF_LENGTH= 1.0 +REF_AREA= 1.0 + +% -------------------- BOUNDARY CONDITION DEFINITION --------------------------% +% +MARKER_HEATFLUX= ( cylinder, 0.0 ) +MARKER_FAR= ( farfield ) +MARKER_PLOTTING= ( cylinder ) +MARKER_MONITORING= ( cylinder ) + +% ------------- COMMON PARAMETERS DEFINING THE NUMERICAL METHOD ---------------% +% +NUM_METHOD_GRAD= WEIGHTED_LEAST_SQUARES +CFL_NUMBER= 100.0 +CFL_ADAPT= NO +CFL_ADAPT_PARAM= ( 1.5, 0.5, 1.0, 100.0 ) +ITER= 99999 + +% ----------------------- SLOPE LIMITER DEFINITION ----------------------------% +% +VENKAT_LIMITER_COEFF= 0.03 +ADJ_SHARP_LIMITER_COEFF= 3.0 +REF_SHARP_EDGES= 3.0 +SENS_REMOVE_SHARP= NO + +% ------------------------ LINEAR SOLVER DEFINITION ---------------------------% +% +LINEAR_SOLVER= FGMRES +LINEAR_SOLVER_PREC= LU_SGS +LINEAR_SOLVER_ERROR= 1E-4 +LINEAR_SOLVER_ITER= 5 + +% -------------------------- MULTIGRID PARAMETERS -----------------------------% +% +MGLEVEL= 3 +MGCYCLE= V_CYCLE +MG_PRE_SMOOTH= ( 1, 1, 1, 1 ) +MG_POST_SMOOTH= ( 0, 0, 0, 0 ) +MG_CORRECTION_SMOOTH= ( 0, 0, 0, 0 ) +MG_DAMP_RESTRICTION= 0.5 +MG_DAMP_PROLONGATION= 0.5 + +% -------------------- FLOW NUMERICAL METHOD DEFINITION -----------------------% +% +CONV_NUM_METHOD_FLOW= ROE +MUSCL_FLOW= YES +SLOPE_LIMITER_FLOW= NONE +JST_SENSOR_COEFF= ( 0.5, 0.02 ) +TIME_DISCRE_FLOW= EULER_IMPLICIT + +% --------------------------- CONVERGENCE PARAMETERS --------------------------% +% +CONV_RESIDUAL_MINVAL= -15 +CONV_STARTITER= 10 +CONV_CAUCHY_ELEMS= 100 +CONV_CAUCHY_EPS= 1E-7 + +% ------------------------- INPUT/OUTPUT INFORMATION --------------------------% +% +MESH_FILENAME= mesh_cylinder_lam.su2 +MESH_FORMAT= SU2 +MESH_OUT_FILENAME= mesh_out.su2 +SOLUTION_FILENAME= solution_flow.dat +SOLUTION_ADJ_FILENAME= solution_adj.dat +TABULAR_FORMAT= CSV +CONV_FILENAME= history +RESTART_FILENAME= restart_flow.dat +RESTART_ADJ_FILENAME= restart_adj.dat +VOLUME_FILENAME= flow +VOLUME_ADJ_FILENAME= adjoint +GRAD_OBJFUNC_FILENAME= of_grad.dat +SURFACE_FILENAME= surface_flow +SURFACE_ADJ_FILENAME= surface_adjoint +OUTPUT_WRT_FREQ= 100 +SCREEN_OUTPUT= (INNER_ITER, RMS_DENSITY, RMS_ENERGY, LIFT, DRAG) diff --git a/TestCases/py_wrapper/wavy_wall/run_steady.py b/TestCases/py_wrapper/wavy_wall/run_steady.py index 07090c6790b..f63b7ede2ed 100644 --- a/TestCases/py_wrapper/wavy_wall/run_steady.py +++ b/TestCases/py_wrapper/wavy_wall/run_steady.py @@ -2,14 +2,14 @@ ## \file run.py # \brief Channel with wave-like motion on walls (steady state version). -# \version 8.0.0 "Harrier" +# \version 8.0.1 "Harrier" # # SU2 Project Website: https://su2code.github.io # # The SU2 Project is maintained by the SU2 Foundation # (http://su2foundation.org) # -# Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) +# Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) # # SU2 is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public diff --git a/TestCases/radiation/p1adjoint/configp1adjoint.cfg b/TestCases/radiation/p1adjoint/configp1adjoint.cfg index bc71c6fdfd3..d93b5bbfd90 100644 --- a/TestCases/radiation/p1adjoint/configp1adjoint.cfg +++ b/TestCases/radiation/p1adjoint/configp1adjoint.cfg @@ -4,7 +4,7 @@ % Case description: Coupled CFD-RHT adjoint problem % % Author: Ruben Sanchez (TU Kaiserslautern) % % Date: 2020-02-13 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/radiation/p1model/configp1.cfg b/TestCases/radiation/p1model/configp1.cfg index 49c24ef4813..85d00cda1eb 100644 --- a/TestCases/radiation/p1model/configp1.cfg +++ b/TestCases/radiation/p1model/configp1.cfg @@ -5,7 +5,7 @@ % Author: Ruben Sanchez % % Institution: Chair for Scientific Computing, TU Kaiserslautern % % Date: 2019-01-29 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/rans/actuatordisk_bem/actuatordisk_bem.cfg b/TestCases/rans/actuatordisk_bem/actuatordisk_bem.cfg new file mode 100644 index 00000000000..e3ef635bfe7 --- /dev/null +++ b/TestCases/rans/actuatordisk_bem/actuatordisk_bem.cfg @@ -0,0 +1,122 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% % +% SU2 configuration file % +% Case description: Actuator Disk - Blade Element Method % +% Author: Y Chandukrishna, Josy Poulose Pullockara, T N Venkatesh % +% Institution: Computational and Theoretical Fluid Dynamics (CTFD), % +% CSIR - National Aerospace Laboratories, Bangalore % +% Academy of Scientific and Innovative Research, Ghaziabad % +% Comments : % +% Date: 23/09/2023 % +% File Version 8.0.1 "Harrier" % +% % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +%----------- DIRECT, ADJOINT, AND LINEARIZED PROBLEM DEFINITION -------------------------% +SOLVER= RANS +KIND_TURB_MODEL= SA +%FREESTREAM_TURBULENCEINTENSITY=0.01 +MATH_PROBLEM= DIRECT +RESTART_SOL= YES +SYSTEM_MEASUREMENTS= SI + +% -------------------- COMPRESSIBLE FREE-STREAM DEFINITION --------------------% +MACH_NUMBER= 0.11617164 +AOA= 0.0 +SIDESLIP_ANGLE= 0.0 +REYNOLDS_NUMBER= 0.62E6 +REYNOLDS_LENGTH= 0.237 +FREESTREAM_TEMPERATURE= 295 +VISCOSITY_MODEL= CONSTANT_VISCOSITY +MU_CONSTANT= 1.84554E-5 +MU_REF= 1.716E-5 +MU_T_REF= 273.15 +SUTHERLAND_CONSTANT= 110.4 + +% ---------------------- REFERENCE VALUE DEFINITION ---------------------------% +% +REF_ORIGIN_MOMENT_X = 0.0 +REF_ORIGIN_MOMENT_Y = 0.0 +REF_ORIGIN_MOMENT_Z = 0.0 +REF_LENGTH= 1.0 +REF_AREA= 0.04411429 +REF_DIMENSIONALIZATION= DIMENSIONAL + +% --------------- ENGINE AND ACTUATOR DISK SIMULATION -------------------------% +% +HIGHLITE_AREA= 0.04411429 +ENGINE_NU_FACTOR= 0.0 + +% -------------------- BOUNDARY CONDITION DEFINITION --------------------------% +% +ACTDISK_DOUBLE_SURFACE = YES +ACTDISK_TYPE= BLADE_ELEMENT +ACTDISK_JUMP= DIFFERENCE +MARKER_ACTDISK = ( ACTDISK_IN, ACTDISK_OUT , 0.0, 0.0, 12715.2, 0.0, 0.0, 12715.2) +MARKER_ACTDISK_BEM_CG= ( ACTDISK_IN, ACTDISK_OUT, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ) +MARKER_ACTDISK_BEM_AXIS= ( ACTDISK_IN, ACTDISK_OUT, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0 ) +BEM_PROP_FILENAME = prop_geom_alfclcd_data.txt +BEM_PROP_BLADE_ANGLE = 23.9 +BEM_FREQ = 40 +MARKER_FAR= ( Farfield ) + +% ------------------------ SURFACES IDENTIFICATION ----------------------------% +% +MARKER_PLOTTING = ( ACTDISK_IN, ACTDISK_OUT ) +MARKER_MONITORING = ( ACTDISK_IN, ACTDISK_OUT ) +MARKER_ANALYZE = ( ACTDISK_IN, ACTDISK_OUT ) +MARKER_ANALYZE_AVERAGE = MASSFLUX + +% ------------- COMMON PARAMETERS DEFINING THE NUMERICAL METHOD ---------------% +% +NUM_METHOD_GRAD= WEIGHTED_LEAST_SQUARES +CFL_NUMBER= 4.0 +CFL_ADAPT= NO +OBJECTIVE_FUNCTION= DRAG + +% ------------------------ LINEAR SOLVER DEFINITION ---------------------------% +% +LINEAR_SOLVER= FGMRES +LINEAR_SOLVER_PREC= ILU +LINEAR_SOLVER_ERROR= 1E-12 +LINEAR_SOLVER_ITER= 3 +CONV_CAUCHY_ELEMS= 1000 +CONV_CAUCHY_EPS= 1E-10 + +% -------------------- FLOW NUMERICAL METHOD DEFINITION -----------------------% +% +CONV_NUM_METHOD_FLOW= ROE +MUSCL_FLOW= YES +TIME_DISCRE_FLOW= EULER_IMPLICIT + +% -------------------- TURBULENT NUMERICAL METHOD DEFINITION ------------------% +% +CONV_NUM_METHOD_TURB= SCALAR_UPWIND +MUSCL_TURB= NO +SLOPE_LIMITER_TURB= VENKATAKRISHNAN +TIME_DISCRE_TURB= EULER_IMPLICIT + +% --------------------------- CONVERGENCE PARAMETERS --------------------------% +% +ITER= 2000 +CONV_RESIDUAL_MINVAL= -8 +CONV_STARTITER= 10 + +% ------------------------- INPUT/OUTPUT INFORMATION --------------------------% +% +MESH_FILENAME= actuatordisk_bem.su2 +MESH_FORMAT= SU2 +MESH_OUT_FILENAME= mesh_out.su2 +SOLUTION_FILENAME= actuatordisk_bem.dat +TABULAR_FORMAT= CSV +CONV_FILENAME= history_actuatordisk_bem +OUTPUT_FILES= (RESTART, PARAVIEW, SURFACE_PARAVIEW) +WRT_FORCES_BREAKDOWN= YES +BREAKDOWN_FILENAME= forces_breakdown_actuatordisk_bem.dat +RESTART_FILENAME= restart_flow_actuatordisk_bem.dat +VOLUME_FILENAME= flow_actuatordisk_bem +SURFACE_FILENAME= surface_flow_actuatordisk_bem +OUTPUT_WRT_FREQ= 500 +%SCREEN_OUTPUT= (INNER_ITER, WALL_TIME, RMS_DENSITY, RMS_NU_TILDE, NONPHYSICAL_POINTS, LIFT, DRAG) +SCREEN_OUTPUT= (INNER_ITER, RMS_DENSITY, RMS_NU_TILDE, LIFT, DRAG) +HISTORY_OUTPUT= (INNER_ITER, RMS_RES, LIFT, DRAG, AERO_COEFF) diff --git a/TestCases/rans/actuatordisk_bem/prop_geom_alfclcd_data.txt b/TestCases/rans/actuatordisk_bem/prop_geom_alfclcd_data.txt new file mode 100644 index 00000000000..8ee50cc1728 --- /dev/null +++ b/TestCases/rans/actuatordisk_bem/prop_geom_alfclcd_data.txt @@ -0,0 +1,558 @@ +# Geometric parameters of propeller +4 : number of blades +0.237 : diameter (m) +0.01754 : radius of hub (m) +23.9 : angle at 75% radius, has to be consistent with section data +# Nsection, Nalf + 22 23 +#section,radius,chord,set angle +1 0.029625 0.011802 39.738358 +2 0.035550 0.013272 36.824936 +3 0.041475 0.014546 34.978134 +4 0.047400 0.016093 33.867138 +5 0.053325 0.017495 32.648598 +6 0.056288 0.018061 31.824940 +7 0.059250 0.018628 30.987774 +8 0.065175 0.019253 29.155754 +9 0.068137 0.019335 28.223461 +10 0.071100 0.019398 27.291164 +11 0.077025 0.019398 26.051857 +12 0.079988 0.019224 25.441435 +13 0.082950 0.019038 24.831013 +14 0.088875 0.018572 23.900000 +15 0.091837 0.018218 23.311188 +16 0.094800 0.017864 22.824017 +17 0.100725 0.016862 21.970278 +18 0.103688 0.016231 21.604017 +19 0.106650 0.015600 21.237759 +20 0.109613 0.014859 20.871506 +21 0.112575 0.014110 20.506992 +22 0.115538 0.011545 20.322815 +#Sec_1, alpha,cl,cd +-15.00 -0.42201 0.14538 +-10.00 -0.47384 0.03066 +-7.000 -0.31633 0.02323 +-5.000 -0.17261 0.02101 +-2.000 0.062180 0.02041 +0.0000 0.217500 0.02160 +2.0000 0.362500 0.02415 +5.0000 0.545000 0.03092 +8.0000 0.663400 0.04315 +10.000 0.715250 0.05540 +12.000 0.772350 0.07025 +15.000 0.846930 0.09997 +17.000 0.793240 0.14274 +20.000 0.741380 0.21541 +25.000 0.809181 0.31423 +30.000 0.799410 0.45780 +35.000 0.842714 0.58514 +40.000 0.859940 0.72557 +50.000 0.842806 1.01662 +60.000 0.753790 1.27954 +70.000 0.581530 1.49396 +80.000 0.346121 1.63350 +90.000 0.074679 1.67220 +#Sec_2, alpha,cl,cd +-15.00 -0.42201 0.14538 +-10.00 -0.47384 0.03066 +-7.000 -0.31633 0.02323 +-5.000 -0.17261 0.02101 +-2.000 0.062180 0.02041 +0.0000 0.217500 0.02160 +2.0000 0.362500 0.02415 +5.0000 0.545000 0.03092 +8.0000 0.663400 0.04315 +10.000 0.715250 0.05540 +12.000 0.772350 0.07025 +15.000 0.846930 0.09997 +17.000 0.793240 0.14274 +20.000 0.741380 0.21541 +25.000 0.809181 0.31423 +30.000 0.799410 0.45780 +35.000 0.842714 0.58514 +40.000 0.859940 0.72557 +50.000 0.842806 1.01662 +60.000 0.753790 1.27954 +70.000 0.581530 1.49396 +80.000 0.346121 1.63350 +90.000 0.074679 1.67220 +#Sec_3, alpha,cl,cd +-15.00 -0.42201 0.14538 +-10.00 -0.47384 0.03066 +-7.000 -0.31633 0.02323 +-5.000 -0.17261 0.02101 +-2.000 0.062180 0.02041 +0.0000 0.217500 0.02160 +2.0000 0.362500 0.02415 +5.0000 0.545000 0.03092 +8.0000 0.663400 0.04315 +10.000 0.715250 0.05540 +12.000 0.772350 0.07025 +15.000 0.846930 0.09997 +17.000 0.793240 0.14274 +20.000 0.741380 0.21541 +25.000 0.809181 0.31423 +30.000 0.799410 0.45780 +35.000 0.842714 0.58514 +40.000 0.859940 0.72557 +50.000 0.842806 1.01662 +60.000 0.753790 1.27954 +70.000 0.581530 1.49396 +80.000 0.346121 1.63350 +90.000 0.074679 1.67220 +#Sec_4, alpha,cl,cd +-15.00 -0.42201 0.14538 +-10.00 -0.47384 0.03066 +-7.000 -0.31633 0.02323 +-5.000 -0.17261 0.02101 +-2.000 0.062180 0.02041 +0.0000 0.217500 0.02160 +2.0000 0.362500 0.02415 +5.0000 0.545000 0.03092 +8.0000 0.663400 0.04315 +10.000 0.715250 0.05540 +12.000 0.772350 0.07025 +15.000 0.846930 0.09997 +17.000 0.793240 0.14274 +20.000 0.741380 0.21541 +25.000 0.809181 0.31423 +30.000 0.799410 0.45780 +35.000 0.842714 0.58514 +40.000 0.859940 0.72557 +50.000 0.842806 1.01662 +60.000 0.753790 1.27954 +70.000 0.581530 1.49396 +80.000 0.346121 1.63350 +90.000 0.074679 1.67220 +#Sec_5, alpha,cl,cd +-15.00 -0.42201 0.14538 +-10.00 -0.47384 0.03066 +-7.000 -0.31633 0.02323 +-5.000 -0.17261 0.02101 +-2.000 0.062180 0.02041 +0.0000 0.217500 0.02160 +2.0000 0.362500 0.02415 +5.0000 0.545000 0.03092 +8.0000 0.663400 0.04315 +10.000 0.715250 0.05540 +12.000 0.772350 0.07025 +15.000 0.846930 0.09997 +17.000 0.793240 0.14274 +20.000 0.741380 0.21541 +25.000 0.809181 0.31423 +30.000 0.799410 0.45780 +35.000 0.842714 0.58514 +40.000 0.859940 0.72557 +50.000 0.842806 1.01662 +60.000 0.753790 1.27954 +70.000 0.581530 1.49396 +80.000 0.346121 1.63350 +90.000 0.074679 1.67220 +#Sec_6,alpha,cl,cd +-15.00 -0.38500 0.18600 +-10.00 -0.39240 0.08201 +-7.000 -0.34387 0.02873 +-5.000 -0.16518 0.02386 +-2.000 0.119372 0.02119 +0.0000 0.311530 0.02133 +2.0000 0.500006 0.02276 +5.0000 0.767233 0.02742 +8.0000 0.997630 0.03621 +10.000 1.114230 0.04588 +12.000 1.181340 0.06145 +15.000 1.152260 0.10511 +17.000 1.004230 0.16952 +20.000 0.920632 0.26388 +25.000 0.932029 0.40397 +30.000 0.956910 0.54778 +35.000 0.974480 0.71086 +40.000 0.990417 0.86521 +50.000 0.953389 1.17309 +60.000 0.823469 1.46302 +70.000 0.606730 1.70462 +80.000 0.320770 1.86131 +90.000 -0.00218 1.90357 +#Sec_7,alpha,cl,cd +-15.00 -0.38500 0.18600 +-10.00 -0.39240 0.08201 +-7.000 -0.34387 0.02873 +-5.000 -0.16518 0.02386 +-2.000 0.119372 0.02119 +0.0000 0.311530 0.02133 +2.0000 0.500006 0.02276 +5.0000 0.767233 0.02742 +8.0000 0.997630 0.03621 +10.000 1.114230 0.04588 +12.000 1.181340 0.06145 +15.000 1.152260 0.10511 +17.000 1.004230 0.16952 +20.000 0.920632 0.26388 +25.000 0.932029 0.40397 +30.000 0.956910 0.54778 +35.000 0.974480 0.71086 +40.000 0.990417 0.86521 +50.000 0.953389 1.17309 +60.000 0.823469 1.46302 +70.000 0.606730 1.70462 +80.000 0.320770 1.86131 +90.000 -0.00218 1.90357 +#Sec_8,alpha,cl,cd +-15.00 -0.38500 0.18600 +-10.00 -0.39240 0.08201 +-7.000 -0.34387 0.02873 +-5.000 -0.16518 0.02386 +-2.000 0.119372 0.02119 +0.0000 0.311530 0.02133 +2.0000 0.500006 0.02276 +5.0000 0.767233 0.02742 +8.0000 0.997630 0.03621 +10.000 1.114230 0.04588 +12.000 1.181340 0.06145 +15.000 1.152260 0.10511 +17.000 1.004230 0.16952 +20.000 0.920632 0.26388 +25.000 0.932029 0.40397 +30.000 0.956910 0.54778 +35.000 0.974480 0.71086 +40.000 0.990417 0.86521 +50.000 0.953389 1.17309 +60.000 0.823469 1.46302 +70.000 0.606730 1.70462 +80.000 0.320770 1.86131 +90.000 -0.00218 1.90357 +#Sec_9,alpha,cl,cd +-15.00 -0.38500 0.18600 +-10.00 -0.39240 0.08201 +-7.000 -0.34387 0.02873 +-5.000 -0.16518 0.02386 +-2.000 0.119372 0.02119 +0.0000 0.311530 0.02133 +2.0000 0.500006 0.02276 +5.0000 0.767233 0.02742 +8.0000 0.997630 0.03621 +10.000 1.114230 0.04588 +12.000 1.181340 0.06145 +15.000 1.152260 0.10511 +17.000 1.004230 0.16952 +20.000 0.920632 0.26388 +25.000 0.932029 0.40397 +30.000 0.956910 0.54778 +35.000 0.974480 0.71086 +40.000 0.990417 0.86521 +50.000 0.953389 1.17309 +60.000 0.823469 1.46302 +70.000 0.606730 1.70462 +80.000 0.320770 1.86131 +90.000 -0.00218 1.90357 +#Sec_10,alpha,cl,cd +-15.00 -0.38500 0.18600 +-10.00 -0.39240 0.08201 +-7.000 -0.34387 0.02873 +-5.000 -0.16518 0.02386 +-2.000 0.119372 0.02119 +0.0000 0.311530 0.02133 +2.0000 0.500006 0.02276 +5.0000 0.767233 0.02742 +8.0000 0.997630 0.03621 +10.000 1.114230 0.04588 +12.000 1.181340 0.06145 +15.000 1.152260 0.10511 +17.000 1.004230 0.16952 +20.000 0.920632 0.26388 +25.000 0.932029 0.40397 +30.000 0.956910 0.54778 +35.000 0.974480 0.71086 +40.000 0.990417 0.86521 +50.000 0.953389 1.17309 +60.000 0.823469 1.46302 +70.000 0.606730 1.70462 +80.000 0.320770 1.86131 +90.000 -0.00218 1.90357 +#Sec_11,alpha,cl,cd +-15.00 -0.38500 0.18600 +-10.00 -0.39240 0.08201 +-7.000 -0.34387 0.02873 +-5.000 -0.16518 0.02386 +-2.000 0.119372 0.02119 +0.0000 0.311530 0.02133 +2.0000 0.500006 0.02276 +5.0000 0.767233 0.02742 +8.0000 0.997630 0.03621 +10.000 1.114230 0.04588 +12.000 1.181340 0.06145 +15.000 1.152260 0.10511 +17.000 1.004230 0.16952 +20.000 0.920632 0.26388 +25.000 0.932029 0.40397 +30.000 0.956910 0.54778 +35.000 0.974480 0.71086 +40.000 0.990417 0.86521 +50.000 0.953389 1.17309 +60.000 0.823469 1.46302 +70.000 0.606730 1.70462 +80.000 0.320770 1.86131 +90.000 -0.00218 1.90357 +#Sec_12,alpha,cl,cd +-15.00 -0.38500 0.18600 +-10.00 -0.39240 0.08201 +-7.000 -0.34387 0.02873 +-5.000 -0.16518 0.02386 +-2.000 0.119372 0.02119 +0.0000 0.311530 0.02133 +2.0000 0.500006 0.02276 +5.0000 0.767233 0.02742 +8.0000 0.997630 0.03621 +10.000 1.114230 0.04588 +12.000 1.181340 0.06145 +15.000 1.152260 0.10511 +17.000 1.004230 0.16952 +20.000 0.920632 0.26388 +25.000 0.932029 0.40397 +30.000 0.956910 0.54778 +35.000 0.974480 0.71086 +40.000 0.990417 0.86521 +50.000 0.953389 1.17309 +60.000 0.823469 1.46302 +70.000 0.606730 1.70462 +80.000 0.320770 1.86131 +90.000 -0.00218 1.90357 +#Sec_13,alpha,cl,cd +-15.00 -0.38500 0.18600 +-10.00 -0.39240 0.08201 +-7.000 -0.34387 0.02873 +-5.000 -0.16518 0.02386 +-2.000 0.119372 0.02119 +0.0000 0.311530 0.02133 +2.0000 0.500006 0.02276 +5.0000 0.767233 0.02742 +8.0000 0.997630 0.03621 +10.000 1.114230 0.04588 +12.000 1.181340 0.06145 +15.000 1.152260 0.10511 +17.000 1.004230 0.16952 +20.000 0.920632 0.26388 +25.000 0.932029 0.40397 +30.000 0.956910 0.54778 +35.000 0.974480 0.71086 +40.000 0.990417 0.86521 +50.000 0.953389 1.17309 +60.000 0.823469 1.46302 +70.000 0.606730 1.70462 +80.000 0.320770 1.86131 +90.000 -0.00218 1.90357 +#Sec_14,alpha,cl,cd +-15.00 -0.71025 0.250000 +-10.00 -0.62520 0.152360 +-7.000 -0.46165 0.067514 +-5.000 -0.31109 0.028340 +-2.000 0.002995 0.020170 +0.0000 0.209724 0.019035 +2.0000 0.420804 0.019842 +5.0000 0.726100 0.024640 +8.0000 1.005110 0.035811 +10.000 1.142203 0.051340 +12.000 1.071063 0.097789 +15.000 0.885860 0.219350 +17.000 0.917480 0.273890 +20.000 0.929127 0.350000 +25.000 0.982100 0.480000 +30.000 1.038380 0.614900 +35.000 1.072214 0.704314 +40.000 1.082084 0.920430 +50.000 1.032150 1.244025 +60.000 0.884800 1.549000 +70.000 0.652577 1.810174 +80.000 0.346247 1.982400 +90.000 -0.00090 2.034369 +#Sec_15,alpha,cl,cd +-15.00 -0.71025 0.250000 +-10.00 -0.62520 0.152360 +-7.000 -0.46165 0.067514 +-5.000 -0.31109 0.028340 +-2.000 0.002995 0.020170 +0.0000 0.209724 0.019035 +2.0000 0.420804 0.019842 +5.0000 0.726100 0.024640 +8.0000 1.005110 0.035811 +10.000 1.142203 0.051340 +12.000 1.071063 0.097789 +15.000 0.885860 0.219350 +17.000 0.917480 0.273890 +20.000 0.929127 0.350000 +25.000 0.982100 0.480000 +30.000 1.038380 0.614900 +35.000 1.072214 0.704314 +40.000 1.082084 0.920430 +50.000 1.032150 1.244025 +60.000 0.884800 1.549000 +70.000 0.652577 1.810174 +80.000 0.346247 1.982400 +90.000 -0.00090 2.034369 +#Sec_16,alpha,cl,cd +-15.00 -0.450235 0.123572 +-10.00 -0.509059 0.092961 +-7.000 -0.473475 0.068098 +-5.000 -0.311293 0.028335 +-2.000 -0.000500 0.020111 +0.0000 0.212258 0.019451 +2.0000 0.423786 0.020642 +5.0000 0.731349 0.026056 +8.0000 1.008821 0.038666 +10.000 1.135043 0.058155 +12.000 0.937040 0.138576 +15.000 0.964997 0.255187 +17.000 0.872200 0.324306 +20.000 0.857793 0.333029 +25.000 0.922114 0.460801 +30.000 1.045545 0.626256 +35.000 1.076223 0.775646 +40.000 1.084297 0.932095 +50.000 1.031466 1.254707 +60.000 0.883621 1.561348 +70.000 0.645650 1.814277 +80.000 0.337736 1.982865 +90.000 -0.00965 2.034968 +#Sec_17,alpha,cl,cd +-15.00 -0.450235 0.123572 +-10.00 -0.509059 0.092961 +-7.000 -0.473475 0.068098 +-5.000 -0.311293 0.028335 +-2.000 -0.000500 0.020111 +0.0000 0.212258 0.019451 +2.0000 0.423786 0.020642 +5.0000 0.731349 0.026056 +8.0000 1.008821 0.038666 +10.000 1.135043 0.058155 +12.000 0.937040 0.138576 +15.000 0.964997 0.255187 +17.000 0.872200 0.324306 +20.000 0.857793 0.333029 +25.000 0.922114 0.460801 +30.000 1.045545 0.626256 +35.000 1.076223 0.775646 +40.000 1.084297 0.932095 +50.000 1.031466 1.254707 +60.000 0.883621 1.561348 +70.000 0.645650 1.814277 +80.000 0.337736 1.982865 +90.000 -0.00965 2.034968 +#Sec_18,alpha,cl,cd +-15.00 -0.450235 0.123572 +-10.00 -0.509059 0.092961 +-7.000 -0.473475 0.068098 +-5.000 -0.311293 0.028335 +-2.000 -0.000500 0.020111 +0.0000 0.212258 0.019451 +2.0000 0.423786 0.020642 +5.0000 0.731349 0.026056 +8.0000 1.008821 0.038666 +10.000 1.135043 0.058155 +12.000 0.937040 0.138576 +15.000 0.964997 0.255187 +17.000 0.872200 0.324306 +20.000 0.857793 0.333029 +25.000 0.922114 0.460801 +30.000 1.045545 0.626256 +35.000 1.076223 0.775646 +40.000 1.084297 0.932095 +50.000 1.031466 1.254707 +60.000 0.883621 1.561348 +70.000 0.645650 1.814277 +80.000 0.337736 1.982865 +90.000 -0.00965 2.034968 +#Sec_19,alpha,cl,cd +-15.00 -0.624154 0.154154 +-10.00 -0.538409 0.080512 +-7.000 -0.481732 0.075544 +-5.000 -0.313564 0.031177 +-2.000 -0.002507 0.018085 +0.0000 0.210838 0.016733 +2.0000 0.422316 0.017475 +5.0000 0.727235 0.022779 +8.0000 0.990487 0.038041 +10.000 1.023327 0.079155 +12.000 1.014323 0.123481 +15.000 1.002321 0.213523 +17.000 0.965321 0.261254 +20.000 0.942346 0.312364 +25.000 0.925641 0.375215 +30.000 1.056059 0.616220 +35.000 1.086160 0.764234 +40.000 1.097267 0.923027 +50.000 1.046694 1.250085 +60.000 0.903101 1.564407 +70.000 0.665977 1.821230 +80.000 0.357959 1.994476 +90.000 0.008920 2.053167 +#Sec_20,alpha,cl,cd +-15.00 -0.624154 0.154154 +-10.00 -0.538409 0.080512 +-7.000 -0.481732 0.075544 +-5.000 -0.313564 0.031177 +-2.000 -0.002507 0.018085 +0.0000 0.210838 0.016733 +2.0000 0.422316 0.017475 +5.0000 0.727235 0.022779 +8.0000 0.990487 0.038041 +10.000 1.023327 0.079155 +12.000 1.014323 0.123481 +15.000 1.002321 0.213523 +17.000 0.965321 0.261254 +20.000 0.942346 0.312364 +25.000 0.925641 0.375215 +30.000 1.056059 0.616220 +35.000 1.086160 0.764234 +40.000 1.097267 0.923027 +50.000 1.046694 1.250085 +60.000 0.903101 1.564407 +70.000 0.665977 1.821230 +80.000 0.357959 1.994476 +90.000 0.008920 2.053167 +#Sec_21,alpha,cl,cd +-15.00 -0.624154 0.154154 +-10.00 -0.538409 0.080512 +-7.000 -0.481732 0.075544 +-5.000 -0.313564 0.031177 +-2.000 -0.002507 0.018085 +0.0000 0.210838 0.016733 +2.0000 0.422316 0.017475 +5.0000 0.727235 0.022779 +8.0000 0.990487 0.038041 +10.000 1.023327 0.079155 +12.000 1.014323 0.123481 +15.000 1.002321 0.213523 +17.000 0.965321 0.261254 +20.000 0.942346 0.312364 +25.000 0.925641 0.375215 +30.000 1.056059 0.616220 +35.000 1.086160 0.764234 +40.000 1.097267 0.923027 +50.000 1.046694 1.250085 +60.000 0.903101 1.564407 +70.000 0.665977 1.821230 +80.000 0.357959 1.994476 +90.000 0.008920 2.053167 +#Sec_22,alpha,cl,cd +-15.00 -0.624154 0.154154 +-10.00 -0.538409 0.080512 +-7.000 -0.481732 0.075544 +-5.000 -0.313564 0.031177 +-2.000 -0.002507 0.018085 +0.0000 0.210838 0.016733 +2.0000 0.422316 0.017475 +5.0000 0.727235 0.022779 +8.0000 0.990487 0.038041 +10.000 1.023327 0.079155 +12.000 1.014323 0.123481 +15.000 1.002321 0.213523 +17.000 0.965321 0.261254 +20.000 0.942346 0.312364 +25.000 0.925641 0.375215 +30.000 1.056059 0.616220 +35.000 1.086160 0.764234 +40.000 1.097267 0.923027 +50.000 1.046694 1.250085 +60.000 0.903101 1.564407 +70.000 0.665977 1.821230 +80.000 0.357959 1.994476 +90.000 0.008920 2.053167 diff --git a/TestCases/rans/actuatordisk_bem/readme.txt b/TestCases/rans/actuatordisk_bem/readme.txt new file mode 100644 index 00000000000..58d2abceca3 --- /dev/null +++ b/TestCases/rans/actuatordisk_bem/readme.txt @@ -0,0 +1,16 @@ +Propeller data provided as the test case here is the propeller used in the studies of Sinnige et al. 2018 in their experimental studies. Isolated propeller geometry as .stp file and experimental results (J vs CT, J vs CP) are provided as supplementary materials along with the publication. + +The current test case corresponds to the four bladed propeller of diameter 0.237m in a freestream velocity (Vinf) of 40m/s, advance ratio of J=0.8, propeller blade angle at 0.75R is 23.9 degrees. + +The experimental thrust and power (Non-Dimensional) at J ~ 0.8 are as follows: + +J=Vinf/nD CT=Thrust/rho*n2*D4 CP=Power/rho*n3*D5 +0.7963 0.0953 0.1025 + +The dimensional values are Thrust = 16.30 N and Torque = 0.6612 N-m. + +Reference: +----------- +Sinnige, T., van Arnhem, N., Stokkermans, T. C. A., Eitelberg, G., Veldhuis, L. L. M., ``Wingtip-Mounted + Propellers: Aerodynamic Analysis of Interaction Effects and Comparison with Conventional Layout,'' + Journal of Aircraft, 2018. diff --git a/TestCases/rans/actuatordisk_variable_load/propeller_variable_load.cfg b/TestCases/rans/actuatordisk_variable_load/propeller_variable_load.cfg index 6fbd652d6c1..d14c54cf397 100644 --- a/TestCases/rans/actuatordisk_variable_load/propeller_variable_load.cfg +++ b/TestCases/rans/actuatordisk_variable_load/propeller_variable_load.cfg @@ -8,7 +8,7 @@ % Comments: Grid file and propeller data courtesy of Mauro Minervino, % % Centro Italiano Ricerche Aerospaziali (CIRA) % % Date: 07/08/2020 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/rans/flatplate/turb_SA_flatplate.cfg b/TestCases/rans/flatplate/turb_SA_flatplate.cfg index 668de90324a..d8a345ddcb6 100644 --- a/TestCases/rans/flatplate/turb_SA_flatplate.cfg +++ b/TestCases/rans/flatplate/turb_SA_flatplate.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 2011.11.10 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/rans/flatplate/turb_SA_flatplate_species.cfg b/TestCases/rans/flatplate/turb_SA_flatplate_species.cfg index bcf1c84c107..38f13db5d6d 100644 --- a/TestCases/rans/flatplate/turb_SA_flatplate_species.cfg +++ b/TestCases/rans/flatplate/turb_SA_flatplate_species.cfg @@ -6,7 +6,7 @@ % Author: T. Kattmann % % Institution: Bosch Thermotechmniek B.V. % % Date: 2021.11.30 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/rans/flatplate/turb_SST_flatplate.cfg b/TestCases/rans/flatplate/turb_SST_flatplate.cfg index c0286b69232..fa2ca256375 100644 --- a/TestCases/rans/flatplate/turb_SST_flatplate.cfg +++ b/TestCases/rans/flatplate/turb_SST_flatplate.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 2011.11.10 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/rans/naca0012/turb_NACA0012_sa.cfg b/TestCases/rans/naca0012/turb_NACA0012_sa.cfg index 738a8bec2d2..d8a95f53438 100644 --- a/TestCases/rans/naca0012/turb_NACA0012_sa.cfg +++ b/TestCases/rans/naca0012/turb_NACA0012_sa.cfg @@ -6,7 +6,7 @@ % Author: Francisco Palacios % % Institution: Stanford University % % Date: Feb 18th, 2013 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/rans/naca0012/turb_NACA0012_sst.cfg b/TestCases/rans/naca0012/turb_NACA0012_sst.cfg index a36eb3b5b4e..ad49ff5411c 100644 --- a/TestCases/rans/naca0012/turb_NACA0012_sst.cfg +++ b/TestCases/rans/naca0012/turb_NACA0012_sst.cfg @@ -6,7 +6,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: Feb 18th, 2013 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/rans/naca0012/turb_NACA0012_sst_1994-KLm.cfg b/TestCases/rans/naca0012/turb_NACA0012_sst_1994-KLm.cfg index 1411fd2c953..c24b090c9de 100644 --- a/TestCases/rans/naca0012/turb_NACA0012_sst_1994-KLm.cfg +++ b/TestCases/rans/naca0012/turb_NACA0012_sst_1994-KLm.cfg @@ -3,7 +3,7 @@ % SU2 configuration file % % Case description: 2D NACA 0012 Airfoil Validation Case (compressible) % % SST-1994-KLm implementation % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/rans/naca0012/turb_NACA0012_sst_2003-Vm.cfg b/TestCases/rans/naca0012/turb_NACA0012_sst_2003-Vm.cfg index 2dce5941829..918838d0d21 100644 --- a/TestCases/rans/naca0012/turb_NACA0012_sst_2003-Vm.cfg +++ b/TestCases/rans/naca0012/turb_NACA0012_sst_2003-Vm.cfg @@ -3,7 +3,7 @@ % SU2 configuration file % % Case description: 2D NACA 0012 Airfoil Validation Case (compressible) % % SST-2003-Vm implementation % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/rans/naca0012/turb_NACA0012_sst_2003m.cfg b/TestCases/rans/naca0012/turb_NACA0012_sst_2003m.cfg index 6f056773a76..b8b44a9696d 100644 --- a/TestCases/rans/naca0012/turb_NACA0012_sst_2003m.cfg +++ b/TestCases/rans/naca0012/turb_NACA0012_sst_2003m.cfg @@ -1,7 +1,7 @@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % % SU2 configuration file, NACA0012 RANS SST-2003m % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/rans/naca0012/turb_NACA0012_sst_expliciteuler.cfg b/TestCases/rans/naca0012/turb_NACA0012_sst_expliciteuler.cfg index 6540e1ae5bb..94f781a0829 100644 --- a/TestCases/rans/naca0012/turb_NACA0012_sst_expliciteuler.cfg +++ b/TestCases/rans/naca0012/turb_NACA0012_sst_expliciteuler.cfg @@ -5,7 +5,7 @@ % Author: Max Aehle % % Institution: TU Kaiserslautern % % Date: Nov 17th, 2021 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/rans/naca0012/turb_NACA0012_sst_fixedvalues.cfg b/TestCases/rans/naca0012/turb_NACA0012_sst_fixedvalues.cfg index 7ff516e2f63..2202ad7fc79 100644 --- a/TestCases/rans/naca0012/turb_NACA0012_sst_fixedvalues.cfg +++ b/TestCases/rans/naca0012/turb_NACA0012_sst_fixedvalues.cfg @@ -5,7 +5,7 @@ % Author: Max Aehle % % Institution: TU Kaiserslautern % % Date: Mar 17th, 2021 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/rans/naca0012/turb_NACA0012_sst_multigrid_restart.cfg b/TestCases/rans/naca0012/turb_NACA0012_sst_multigrid_restart.cfg index 89e1eb1d810..e4bc57be440 100644 --- a/TestCases/rans/naca0012/turb_NACA0012_sst_multigrid_restart.cfg +++ b/TestCases/rans/naca0012/turb_NACA0012_sst_multigrid_restart.cfg @@ -6,7 +6,7 @@ % Author: David E. Manosalvas % % Institution: Stanford University % % Date: 02.14.2017 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/rans/naca0012/turb_NACA0012_sst_sust.cfg b/TestCases/rans/naca0012/turb_NACA0012_sst_sust.cfg index 7d0e6ce7092..7ac380855ff 100644 --- a/TestCases/rans/naca0012/turb_NACA0012_sst_sust.cfg +++ b/TestCases/rans/naca0012/turb_NACA0012_sst_sust.cfg @@ -6,7 +6,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: Feb 18th, 2013 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/rans/oneram6/turb_ONERAM6.cfg b/TestCases/rans/oneram6/turb_ONERAM6.cfg index 120cb1ca510..e5e2c6dcd43 100644 --- a/TestCases/rans/oneram6/turb_ONERAM6.cfg +++ b/TestCases/rans/oneram6/turb_ONERAM6.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 2014.06.14 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/rans/oneram6/turb_ONERAM6_nk.cfg b/TestCases/rans/oneram6/turb_ONERAM6_nk.cfg index 106487e4170..b1d6c0acf29 100644 --- a/TestCases/rans/oneram6/turb_ONERAM6_nk.cfg +++ b/TestCases/rans/oneram6/turb_ONERAM6_nk.cfg @@ -2,7 +2,7 @@ % % % SU2 configuration file % % Case description: Turbulent flow, ONERA M6, Newton-Krylov solver % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/rans/oneram6/turb_ONERAM6_vc.cfg b/TestCases/rans/oneram6/turb_ONERAM6_vc.cfg index 9a1beb75842..d1d5cccf2c9 100644 --- a/TestCases/rans/oneram6/turb_ONERAM6_vc.cfg +++ b/TestCases/rans/oneram6/turb_ONERAM6_vc.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 2014.06.14 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/rans/propeller/propeller.cfg b/TestCases/rans/propeller/propeller.cfg index 588c7f5fb1e..66945ebf228 100644 --- a/TestCases/rans/propeller/propeller.cfg +++ b/TestCases/rans/propeller/propeller.cfg @@ -5,7 +5,7 @@ % Author: % % Institution: % % Date: % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/rans/rae2822/turb_SA_RAE2822.cfg b/TestCases/rans/rae2822/turb_SA_RAE2822.cfg index 799744ef8cd..f8c549b89e9 100644 --- a/TestCases/rans/rae2822/turb_SA_RAE2822.cfg +++ b/TestCases/rans/rae2822/turb_SA_RAE2822.cfg @@ -5,7 +5,7 @@ % Author: Francisco Palacios % % Institution: Stanford University % % Date: 5/15/2013 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/rans/rae2822/turb_SST_RAE2822.cfg b/TestCases/rans/rae2822/turb_SST_RAE2822.cfg index 235d69197b5..3c042ebdf34 100644 --- a/TestCases/rans/rae2822/turb_SST_RAE2822.cfg +++ b/TestCases/rans/rae2822/turb_SST_RAE2822.cfg @@ -5,7 +5,7 @@ % Author: Francisco Palacios % % Institution: Stanford University % % Date: 5/15/2013 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/rans/rae2822/turb_SST_SUST_RAE2822.cfg b/TestCases/rans/rae2822/turb_SST_SUST_RAE2822.cfg index 18cea09288e..a57fbb7c55a 100644 --- a/TestCases/rans/rae2822/turb_SST_SUST_RAE2822.cfg +++ b/TestCases/rans/rae2822/turb_SST_SUST_RAE2822.cfg @@ -5,7 +5,7 @@ % Author: Francisco Palacios % % Institution: Stanford University % % Date: 5/15/2013 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/rans/restart_directdiff_naca/naca0012.cfg b/TestCases/rans/restart_directdiff_naca/naca0012.cfg index 78d355bd28a..5854371405d 100644 --- a/TestCases/rans/restart_directdiff_naca/naca0012.cfg +++ b/TestCases/rans/restart_directdiff_naca/naca0012.cfg @@ -5,7 +5,7 @@ % Author: Steffen Schotthöfer % % Institution: TU Kaiserslautern % % Date: Mar 16, 2017 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/rans/s809/trans_s809.cfg b/TestCases/rans/s809/trans_s809.cfg index c5e60357c06..7562b263402 100644 --- a/TestCases/rans/s809/trans_s809.cfg +++ b/TestCases/rans/s809/trans_s809.cfg @@ -5,7 +5,7 @@ % Author: Francisco Palacios % % Institution: Stanford University % % Date: 5/15/2013 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/rans/s809/turb_S809.cfg b/TestCases/rans/s809/turb_S809.cfg index ab0bf685b8b..cbb66fe170f 100644 --- a/TestCases/rans/s809/turb_S809.cfg +++ b/TestCases/rans/s809/turb_S809.cfg @@ -5,7 +5,7 @@ % Author: Francisco Palacios % % Institution: Stanford University % % Date: 5/15/2013 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/rans/vki_turbine/turb_vki.cfg b/TestCases/rans/vki_turbine/turb_vki.cfg index c8c3230da57..cbeeb7ae88e 100644 --- a/TestCases/rans/vki_turbine/turb_vki.cfg +++ b/TestCases/rans/vki_turbine/turb_vki.cfg @@ -5,7 +5,7 @@ % Author: Francisco Palacios, Thomas D. Economon % % Institution: Stanford University % % Date: Feb 18th, 2013 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/rans_uq/naca0012/turb_NACA0012_uq.cfg b/TestCases/rans_uq/naca0012/turb_NACA0012_uq.cfg index 27901dc69af..0d175e25eab 100644 --- a/TestCases/rans_uq/naca0012/turb_NACA0012_uq.cfg +++ b/TestCases/rans_uq/naca0012/turb_NACA0012_uq.cfg @@ -6,7 +6,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: Feb 18th, 2013 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/rans_uq/naca0012/turb_NACA0012_uq_1c.cfg b/TestCases/rans_uq/naca0012/turb_NACA0012_uq_1c.cfg index 5cef3fb5437..ee9e6f19684 100644 --- a/TestCases/rans_uq/naca0012/turb_NACA0012_uq_1c.cfg +++ b/TestCases/rans_uq/naca0012/turb_NACA0012_uq_1c.cfg @@ -6,7 +6,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: Feb 18th, 2013 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/rans_uq/naca0012/turb_NACA0012_uq_2c.cfg b/TestCases/rans_uq/naca0012/turb_NACA0012_uq_2c.cfg index 96cb46e5a0a..0001e71fbb0 100644 --- a/TestCases/rans_uq/naca0012/turb_NACA0012_uq_2c.cfg +++ b/TestCases/rans_uq/naca0012/turb_NACA0012_uq_2c.cfg @@ -6,7 +6,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: Feb 18th, 2013 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/rans_uq/naca0012/turb_NACA0012_uq_3c.cfg b/TestCases/rans_uq/naca0012/turb_NACA0012_uq_3c.cfg index f6d157f2d8e..32c8a732469 100644 --- a/TestCases/rans_uq/naca0012/turb_NACA0012_uq_3c.cfg +++ b/TestCases/rans_uq/naca0012/turb_NACA0012_uq_3c.cfg @@ -6,7 +6,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: Feb 18th, 2013 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/rans_uq/naca0012/turb_NACA0012_uq_p1c1.cfg b/TestCases/rans_uq/naca0012/turb_NACA0012_uq_p1c1.cfg index c707ebf78ed..446c9321e1b 100644 --- a/TestCases/rans_uq/naca0012/turb_NACA0012_uq_p1c1.cfg +++ b/TestCases/rans_uq/naca0012/turb_NACA0012_uq_p1c1.cfg @@ -6,7 +6,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: Feb 18th, 2013 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/rans_uq/naca0012/turb_NACA0012_uq_p1c2.cfg b/TestCases/rans_uq/naca0012/turb_NACA0012_uq_p1c2.cfg index 3a0dafa99c2..9b312636764 100644 --- a/TestCases/rans_uq/naca0012/turb_NACA0012_uq_p1c2.cfg +++ b/TestCases/rans_uq/naca0012/turb_NACA0012_uq_p1c2.cfg @@ -6,7 +6,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: Feb 18th, 2013 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/rotating/caradonna_tung/rot_caradonna_tung.cfg b/TestCases/rotating/caradonna_tung/rot_caradonna_tung.cfg index a84b6b28812..698524c4654 100644 --- a/TestCases/rotating/caradonna_tung/rot_caradonna_tung.cfg +++ b/TestCases/rotating/caradonna_tung/rot_caradonna_tung.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 2020.05.24 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/rotating/naca0012/rot_NACA0012.cfg b/TestCases/rotating/naca0012/rot_NACA0012.cfg index c90d00bc954..a103c5fbcf6 100644 --- a/TestCases/rotating/naca0012/rot_NACA0012.cfg +++ b/TestCases/rotating/naca0012/rot_NACA0012.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 2020.06.06 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/serial_regression.py b/TestCases/serial_regression.py index a8486bc11ea..cecb6408e22 100644 --- a/TestCases/serial_regression.py +++ b/TestCases/serial_regression.py @@ -3,14 +3,14 @@ ## \file serial_regression.py # \brief Python script for automated regression testing of SU2 examples # \author A. Aranake, A. Campos, T. Economon, T. Lukaczyk, S. Padron -# \version 8.0.0 "Harrier" +# \version 8.0.1 "Harrier" # # SU2 Project Website: https://su2code.github.io # # The SU2 Project is maintained by the SU2 Foundation # (http://su2foundation.org) # -# Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) +# Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) # # SU2 is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public @@ -750,7 +750,7 @@ def main(): cavity.cfg_dir = "moving_wall/cavity" cavity.cfg_file = "lam_cavity.cfg" cavity.test_iter = 25 - cavity.test_vals = [-5.627934, -0.164470, 0.051972, 2.547039] + cavity.test_vals = [ -5.627868, -0.164405, 0.053283, 2.545817] test_list.append(cavity) # Spinning cylinder @@ -758,7 +758,7 @@ def main(): spinning_cylinder.cfg_dir = "moving_wall/spinning_cylinder" spinning_cylinder.cfg_file = "spinning_cylinder.cfg" spinning_cylinder.test_iter = 25 - spinning_cylinder.test_vals = [-7.889994, -2.469385, 1.708162, 1.670039] + spinning_cylinder.test_vals = [-7.892807, -2.467378, 1.702819, 1.669208] test_list.append(spinning_cylinder) ###################################### @@ -849,7 +849,7 @@ def main(): ###################################### - ### turbomachinery ### + ### Turbomachinery ### ###################################### # Jones APU Turbocharger restart @@ -857,8 +857,7 @@ def main(): Jones_tc_restart.cfg_dir = "turbomachinery/APU_turbocharger" Jones_tc_restart.cfg_file = "Jones_restart.cfg" Jones_tc_restart.test_iter = 5 - Jones_tc_restart.test_vals = [-6.604538, -2.792279, -14.328534, -8.769317, -11.371438, -5.845632, 73273.000000, 73273.000000] - Jones_tc_restart.tol = 0.0001 + Jones_tc_restart.test_vals = [-6.594586, -2.792279, -14.336132, -8.776068, -11.371439, -5.845632, 73273, 73273, 0.019884, 82.491] test_list.append(Jones_tc_restart) # 2D axial stage @@ -866,7 +865,8 @@ def main(): axial_stage2D.cfg_dir = "turbomachinery/axial_stage_2D" axial_stage2D.cfg_file = "Axial_stage2D.cfg" axial_stage2D.test_iter = 20 - axial_stage2D.test_vals = [0.974801, 1.534472, -2.897692, 2.599377, -2.418396, 3.087203, 106380.000000, 106380.000000] + axial_stage2D.test_vals = [0.983751, 1.534480, -2.888520, 2.606773, -2.418421, 3.087187, 106380, 106380, 5.7325, 64.711] + axial_stage2D.test_vals_aarch64 = [0.983751, 1.534480, -2.888520, 2.606773, -2.418421, 3.087187, 106380, 106380, 5.7325, 64.711] test_list.append(axial_stage2D) # 2D transonic stator restart @@ -874,7 +874,8 @@ def main(): transonic_stator_restart.cfg_dir = "turbomachinery/transonic_stator_2D" transonic_stator_restart.cfg_file = "transonic_stator_restart.cfg" transonic_stator_restart.test_iter = 20 - transonic_stator_restart.test_vals = [-5.345491, -3.512311, -3.153972, 0.753530, -3.835478, 1.808296, -471690] + transonic_stator_restart.test_vals = [-5.008547, -3.102420, -2.752033, 1.091152, -3.543849, 2.169844, -471630, 94.866, -0.035806] + transonic_stator_restart.test_vals_aarch64 = [-5.008547, -3.102420, -2.752033, 1.091152, -3.543849, 2.169844, -471630, 94.866, -0.035806] test_list.append(transonic_stator_restart) @@ -1066,7 +1067,9 @@ def main(): airfoilRBF.cfg_dir = "fea_fsi/Airfoil_RBF" airfoilRBF.cfg_file = "config.cfg" airfoilRBF.test_iter = 1 - airfoilRBF.test_vals = [1.000000, -2.786183, -4.977959] + + airfoilRBF.test_vals = [1.000000, -2.786186, -4.977944] + airfoilRBF.tol = 0.0001 airfoilRBF.multizone = True test_list.append(airfoilRBF) diff --git a/TestCases/serial_regression_AD.py b/TestCases/serial_regression_AD.py index e8300572518..2a0ac757097 100644 --- a/TestCases/serial_regression_AD.py +++ b/TestCases/serial_regression_AD.py @@ -3,14 +3,14 @@ ## \file serial_regression.py # \brief Python script for automated regression testing of SU2 examples # \author A. Aranake, A. Campos, T. Economon, T. Lukaczyk, S. Padron -# \version 8.0.0 "Harrier" +# \version 8.0.1 "Harrier" # # SU2 Project Website: https://su2code.github.io # # The SU2 Project is maintained by the SU2 Foundation # (http://su2foundation.org) # -# Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) +# Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) # # SU2 is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public diff --git a/TestCases/sliding_interface/bars_SST_2D/bars.cfg b/TestCases/sliding_interface/bars_SST_2D/bars.cfg index bc43e495803..f98147eac76 100644 --- a/TestCases/sliding_interface/bars_SST_2D/bars.cfg +++ b/TestCases/sliding_interface/bars_SST_2D/bars.cfg @@ -5,7 +5,7 @@ % Author: A. Rubino % % Institution: Delft University of Technology % % Date: Feb 27th, 2017 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % diff --git a/TestCases/sliding_interface/bars_SST_2D/zone_1.cfg b/TestCases/sliding_interface/bars_SST_2D/zone_1.cfg index 7a20c9c665e..563e6d61c0c 100644 --- a/TestCases/sliding_interface/bars_SST_2D/zone_1.cfg +++ b/TestCases/sliding_interface/bars_SST_2D/zone_1.cfg @@ -5,7 +5,7 @@ % Author: A. Rubino % % Institution: Delft University of Technology % % Date: Feb 27th, 2017 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % diff --git a/TestCases/sliding_interface/bars_SST_2D/zone_2.cfg b/TestCases/sliding_interface/bars_SST_2D/zone_2.cfg index 10a4e2936c5..ad77d3df293 100644 --- a/TestCases/sliding_interface/bars_SST_2D/zone_2.cfg +++ b/TestCases/sliding_interface/bars_SST_2D/zone_2.cfg @@ -5,7 +5,7 @@ % Author: A. Rubino % % Institution: Delft University of Technology % % Date: Feb 27th, 2017 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/sliding_interface/bars_SST_2D/zone_3.cfg b/TestCases/sliding_interface/bars_SST_2D/zone_3.cfg index 8f184e207e2..0c3fee7b488 100644 --- a/TestCases/sliding_interface/bars_SST_2D/zone_3.cfg +++ b/TestCases/sliding_interface/bars_SST_2D/zone_3.cfg @@ -5,7 +5,7 @@ % Author: A. Rubino % % Institution: Delft University of Technology % % Date: Feb 27th, 2017 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % diff --git a/TestCases/sliding_interface/channel_2D/channel_2D_NN.cfg b/TestCases/sliding_interface/channel_2D/channel_2D_NN.cfg index c2eb991a72e..9ee7fcf5bea 100644 --- a/TestCases/sliding_interface/channel_2D/channel_2D_NN.cfg +++ b/TestCases/sliding_interface/channel_2D/channel_2D_NN.cfg @@ -6,7 +6,7 @@ % Author: G. Gori % % Institution: Politecnico di Milano % % Date: Oct 5th, 2016 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % diff --git a/TestCases/sliding_interface/channel_2D/channel_2D_WA.cfg b/TestCases/sliding_interface/channel_2D/channel_2D_WA.cfg index 2f1dc19dcf7..c377e26bea9 100644 --- a/TestCases/sliding_interface/channel_2D/channel_2D_WA.cfg +++ b/TestCases/sliding_interface/channel_2D/channel_2D_WA.cfg @@ -6,7 +6,7 @@ % Author: G. Gori % % Institution: Politecnico di Milano % % Date: Oct 5th, 2016 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % diff --git a/TestCases/sliding_interface/channel_2D/zone_2.cfg b/TestCases/sliding_interface/channel_2D/zone_2.cfg index 6040c078bcf..4bb31167d72 100644 --- a/TestCases/sliding_interface/channel_2D/zone_2.cfg +++ b/TestCases/sliding_interface/channel_2D/zone_2.cfg @@ -5,7 +5,7 @@ % Author: A. Rubino % % Institution: Delft University of Technology % % Date: Feb 27th, 2017 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/sliding_interface/channel_2D/zone_3.cfg b/TestCases/sliding_interface/channel_2D/zone_3.cfg index 8f184e207e2..0c3fee7b488 100644 --- a/TestCases/sliding_interface/channel_2D/zone_3.cfg +++ b/TestCases/sliding_interface/channel_2D/zone_3.cfg @@ -5,7 +5,7 @@ % Author: A. Rubino % % Institution: Delft University of Technology % % Date: Feb 27th, 2017 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % diff --git a/TestCases/sliding_interface/channel_3D/channel_3D_NN.cfg b/TestCases/sliding_interface/channel_3D/channel_3D_NN.cfg index 836e18b052e..74f17eb884c 100644 --- a/TestCases/sliding_interface/channel_3D/channel_3D_NN.cfg +++ b/TestCases/sliding_interface/channel_3D/channel_3D_NN.cfg @@ -6,7 +6,7 @@ % Author: G. Gori % % Institution: Politecnico di Milano % % Date: Oct 5th, 2016 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % diff --git a/TestCases/sliding_interface/channel_3D/channel_3D_WA.cfg b/TestCases/sliding_interface/channel_3D/channel_3D_WA.cfg index 6e89041dc95..d496284b02a 100644 --- a/TestCases/sliding_interface/channel_3D/channel_3D_WA.cfg +++ b/TestCases/sliding_interface/channel_3D/channel_3D_WA.cfg @@ -6,7 +6,7 @@ % Author: G. Gori % % Institution: Politecnico di Milano % % Date: Oct 5th, 2016 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % diff --git a/TestCases/sliding_interface/channel_3D/zone_1.cfg b/TestCases/sliding_interface/channel_3D/zone_1.cfg index f0863a91ad2..2c7d8098f93 100644 --- a/TestCases/sliding_interface/channel_3D/zone_1.cfg +++ b/TestCases/sliding_interface/channel_3D/zone_1.cfg @@ -6,7 +6,7 @@ % Author: G. Gori % % Institution: Politecnico di Milano % % Date: Oct 5th, 2016 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % diff --git a/TestCases/sliding_interface/channel_3D/zone_2.cfg b/TestCases/sliding_interface/channel_3D/zone_2.cfg index 7fd28d0e8a4..6b03c22c329 100644 --- a/TestCases/sliding_interface/channel_3D/zone_2.cfg +++ b/TestCases/sliding_interface/channel_3D/zone_2.cfg @@ -6,7 +6,7 @@ % Author: G. Gori % % Institution: Politecnico di Milano % % Date: Oct 5th, 2016 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/sliding_interface/channel_3D/zone_3.cfg b/TestCases/sliding_interface/channel_3D/zone_3.cfg index 761a126c09d..dcd16289ede 100644 --- a/TestCases/sliding_interface/channel_3D/zone_3.cfg +++ b/TestCases/sliding_interface/channel_3D/zone_3.cfg @@ -6,7 +6,7 @@ % Author: G. Gori % % Institution: Politecnico di Milano % % Date: Oct 5th, 2016 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/sliding_interface/incompressible_steady/config.cfg b/TestCases/sliding_interface/incompressible_steady/config.cfg index cc19cc09a15..4e10a4329cc 100644 --- a/TestCases/sliding_interface/incompressible_steady/config.cfg +++ b/TestCases/sliding_interface/incompressible_steady/config.cfg @@ -5,7 +5,7 @@ % Author: Ruben Sanchez % % Institution: Chair for Scientific Computing, TU Kaiserslautern % % Date: January 28th, 2018 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/sliding_interface/incompressible_steady/configCircle.cfg b/TestCases/sliding_interface/incompressible_steady/configCircle.cfg index 757f2469edc..329afabb911 100644 --- a/TestCases/sliding_interface/incompressible_steady/configCircle.cfg +++ b/TestCases/sliding_interface/incompressible_steady/configCircle.cfg @@ -5,7 +5,7 @@ % Author: Ruben Sanchez % % Institution: Chair for Scientific Computing, TU Kaiserslautern % % Date: January 28th, 2018 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/sliding_interface/incompressible_steady/configOut.cfg b/TestCases/sliding_interface/incompressible_steady/configOut.cfg index f9523435cce..f8c063451a7 100644 --- a/TestCases/sliding_interface/incompressible_steady/configOut.cfg +++ b/TestCases/sliding_interface/incompressible_steady/configOut.cfg @@ -5,7 +5,7 @@ % Author: Ruben Sanchez % % Institution: Chair for Scientific Computing, TU Kaiserslautern % % Date: January 28th, 2018 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/sliding_interface/incompressible_unsteady/config.cfg b/TestCases/sliding_interface/incompressible_unsteady/config.cfg index ea76fd46db9..b6ab3f8c76d 100644 --- a/TestCases/sliding_interface/incompressible_unsteady/config.cfg +++ b/TestCases/sliding_interface/incompressible_unsteady/config.cfg @@ -5,7 +5,7 @@ % Author: Ruben Sanchez % % Institution: Chair for Scientific Computing, TU Kaiserslautern % % Date: January 28th, 2018 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/sliding_interface/incompressible_unsteady/configCircle.cfg b/TestCases/sliding_interface/incompressible_unsteady/configCircle.cfg index 6640fda6613..54bf0c90568 100644 --- a/TestCases/sliding_interface/incompressible_unsteady/configCircle.cfg +++ b/TestCases/sliding_interface/incompressible_unsteady/configCircle.cfg @@ -5,7 +5,7 @@ % Author: Ruben Sanchez % % Institution: Chair for Scientific Computing, TU Kaiserslautern % % Date: January 28th, 2018 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/sliding_interface/incompressible_unsteady/configOut.cfg b/TestCases/sliding_interface/incompressible_unsteady/configOut.cfg index 7885a977b1e..97d9e32fbb4 100644 --- a/TestCases/sliding_interface/incompressible_unsteady/configOut.cfg +++ b/TestCases/sliding_interface/incompressible_unsteady/configOut.cfg @@ -5,7 +5,7 @@ % Author: Ruben Sanchez % % Institution: Chair for Scientific Computing, TU Kaiserslautern % % Date: January 28th, 2018 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/sliding_interface/pipe/pipe_NN.cfg b/TestCases/sliding_interface/pipe/pipe_NN.cfg index d7b7b982336..4bf4a4fd950 100644 --- a/TestCases/sliding_interface/pipe/pipe_NN.cfg +++ b/TestCases/sliding_interface/pipe/pipe_NN.cfg @@ -6,7 +6,7 @@ % Author: G. Gori % % Institution: Politecnico di Milano % % Date: Oct 5th, 2016 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % diff --git a/TestCases/sliding_interface/pipe/pipe_WA.cfg b/TestCases/sliding_interface/pipe/pipe_WA.cfg index 307ada6e126..9e64f58ddb2 100644 --- a/TestCases/sliding_interface/pipe/pipe_WA.cfg +++ b/TestCases/sliding_interface/pipe/pipe_WA.cfg @@ -6,7 +6,7 @@ % Author: G. Gori % % Institution: Politecnico di Milano % % Date: Oct 5th, 2016 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % diff --git a/TestCases/sliding_interface/pipe/zone_1.cfg b/TestCases/sliding_interface/pipe/zone_1.cfg index 487b236174a..d8d56c9f72a 100644 --- a/TestCases/sliding_interface/pipe/zone_1.cfg +++ b/TestCases/sliding_interface/pipe/zone_1.cfg @@ -6,7 +6,7 @@ % Author: G. Gori % % Institution: Politecnico di Milano % % Date: Oct 5th, 2016 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % diff --git a/TestCases/sliding_interface/pipe/zone_2.cfg b/TestCases/sliding_interface/pipe/zone_2.cfg index 29e2f7de0d0..966d976fc89 100644 --- a/TestCases/sliding_interface/pipe/zone_2.cfg +++ b/TestCases/sliding_interface/pipe/zone_2.cfg @@ -6,7 +6,7 @@ % Author: G. Gori % % Institution: Politecnico di Milano % % Date: Oct 5th, 2016 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % diff --git a/TestCases/sliding_interface/pipe/zone_3.cfg b/TestCases/sliding_interface/pipe/zone_3.cfg index 102d9e56724..a9a8a15073b 100644 --- a/TestCases/sliding_interface/pipe/zone_3.cfg +++ b/TestCases/sliding_interface/pipe/zone_3.cfg @@ -6,7 +6,7 @@ % Author: G. Gori % % Institution: Politecnico di Milano % % Date: Oct 5th, 2016 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % diff --git a/TestCases/sliding_interface/pipe/zone_4.cfg b/TestCases/sliding_interface/pipe/zone_4.cfg index 6aff37ad147..0ba96b441fc 100644 --- a/TestCases/sliding_interface/pipe/zone_4.cfg +++ b/TestCases/sliding_interface/pipe/zone_4.cfg @@ -6,7 +6,7 @@ % Author: G. Gori % % Institution: Politecnico di Milano % % Date: Oct 5th, 2016 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % diff --git a/TestCases/sliding_interface/pipe/zone_5.cfg b/TestCases/sliding_interface/pipe/zone_5.cfg index 29e2f7de0d0..966d976fc89 100644 --- a/TestCases/sliding_interface/pipe/zone_5.cfg +++ b/TestCases/sliding_interface/pipe/zone_5.cfg @@ -6,7 +6,7 @@ % Author: G. Gori % % Institution: Politecnico di Milano % % Date: Oct 5th, 2016 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % diff --git a/TestCases/sliding_interface/rotating_cylinders/rot_cylinders_NN.cfg b/TestCases/sliding_interface/rotating_cylinders/rot_cylinders_NN.cfg index fde950d8301..7a1d763ba26 100644 --- a/TestCases/sliding_interface/rotating_cylinders/rot_cylinders_NN.cfg +++ b/TestCases/sliding_interface/rotating_cylinders/rot_cylinders_NN.cfg @@ -5,7 +5,7 @@ % Author: G. Gori % % Institution: Politecnico di Milano % % Date: Oct 5th, 2016 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % diff --git a/TestCases/sliding_interface/rotating_cylinders/rot_cylinders_WA.cfg b/TestCases/sliding_interface/rotating_cylinders/rot_cylinders_WA.cfg index a41e54fc9df..38a3064889f 100644 --- a/TestCases/sliding_interface/rotating_cylinders/rot_cylinders_WA.cfg +++ b/TestCases/sliding_interface/rotating_cylinders/rot_cylinders_WA.cfg @@ -5,7 +5,7 @@ % Author: G. Gori % % Institution: Politecnico di Milano % % Date: Oct 5th, 2016 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % diff --git a/TestCases/sliding_interface/single_stage/single_stage_NN.cfg b/TestCases/sliding_interface/single_stage/single_stage_NN.cfg index ec60565c35c..d8152fa336f 100644 --- a/TestCases/sliding_interface/single_stage/single_stage_NN.cfg +++ b/TestCases/sliding_interface/single_stage/single_stage_NN.cfg @@ -6,7 +6,7 @@ % Author: G. Gori % % Institution: Politecnico di Milano % % Date: Oct 5th, 2016 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % diff --git a/TestCases/sliding_interface/single_stage/single_stage_WA.cfg b/TestCases/sliding_interface/single_stage/single_stage_WA.cfg index 01ac60458d8..5f8789b2e0d 100644 --- a/TestCases/sliding_interface/single_stage/single_stage_WA.cfg +++ b/TestCases/sliding_interface/single_stage/single_stage_WA.cfg @@ -6,7 +6,7 @@ % Author: G. Gori % % Institution: Politecnico di Milano % % Date: Oct 5th, 2016 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % diff --git a/TestCases/sliding_interface/single_stage/zone_1.cfg b/TestCases/sliding_interface/single_stage/zone_1.cfg index 2b5a41feccb..5c41c90aa92 100644 --- a/TestCases/sliding_interface/single_stage/zone_1.cfg +++ b/TestCases/sliding_interface/single_stage/zone_1.cfg @@ -6,7 +6,7 @@ % Author: G. Gori % % Institution: Politecnico di Milano % % Date: Oct 5th, 2016 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % diff --git a/TestCases/sliding_interface/single_stage/zone_2.cfg b/TestCases/sliding_interface/single_stage/zone_2.cfg index 22481326908..ece3a7a5b9f 100644 --- a/TestCases/sliding_interface/single_stage/zone_2.cfg +++ b/TestCases/sliding_interface/single_stage/zone_2.cfg @@ -6,7 +6,7 @@ % Author: G. Gori % % Institution: Politecnico di Milano % % Date: Oct 5th, 2016 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % diff --git a/TestCases/sliding_interface/supersonic_vortex_shedding/sup_vor_shed_NN.cfg b/TestCases/sliding_interface/supersonic_vortex_shedding/sup_vor_shed_NN.cfg index 157a43a7124..039712c1205 100644 --- a/TestCases/sliding_interface/supersonic_vortex_shedding/sup_vor_shed_NN.cfg +++ b/TestCases/sliding_interface/supersonic_vortex_shedding/sup_vor_shed_NN.cfg @@ -6,7 +6,7 @@ % Author: G. Gori % % Institution: Politecnico di Milano % % Date: Oct 5th, 2016 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % diff --git a/TestCases/sliding_interface/supersonic_vortex_shedding/sup_vor_shed_WA.cfg b/TestCases/sliding_interface/supersonic_vortex_shedding/sup_vor_shed_WA.cfg index 9e3729a2ade..13f603b10b1 100644 --- a/TestCases/sliding_interface/supersonic_vortex_shedding/sup_vor_shed_WA.cfg +++ b/TestCases/sliding_interface/supersonic_vortex_shedding/sup_vor_shed_WA.cfg @@ -6,7 +6,7 @@ % Author: G. Gori % % Institution: Politecnico di Milano % % Date: Oct 5th, 2016 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % diff --git a/TestCases/sliding_interface/supersonic_vortex_shedding/zone_1.cfg b/TestCases/sliding_interface/supersonic_vortex_shedding/zone_1.cfg index ef3679f63e4..a1be6a32758 100644 --- a/TestCases/sliding_interface/supersonic_vortex_shedding/zone_1.cfg +++ b/TestCases/sliding_interface/supersonic_vortex_shedding/zone_1.cfg @@ -6,7 +6,7 @@ % Author: G. Gori % % Institution: Politecnico di Milano % % Date: Oct 5th, 2016 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/sliding_interface/supersonic_vortex_shedding/zone_2.cfg b/TestCases/sliding_interface/supersonic_vortex_shedding/zone_2.cfg index 5d9e8b2bbaa..79bdcbaca12 100644 --- a/TestCases/sliding_interface/supersonic_vortex_shedding/zone_2.cfg +++ b/TestCases/sliding_interface/supersonic_vortex_shedding/zone_2.cfg @@ -6,7 +6,7 @@ % Author: G. Gori % % Institution: Politecnico di Milano % % Date: Oct 5th, 2016 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/sliding_interface/uniform_flow/uniform_NN.cfg b/TestCases/sliding_interface/uniform_flow/uniform_NN.cfg index 2b3c84f7dd5..dc8853298c0 100644 --- a/TestCases/sliding_interface/uniform_flow/uniform_NN.cfg +++ b/TestCases/sliding_interface/uniform_flow/uniform_NN.cfg @@ -6,7 +6,7 @@ % Author: G. Gori % % Institution: Politecnico di Milano % % Date: Oct 5th, 2016 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % diff --git a/TestCases/sliding_interface/uniform_flow/uniform_WA.cfg b/TestCases/sliding_interface/uniform_flow/uniform_WA.cfg index 3dd8981de59..aaa9c9e7643 100644 --- a/TestCases/sliding_interface/uniform_flow/uniform_WA.cfg +++ b/TestCases/sliding_interface/uniform_flow/uniform_WA.cfg @@ -6,7 +6,7 @@ % Author: G. Gori % % Institution: Politecnico di Milano % % Date: Oct 5th, 2016 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % diff --git a/TestCases/sliding_interface/uniform_flow/zone_1.cfg b/TestCases/sliding_interface/uniform_flow/zone_1.cfg index a49ac681c71..b02c6887dc0 100644 --- a/TestCases/sliding_interface/uniform_flow/zone_1.cfg +++ b/TestCases/sliding_interface/uniform_flow/zone_1.cfg @@ -6,7 +6,7 @@ % Author: G. Gori % % Institution: Politecnico di Milano % % Date: Oct 5th, 2016 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/sliding_interface/uniform_flow/zone_2.cfg b/TestCases/sliding_interface/uniform_flow/zone_2.cfg index d4b7417f236..d0768c5a525 100644 --- a/TestCases/sliding_interface/uniform_flow/zone_2.cfg +++ b/TestCases/sliding_interface/uniform_flow/zone_2.cfg @@ -6,7 +6,7 @@ % Author: G. Gori % % Institution: Politecnico di Milano % % Date: Oct 5th, 2016 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/solid_heat_conduction/periodic_pins/configSolid.cfg b/TestCases/solid_heat_conduction/periodic_pins/configSolid.cfg index f96249130fe..22b15c3d822 100644 --- a/TestCases/solid_heat_conduction/periodic_pins/configSolid.cfg +++ b/TestCases/solid_heat_conduction/periodic_pins/configSolid.cfg @@ -5,7 +5,7 @@ % Author: T. Kattmann % % Institution: Bosch Thermotechniek B.V. % % Date: 2021.09.27 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % diff --git a/TestCases/species_transport/multizone/configMaster.cfg b/TestCases/species_transport/multizone/configMaster.cfg index 6a7c2ba8b2b..657c5fb5bf4 100644 --- a/TestCases/species_transport/multizone/configMaster.cfg +++ b/TestCases/species_transport/multizone/configMaster.cfg @@ -5,7 +5,7 @@ % Author: N. Beishuizen % % Institution: Technische Universiteit Eindhoven % % Date: November 1, 2022 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % diff --git a/TestCases/species_transport/passive_transport_validation/passive_transport.cfg b/TestCases/species_transport/passive_transport_validation/passive_transport.cfg index fa8becb14b7..8da477701ca 100644 --- a/TestCases/species_transport/passive_transport_validation/passive_transport.cfg +++ b/TestCases/species_transport/passive_transport_validation/passive_transport.cfg @@ -5,7 +5,7 @@ % Author: T. Kattmann % % Institution: Bosch Thermotechniek B.V % % Date: 2021.10.02 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/species_transport/venturi_primitive_3species/species2_primitiveVenturi.cfg b/TestCases/species_transport/venturi_primitive_3species/species2_primitiveVenturi.cfg index 1b71c6a547c..647145dda75 100644 --- a/TestCases/species_transport/venturi_primitive_3species/species2_primitiveVenturi.cfg +++ b/TestCases/species_transport/venturi_primitive_3species/species2_primitiveVenturi.cfg @@ -5,7 +5,7 @@ % Author: T. Kattmann % % Institution: Bosch Thermotechniek B.V. % % Date: 2021/10/14 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/species_transport/venturi_primitive_3species/species2_primitiveVenturi_boundedscalar.cfg b/TestCases/species_transport/venturi_primitive_3species/species2_primitiveVenturi_boundedscalar.cfg index 203761d77b7..04098f3ef0f 100644 --- a/TestCases/species_transport/venturi_primitive_3species/species2_primitiveVenturi_boundedscalar.cfg +++ b/TestCases/species_transport/venturi_primitive_3species/species2_primitiveVenturi_boundedscalar.cfg @@ -5,7 +5,7 @@ % Author: T. Kattmann % % Institution: Bosch Thermotechniek B.V. % % Date: 2021/10/14 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/species_transport/venturi_primitive_3species/species2_primitiveVenturi_mixingmodel.cfg b/TestCases/species_transport/venturi_primitive_3species/species2_primitiveVenturi_mixingmodel.cfg index 92d226acb9a..281bcaf005d 100644 --- a/TestCases/species_transport/venturi_primitive_3species/species2_primitiveVenturi_mixingmodel.cfg +++ b/TestCases/species_transport/venturi_primitive_3species/species2_primitiveVenturi_mixingmodel.cfg @@ -7,7 +7,7 @@ % Author: Cristopher Morales Ubal % % Institution: Eindhoven University of Technology % % Date: 2022/06/15 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/species_transport/venturi_primitive_3species/species2_primitiveVenturi_mixingmodel_TURBULENT_MARKERS.cfg b/TestCases/species_transport/venturi_primitive_3species/species2_primitiveVenturi_mixingmodel_TURBULENT_MARKERS.cfg index 370cba307fd..1928352eab8 100644 --- a/TestCases/species_transport/venturi_primitive_3species/species2_primitiveVenturi_mixingmodel_TURBULENT_MARKERS.cfg +++ b/TestCases/species_transport/venturi_primitive_3species/species2_primitiveVenturi_mixingmodel_TURBULENT_MARKERS.cfg @@ -8,7 +8,7 @@ % Author: Cristopher Morales Ubal % % Institution: Eindhoven University of Technology % % Date: 2022/12/05 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/species_transport/venturi_primitive_3species/species2_primitiveVenturi_mixingmodel_boundedscalar.cfg b/TestCases/species_transport/venturi_primitive_3species/species2_primitiveVenturi_mixingmodel_boundedscalar.cfg index 7ecc9f86d17..6ef8fc5c6cd 100644 --- a/TestCases/species_transport/venturi_primitive_3species/species2_primitiveVenturi_mixingmodel_boundedscalar.cfg +++ b/TestCases/species_transport/venturi_primitive_3species/species2_primitiveVenturi_mixingmodel_boundedscalar.cfg @@ -7,7 +7,7 @@ % Author: Cristopher Morales Ubal % % Institution: Eindhoven University of Technology % % Date: 2022/06/15 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/species_transport/venturi_primitive_3species/species2_primitiveVenturi_mixingmodel_heatcapacity_H2.cfg b/TestCases/species_transport/venturi_primitive_3species/species2_primitiveVenturi_mixingmodel_heatcapacity_H2.cfg index d9d8a07ed19..239ae7647de 100644 --- a/TestCases/species_transport/venturi_primitive_3species/species2_primitiveVenturi_mixingmodel_heatcapacity_H2.cfg +++ b/TestCases/species_transport/venturi_primitive_3species/species2_primitiveVenturi_mixingmodel_heatcapacity_H2.cfg @@ -8,7 +8,7 @@ % Author: Cristopher Morales Ubal % % Institution: Eindhoven University of Technology % % Date: 2022/09/12 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/species_transport/venturi_primitive_3species/species2_primitiveVenturi_mixingmodel_heatcapacity_H2_ND.cfg b/TestCases/species_transport/venturi_primitive_3species/species2_primitiveVenturi_mixingmodel_heatcapacity_H2_ND.cfg index d8c4b002f53..1ba87a48301 100644 --- a/TestCases/species_transport/venturi_primitive_3species/species2_primitiveVenturi_mixingmodel_heatcapacity_H2_ND.cfg +++ b/TestCases/species_transport/venturi_primitive_3species/species2_primitiveVenturi_mixingmodel_heatcapacity_H2_ND.cfg @@ -9,7 +9,7 @@ % Author: Cristopher Morales Ubal % % Institution: Eindhoven University of Technology % % Date: 2022/10/12 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/species_transport/venturi_primitive_3species/species2_primitiveVenturi_mixingmodel_viscosity.cfg b/TestCases/species_transport/venturi_primitive_3species/species2_primitiveVenturi_mixingmodel_viscosity.cfg index 22fc0fcb07a..3fbbe934937 100644 --- a/TestCases/species_transport/venturi_primitive_3species/species2_primitiveVenturi_mixingmodel_viscosity.cfg +++ b/TestCases/species_transport/venturi_primitive_3species/species2_primitiveVenturi_mixingmodel_viscosity.cfg @@ -8,7 +8,7 @@ % Author: Cristopher Morales Ubal % % Institution: Eindhoven University of Technology % % Date: 2022/06/27 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/species_transport/venturi_primitive_3species/species3_primitiveVenturi_inletFile.cfg b/TestCases/species_transport/venturi_primitive_3species/species3_primitiveVenturi_inletFile.cfg index 17488e3af0e..710636b587a 100644 --- a/TestCases/species_transport/venturi_primitive_3species/species3_primitiveVenturi_inletFile.cfg +++ b/TestCases/species_transport/venturi_primitive_3species/species3_primitiveVenturi_inletFile.cfg @@ -6,7 +6,7 @@ % Author: T. Kattmann % % Institution: Bosch Thermotechniek B.V. % % Date: 2021/10/14 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/transition/E387_Airfoil/transitional_BC_model_ConfigFile.cfg b/TestCases/transition/E387_Airfoil/transitional_BC_model_ConfigFile.cfg index 7127bdc0915..9c58720551f 100644 --- a/TestCases/transition/E387_Airfoil/transitional_BC_model_ConfigFile.cfg +++ b/TestCases/transition/E387_Airfoil/transitional_BC_model_ConfigFile.cfg @@ -6,7 +6,7 @@ % Institution: TOBB University of Economics and Technology % % TAI-TUSAS Turkish Aerospace Industries % % Date: Oct 10th, 2016 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/transition/Schubauer_Klebanoff/transitional_BC_model_ConfigFile.cfg b/TestCases/transition/Schubauer_Klebanoff/transitional_BC_model_ConfigFile.cfg index 3ce91fc9f73..205cd0ada11 100644 --- a/TestCases/transition/Schubauer_Klebanoff/transitional_BC_model_ConfigFile.cfg +++ b/TestCases/transition/Schubauer_Klebanoff/transitional_BC_model_ConfigFile.cfg @@ -6,7 +6,7 @@ % Institution: TOBB University of Economics and Technology % % TAI-TUSAS Turkish Aerospace Industries % % Date: Oct 10th, 2016 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/transition/T3A_FlatPlate/transitional_BC_model_ConfigFile.cfg b/TestCases/transition/T3A_FlatPlate/transitional_BC_model_ConfigFile.cfg index f3ae1289e26..6cf5496c161 100644 --- a/TestCases/transition/T3A_FlatPlate/transitional_BC_model_ConfigFile.cfg +++ b/TestCases/transition/T3A_FlatPlate/transitional_BC_model_ConfigFile.cfg @@ -6,7 +6,7 @@ % Institution: TOBB University of Economics and Technology % % TAI-TUSAS Turkish Aerospace Industries % % Date: Oct 10th, 2016 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/turbomachinery/APU_turbocharger/Jones_restart.cfg b/TestCases/turbomachinery/APU_turbocharger/Jones_restart.cfg index c1a9dec3889..f8e68d0a1e5 100755 --- a/TestCases/turbomachinery/APU_turbocharger/Jones_restart.cfg +++ b/TestCases/turbomachinery/APU_turbocharger/Jones_restart.cfg @@ -5,7 +5,7 @@ % Author: S. Vitale % % Institution: Delft University of Technology % % Date: Jun 28th, 2017 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % @@ -67,6 +67,7 @@ MARKER_PERIODIC= (PER1, PER2, 0.0, 0.0, 0.0, 0.0, 0.0, 18.947368421, 0.0, 0.0, 0 % MARKER_TURBOMACHINERY= (INFLOW, OUTMIX, INMIX, OUTFLOW) MARKER_ANALYZE= (OUTFLOW) +MARKER_ZONE_INTERFACE= (OUTMIX, INMIX) MARKER_MIXINGPLANE_INTERFACE= (OUTMIX, INMIX) MARKER_GILES= (INFLOW, TOTAL_CONDITIONS_PT, 413.6E+03, 477.6, 1.0, 0.0, 0.0, 1.0, 0.0, OUTMIX, MIXING_OUT, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3, 0.0, INMIX, MIXING_IN, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3, 0.0, OUTFLOW, STATIC_PRESSURE_1D, 67.46E+03, 0.0, 0.0, 0.0, 0.0 , 1.0, 0.0) GILES_EXTRA_RELAXFACTOR= (0.05, 0.05) @@ -75,6 +76,7 @@ SPATIAL_FOURIER= NO %---------------------------- TURBOMACHINERY SIMULATION -----------------------------% % TURBOMACHINERY_KIND= CENTRIPETAL CENTRIPETAL_AXIAL +TURBO_PERF_KIND = TURBINE TURBINE MIXINGPLANE_INTERFACE_KIND= LINEAR_INTERPOLATION TURBULENT_MIXINGPLANE= YES RAMP_OUTLET_PRESSURE= NO @@ -137,7 +139,7 @@ CONV_CAUCHY_EPS= 1E-6 % % ------------------------- INPUT/OUTPUT INFORMATION --------------------------% % -SCREEN_OUTPUT= OUTER_ITER, AVG_BGS_RES[0], AVG_BGS_RES[1], RMS_DENSITY[0], RMS_ENERGY[0], RMS_DENSITY[1], RMS_ENERGY[1], SURFACE_TOTAL_PRESSURE[1] +SCREEN_OUTPUT= OUTER_ITER, AVG_BGS_RES[0], AVG_BGS_RES[1], RMS_DENSITY[0], RMS_ENERGY[0], RMS_DENSITY[1], RMS_ENERGY[1], SURFACE_TOTAL_PRESSURE[1], MassFlowOut_2[1], TotalStaticEfficiency[1] MESH_FILENAME= mesh_jones_turbine.su2 MESH_FORMAT= SU2 MESH_OUT_FILENAME= meshout.su2 diff --git a/TestCases/turbomachinery/axial_stage_2D/Axial_stage2D.cfg b/TestCases/turbomachinery/axial_stage_2D/Axial_stage2D.cfg index 583ec2849eb..a7ded02ea2e 100755 --- a/TestCases/turbomachinery/axial_stage_2D/Axial_stage2D.cfg +++ b/TestCases/turbomachinery/axial_stage_2D/Axial_stage2D.cfg @@ -5,7 +5,7 @@ % Author: S. Vitale % % Institution: Delft University of Technology % % Date: Feb 28th, 2017 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % @@ -69,6 +69,7 @@ MARKER_PERIODIC= ( periodic1, periodic2, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.04 MARKER_TURBOMACHINERY= (inflow, outmix, inmix, outflow) MARKER_ANALYZE= (outflow) % +MARKER_ZONE_INTERFACE= (outmix, inmix) % Mixing-plane interface markers must be specified to activate the transfer of information between zones MARKER_MIXINGPLANE_INTERFACE= (outmix, inmix) % @@ -78,6 +79,7 @@ SPATIAL_FOURIER= NO %---------------------------- TURBOMACHINERY SIMULATION -----------------------------% % TURBOMACHINERY_KIND= AXIAL AXIAL +TURBO_PERF_KIND = TURBINE TURBINE TURBULENT_MIXINGPLANE= YES RAMP_OUTLET_PRESSURE= NO RAMP_OUTLET_PRESSURE_COEFF= (140000.0, 10.0, 2000) @@ -139,7 +141,7 @@ CONV_CAUCHY_EPS= 1E-6 % % ------------------------- INPUT/OUTPUT INFORMATION --------------------------% % -SCREEN_OUTPUT= OUTER_ITER, AVG_BGS_RES[0], AVG_BGS_RES[1], RMS_DENSITY[0], RMS_ENERGY[0], RMS_DENSITY[1], RMS_ENERGY[1], SURFACE_TOTAL_PRESSURE[1] +SCREEN_OUTPUT= OUTER_ITER, AVG_BGS_RES[0], AVG_BGS_RES[1], RMS_DENSITY[0], RMS_ENERGY[0], RMS_DENSITY[1], RMS_ENERGY[1], SURFACE_TOTAL_PRESSURE[1], MassFlowOut_2[1], TotalStaticEfficiency[1] MESH_FILENAME= mesh_axial_stage_2d_turb.su2 MESH_FORMAT= SU2 MESH_OUT_FILENAME= meshout.su2 diff --git a/TestCases/turbomachinery/axial_stage_2D/zone_1.cfg b/TestCases/turbomachinery/axial_stage_2D/zone_1.cfg index 7f4bdb57fbe..7ef05b4cd48 100644 --- a/TestCases/turbomachinery/axial_stage_2D/zone_1.cfg +++ b/TestCases/turbomachinery/axial_stage_2D/zone_1.cfg @@ -5,7 +5,7 @@ % Author: S. Vitale % % Institution: Delft University of Technology % % Date: Feb 28th, 2017 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/turbomachinery/axial_stage_2D/zone_2.cfg b/TestCases/turbomachinery/axial_stage_2D/zone_2.cfg index 2fe06969028..9be09518b2d 100644 --- a/TestCases/turbomachinery/axial_stage_2D/zone_2.cfg +++ b/TestCases/turbomachinery/axial_stage_2D/zone_2.cfg @@ -5,7 +5,7 @@ % Author: S. Vitale % % Institution: Delft University of Technology % % Date: Feb 28th, 2017 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/turbomachinery/centrifugal_blade/centrifugal_blade.cfg b/TestCases/turbomachinery/centrifugal_blade/centrifugal_blade.cfg index cd0716b7021..2cb88b6ff08 100755 --- a/TestCases/turbomachinery/centrifugal_blade/centrifugal_blade.cfg +++ b/TestCases/turbomachinery/centrifugal_blade/centrifugal_blade.cfg @@ -5,7 +5,7 @@ % Author:S. Vitale % % Institution: Delft University of Technology % % Date: Oct 26th, 2015 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -68,6 +68,7 @@ MARKER_PLOTTING= ( wall1, wall2 ) % % Marker(s) between turbomachinery performance are evaluated. Use BLADE for single blade, STAGE for stage and TURBINE for a multi-stage. MARKER_TURBO_PERFORMANCE= (inflow, outflow, BLADE) +TURBO_PERF_KIND = TURBINE % % ----------------------- DYNAMIC MESH DEFINITION -----------------------------% % diff --git a/TestCases/turbomachinery/centrifugal_stage/centrifugal_stage.cfg b/TestCases/turbomachinery/centrifugal_stage/centrifugal_stage.cfg index d3571d77a9b..f3a52180c86 100755 --- a/TestCases/turbomachinery/centrifugal_stage/centrifugal_stage.cfg +++ b/TestCases/turbomachinery/centrifugal_stage/centrifugal_stage.cfg @@ -5,7 +5,7 @@ % Author: S. Vitale % % Institution: Delft University of Technology % % Date: Oct 28th, 2015 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % @@ -68,6 +68,7 @@ MARKER_PERIODIC= (periodic1, periodic2, 0.0, 0.0, 0.0, 0.0, 0.0, 10.29, 0.0, 0.0 MARKER_PLOTTING= ( wall1, wall2 ) MARKER_MONITORING= ( wall1, wall2 ) MARKER_TURBO_PERFORMANCE= (inflow, outflow, STAGE, inflow, outmix, BLADE, inmix, outflow, BLADE) +TURBO_PERF_KIND = TURBINE TURBINE % % ----------------------- DYNAMIC MESH DEFINITION -----------------------------% % diff --git a/TestCases/turbomachinery/transonic_stator_2D/transonic_stator_restart.cfg b/TestCases/turbomachinery/transonic_stator_2D/transonic_stator_restart.cfg index 4d2097fc80f..69ca34a7a23 100644 --- a/TestCases/turbomachinery/transonic_stator_2D/transonic_stator_restart.cfg +++ b/TestCases/turbomachinery/transonic_stator_2D/transonic_stator_restart.cfg @@ -5,7 +5,7 @@ % Author: S. Vitale % % Institution: Delft University of Technology % % Date: 2017.03.01 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % @@ -75,6 +75,7 @@ SPATIAL_FOURIER= YES %---------------------------- TURBOMACHINERY SIMULATION -----------------------------% % TURBOMACHINERY_KIND = AXIAL +TURBO_PERF_KIND = TURBINE RAMP_OUTLET_PRESSURE= NO RAMP_OUTLET_PRESSURE_COEFF= (700000.0, 10.0, 500) AVERAGE_PROCESS_KIND= MIXEDOUT @@ -130,7 +131,7 @@ CFL_REDUCTION_TURB= 1.0 % % --------------------------- CONVERGENCE PARAMETERS --------------------------% % -ITER= 10000 +ITER= 21 CONV_RESIDUAL_MINVAL= -12 CONV_STARTITER= 10 CONV_CAUCHY_ELEMS= 100 @@ -138,7 +139,7 @@ CONV_CAUCHY_EPS= 1E-6 % % ------------------------- INPUT/OUTPUT INFORMATION --------------------------% % -SCREEN_OUTPUT= INNER_ITER, RMS_RES, SURFACE_PRESSURE_DROP +SCREEN_OUTPUT= INNER_ITER, RMS_RES, SURFACE_PRESSURE_DROP, MassFlowOut_1, TotalStaticEfficiency MESH_FILENAME= mesh_stator_turb.su2 MESH_FORMAT= SU2 MESH_OUT_FILENAME= su2mesh_per.su2 diff --git a/TestCases/tutorials.py b/TestCases/tutorials.py index 71c4319b65c..849a4f85c26 100644 --- a/TestCases/tutorials.py +++ b/TestCases/tutorials.py @@ -3,14 +3,14 @@ ## \file parallel_regression.py # \brief Python script for automated regression testing of SU2 examples # \author A. Aranake, A. Campos, T. Economon, T. Lukaczyk, S. Padron -# \version 8.0.0 "Harrier" +# \version 8.0.1 "Harrier" # # SU2 Project Website: https://su2code.github.io # # The SU2 Project is maintained by the SU2 Foundation # (http://su2foundation.org) # -# Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) +# Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) # # SU2 is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public diff --git a/TestCases/unsteady/pitching_naca64a010_euler/pitching_NACA64A010.cfg b/TestCases/unsteady/pitching_naca64a010_euler/pitching_NACA64A010.cfg index 0585043774b..d18aa45c5bd 100644 --- a/TestCases/unsteady/pitching_naca64a010_euler/pitching_NACA64A010.cfg +++ b/TestCases/unsteady/pitching_naca64a010_euler/pitching_NACA64A010.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 2011.11.02 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/unsteady/pitching_naca64a010_rans/turb_NACA64A010.cfg b/TestCases/unsteady/pitching_naca64a010_rans/turb_NACA64A010.cfg index 83b3e0c46a6..7e532c974fc 100644 --- a/TestCases/unsteady/pitching_naca64a010_rans/turb_NACA64A010.cfg +++ b/TestCases/unsteady/pitching_naca64a010_rans/turb_NACA64A010.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 2011.11.02 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/unsteady/plunging_naca0012/plunging_NACA0012.cfg b/TestCases/unsteady/plunging_naca0012/plunging_NACA0012.cfg index b1136ad91a0..45b7603f1a9 100644 --- a/TestCases/unsteady/plunging_naca0012/plunging_NACA0012.cfg +++ b/TestCases/unsteady/plunging_naca0012/plunging_NACA0012.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: Jun 12, 2014 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/unsteady/square_cylinder/turb_square.cfg b/TestCases/unsteady/square_cylinder/turb_square.cfg index 7b94e4227cc..b7dff380652 100644 --- a/TestCases/unsteady/square_cylinder/turb_square.cfg +++ b/TestCases/unsteady/square_cylinder/turb_square.cfg @@ -5,7 +5,7 @@ % Author: Thomas D. Economon % % Institution: Stanford University % % Date: 2013.02.25 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/user_defined_functions/lam_flatplate.cfg b/TestCases/user_defined_functions/lam_flatplate.cfg index 3f96723da55..35cdc97b9c9 100644 --- a/TestCases/user_defined_functions/lam_flatplate.cfg +++ b/TestCases/user_defined_functions/lam_flatplate.cfg @@ -4,7 +4,7 @@ % Case description: Test custom outputs and objective function. % % Author: P. Gomes % % Date: 5th Jan 2022 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % diff --git a/TestCases/vandv.py b/TestCases/vandv.py index adcf295916f..16ea373e8c1 100644 --- a/TestCases/vandv.py +++ b/TestCases/vandv.py @@ -6,14 +6,14 @@ # - Use the SU2 --dry_run mode for configs of large tests. # - Restart from converged results for medium problems. # - Run small cases (<20s) to convergence. -# \version 8.0.0 "Harrier" +# \version 8.0.1 "Harrier" # # SU2 Project Website: https://su2code.github.io # # The SU2 Project is maintained by the SU2 Foundation # (http://su2foundation.org) # -# Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) +# Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) # # SU2 is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public diff --git a/TestCases/vandv/species_transport/sandia_jet/validation.cfg b/TestCases/vandv/species_transport/sandia_jet/validation.cfg index 6ca77c4ca66..e1a109974e4 100644 --- a/TestCases/vandv/species_transport/sandia_jet/validation.cfg +++ b/TestCases/vandv/species_transport/sandia_jet/validation.cfg @@ -5,7 +5,7 @@ % Author: S.J.H. Bosmans % % Institution: TU Eindhoven (TU/e) % % Date: 2023/05/04 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/TestCases/wallfunctions/flatplate/compressible_SA/turb_SA_flatplate.cfg b/TestCases/wallfunctions/flatplate/compressible_SA/turb_SA_flatplate.cfg index 4e437f579a1..cdd6622fa65 100644 --- a/TestCases/wallfunctions/flatplate/compressible_SA/turb_SA_flatplate.cfg +++ b/TestCases/wallfunctions/flatplate/compressible_SA/turb_SA_flatplate.cfg @@ -6,7 +6,7 @@ % Author: Nijso Beishuizen, T. Kattmann % % Institution: Bosch Thermotechnology % % Date: 2021.09.01 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % diff --git a/TestCases/wallfunctions/flatplate/compressible_SST/turb_SST_flatplate.cfg b/TestCases/wallfunctions/flatplate/compressible_SST/turb_SST_flatplate.cfg index 7565572d097..44e300ddcda 100644 --- a/TestCases/wallfunctions/flatplate/compressible_SST/turb_SST_flatplate.cfg +++ b/TestCases/wallfunctions/flatplate/compressible_SST/turb_SST_flatplate.cfg @@ -6,7 +6,7 @@ % Author: Nijso Beishuizen, T. Kattmann % % Institution: Bosch Thermotechnology % % Date: 2021.09.01 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % diff --git a/TestCases/wallfunctions/flatplate/incompressible_SA/turb_SA_flatplate.cfg b/TestCases/wallfunctions/flatplate/incompressible_SA/turb_SA_flatplate.cfg index 6a63d1febd2..3eb3e5d4537 100644 --- a/TestCases/wallfunctions/flatplate/incompressible_SA/turb_SA_flatplate.cfg +++ b/TestCases/wallfunctions/flatplate/incompressible_SA/turb_SA_flatplate.cfg @@ -6,7 +6,7 @@ % Author: Nijso Beishuizen, T. Kattmann % % Institution: Bosch Thermotechnology % % Date: 2021.09.01 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % diff --git a/TestCases/wallfunctions/flatplate/incompressible_SST/turb_SST_flatplate.cfg b/TestCases/wallfunctions/flatplate/incompressible_SST/turb_SST_flatplate.cfg index 0492f2222a6..10fa3988e72 100644 --- a/TestCases/wallfunctions/flatplate/incompressible_SST/turb_SST_flatplate.cfg +++ b/TestCases/wallfunctions/flatplate/incompressible_SST/turb_SST_flatplate.cfg @@ -6,7 +6,7 @@ % Author: Nijso Beishuizen, T. Kattmann % % Institution: Bosch Thermotechnology % % Date: 2021.09.01 % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % diff --git a/UnitTests/Common/containers/CLookupTable_tests.cpp b/UnitTests/Common/containers/CLookupTable_tests.cpp index 5e63f60b149..487ecdc481b 100644 --- a/UnitTests/Common/containers/CLookupTable_tests.cpp +++ b/UnitTests/Common/containers/CLookupTable_tests.cpp @@ -2,14 +2,14 @@ * \file CLookupTable_tests.cpp * \brief Unit tests for the lookup table. * \author N. Beishuizen - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/UnitTests/Common/geometry/CGeometry_test.cpp b/UnitTests/Common/geometry/CGeometry_test.cpp index 6bd2dd583df..bed8423a534 100644 --- a/UnitTests/Common/geometry/CGeometry_test.cpp +++ b/UnitTests/Common/geometry/CGeometry_test.cpp @@ -2,14 +2,14 @@ * \file CGeometry_tests.cpp * \brief Unit tests for CGeometry. * \author T. Albring - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/UnitTests/Common/geometry/dual_grid/CDualGrid_tests.cpp b/UnitTests/Common/geometry/dual_grid/CDualGrid_tests.cpp index 0f6dbc38ae8..5817c87712d 100644 --- a/UnitTests/Common/geometry/dual_grid/CDualGrid_tests.cpp +++ b/UnitTests/Common/geometry/dual_grid/CDualGrid_tests.cpp @@ -2,14 +2,14 @@ * \file CDualGrid_tests.cpp * \brief Unit tests for the dual grid classes * \author T. Albring - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/UnitTests/Common/geometry/primal_grid/CPrimalGrid_tests.cpp b/UnitTests/Common/geometry/primal_grid/CPrimalGrid_tests.cpp index 0c6596b067a..59f03384969 100644 --- a/UnitTests/Common/geometry/primal_grid/CPrimalGrid_tests.cpp +++ b/UnitTests/Common/geometry/primal_grid/CPrimalGrid_tests.cpp @@ -2,14 +2,14 @@ * \file CPrimalGrid_tests.cpp * \brief Unit tests for the primal grid classes * \author T. Albring - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/UnitTests/Common/simple_ad_test.cpp b/UnitTests/Common/simple_ad_test.cpp index 23dbed55476..82fce9a2783 100644 --- a/UnitTests/Common/simple_ad_test.cpp +++ b/UnitTests/Common/simple_ad_test.cpp @@ -4,14 +4,14 @@ * basic functionality, this also serves as a regression test * to make sure that AD works within unit testing. * \author C. Pederson - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/UnitTests/Common/simple_directdiff_test.cpp b/UnitTests/Common/simple_directdiff_test.cpp index f6c7411e97f..2ae8f1540fe 100644 --- a/UnitTests/Common/simple_directdiff_test.cpp +++ b/UnitTests/Common/simple_directdiff_test.cpp @@ -4,14 +4,14 @@ * basic functionality, this also serves as a regression test * to make sure that DD works within unit testing. * \author C. Pederson - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/UnitTests/Common/toolboxes/C1DInterpolation_tests.cpp b/UnitTests/Common/toolboxes/C1DInterpolation_tests.cpp index b229bd939c8..ba3d64c912e 100644 --- a/UnitTests/Common/toolboxes/C1DInterpolation_tests.cpp +++ b/UnitTests/Common/toolboxes/C1DInterpolation_tests.cpp @@ -2,14 +2,14 @@ * \file C1DInterpolation_tests.cpp * \brief Unit tests for splines and what not. * \author P. Gomes - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/UnitTests/Common/toolboxes/CQuasiNewtonInvLeastSquares_tests.cpp b/UnitTests/Common/toolboxes/CQuasiNewtonInvLeastSquares_tests.cpp index a3e62a932ab..13ca0b58773 100644 --- a/UnitTests/Common/toolboxes/CQuasiNewtonInvLeastSquares_tests.cpp +++ b/UnitTests/Common/toolboxes/CQuasiNewtonInvLeastSquares_tests.cpp @@ -3,14 +3,14 @@ * \brief Unit tests for the CQuasiNewtonInvLeastSquares class. * Which should find the root of a n-d linear problem in n+1 iterations. * \author P. Gomes - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/UnitTests/Common/toolboxes/multilayer_perceptron/CLookUp_ANN_tests.cpp b/UnitTests/Common/toolboxes/multilayer_perceptron/CLookUp_ANN_tests.cpp index b002fe0a472..967346935fd 100644 --- a/UnitTests/Common/toolboxes/multilayer_perceptron/CLookUp_ANN_tests.cpp +++ b/UnitTests/Common/toolboxes/multilayer_perceptron/CLookUp_ANN_tests.cpp @@ -2,14 +2,14 @@ * \file CLookUp_ANN_tests.cpp * \brief Unit tests for CLookUp_ANN and CIOMap classes. * \author E.C.Bunschoten - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/UnitTests/Common/toolboxes/ndflattener_tests.cpp b/UnitTests/Common/toolboxes/ndflattener_tests.cpp index 87d3b1f9e29..687a71e622e 100644 --- a/UnitTests/Common/toolboxes/ndflattener_tests.cpp +++ b/UnitTests/Common/toolboxes/ndflattener_tests.cpp @@ -2,14 +2,14 @@ * \file ndflattener_tests.cpp * \brief Unit tests for NdFlattener template classes. * \author M. Aehle - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/UnitTests/Common/vectorization.cpp b/UnitTests/Common/vectorization.cpp index db53702daba..5371047cda4 100644 --- a/UnitTests/Common/vectorization.cpp +++ b/UnitTests/Common/vectorization.cpp @@ -2,14 +2,14 @@ * \file vectorization.cpp * \brief Unit tests for the SIMD type and associated expression templates. * \author P. Gomes - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/UnitTests/SU2_CFD/gradients.cpp b/UnitTests/SU2_CFD/gradients.cpp index 26ac02d8a95..e0829ce1104 100644 --- a/UnitTests/SU2_CFD/gradients.cpp +++ b/UnitTests/SU2_CFD/gradients.cpp @@ -2,14 +2,14 @@ * \file gradients.cpp * \brief Unit tests for gradient calculation. * \author P. Gomes, T. Albring - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/UnitTests/SU2_CFD/numerics/CNumerics_tests.cpp b/UnitTests/SU2_CFD/numerics/CNumerics_tests.cpp index c22fc083794..fbf8dabfae3 100644 --- a/UnitTests/SU2_CFD/numerics/CNumerics_tests.cpp +++ b/UnitTests/SU2_CFD/numerics/CNumerics_tests.cpp @@ -2,14 +2,14 @@ * \file CNumerics_tests.cpp * \brief Unit tests for the numerics classes. * \author C. Pederson - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/UnitTests/SU2_CFD/windowing.cpp b/UnitTests/SU2_CFD/windowing.cpp index e0e0a03cde6..8166c785b55 100644 --- a/UnitTests/SU2_CFD/windowing.cpp +++ b/UnitTests/SU2_CFD/windowing.cpp @@ -2,14 +2,14 @@ * \file windowing.cpp * \brief Unit tests for windowed time-averaging. * \author C. Bauer - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/UnitTests/UnitQuadTestCase.hpp b/UnitTests/UnitQuadTestCase.hpp index c0eccdc9941..a63f5a7777b 100644 --- a/UnitTests/UnitQuadTestCase.hpp +++ b/UnitTests/UnitQuadTestCase.hpp @@ -2,14 +2,14 @@ * \file UnitQuadTestCase.hpp * \brief Simple unit quad test to be used in unit tests. * \author T. Albring - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/UnitTests/test_driver.cpp b/UnitTests/test_driver.cpp index d7299a3827f..12c2e7e7dd1 100644 --- a/UnitTests/test_driver.cpp +++ b/UnitTests/test_driver.cpp @@ -2,14 +2,14 @@ * \file test_driver.cpp * \brief The main entry point for unit tests (the main()). * \author C. Pederson - * \version 8.0.0 "Harrier" + * \version 8.0.1 "Harrier" * * SU2 Project Website: https://su2code.github.io * * The SU2 Project is maintained by the SU2 Foundation * (http://su2foundation.org) * - * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) + * Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) * * SU2 is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/config_template.cfg b/config_template.cfg index 811df18a014..bf3e6bae907 100644 --- a/config_template.cfg +++ b/config_template.cfg @@ -5,7 +5,7 @@ % Author: ___________________________________________________________________ % % Institution: ______________________________________________________________ % % Date: __________ % -% File Version 8.0.0 "Harrier" % +% File Version 8.0.1 "Harrier" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -29,6 +29,10 @@ SA_OPTIONS= NONE % % Transition model (NONE, LM) KIND_TRANS_MODEL= NONE +% +% Value of RMS roughness for transition model +HROUGHNESS= 1.0e-6 +% % Specify versions/correlations of the LM model (LM2015, MALAN, SULUKSNA, KRAUSE, KRAUSE_HYPER, MEDIDA, MEDIDA_BAEDER, MENTER_LANGTRY) LM_OPTIONS= NONE % @@ -50,6 +54,9 @@ MATH_PROBLEM= DIRECT % Axisymmetric simulation, only compressible flows (NO, YES) AXISYMMETRIC= NO % +% Gravity force +GRAVITY_FORCE= NO +% % Restart solution (NO, YES) RESTART_SOL= NO % @@ -146,6 +153,9 @@ WINDOW_START_ITER = 500 % Window used for reverse sweep and direct run. Options (SQUARE, HANN, HANN_SQUARE, BUMP) Square is default. WINDOW_FUNCTION = SQUARE % +% Starting direct solver iteration for the unsteady adjoint +UNST_ADJOINT_ITER= 0 +% % ------------------------------- DES Parameters ------------------------------% % % Specify Hybrid RANS/LES model (SA_DES, SA_DDES, SA_ZDES, SA_EDDES) @@ -200,6 +210,9 @@ FREESTREAM_VISCOSITY= 1.853E-5 % Free-stream turbulence intensity FREESTREAM_TURBULENCEINTENSITY= 0.05 % +% Value for freestream intermittency +FREESTREAM_INTERMITTENCY= 1.0 +% % Fix turbulence quantities to far-field values inside an upstream half-space TURB_FIXED_VALUES= NO % @@ -260,6 +273,9 @@ INC_INLET_TYPE= VELOCITY_INLET % Damping coefficient for iterative updates at pressure inlets. (0.1 by default) INC_INLET_DAMPING= 0.1 % +% Impose inlet velocity magnitude in the direction of the normal of the inlet face +INC_INLET_USENORMAL= NO +% % List of outlet types for incompressible flows. List length must % match number of outlet markers. Options: PRESSURE_OUTLET, MASS_FLOW_OUTLET INC_OUTLET_TYPE= PRESSURE_OUTLET @@ -267,6 +283,8 @@ INC_OUTLET_TYPE= PRESSURE_OUTLET % Damping coefficient for iterative updates at mass flow outlets. (0.1 by default) INC_OUTLET_DAMPING= 0.1 % +% Bulk Modulus for computing the Mach number +BULK_MODULUS= 1.42E5 % Epsilon^2 multipier in Beta calculation for incompressible preconditioner. BETA_FACTOR= 4.1 % @@ -295,8 +313,29 @@ DCL_DALPHA= 0.2 % Maximum number of iterations between AoA updates UPDATE_AOA_ITER_LIMIT= 100 % +% Number of times Alpha is updated in a fix CL problem. +UPDATE_IH= 5 +% % Number of iterations to evaluate dCL_dAlpha by using finite differences (500 by default) ITER_DCL_DALPHA= 500 +% +% Evaluate the dOF_dCL or dOF_dCMy during run time +EVAL_DOF_DCX= NO +% +% Damping factor for thrust BC (actuator disk). +NETTHRUST_DBCTHRUST= 1.0 +% +% parameter for the definition of a complex objective function +DCD_DCL_VALUE= 0.0 +% +% parameter for the definition of a complex objective function +DCMX_DCL_VALUE= 0.0 +% +% parameter for the definition of a complex objective function +DCMY_DCL_VALUE= 0.0 +% +% parameter for the definition of a complex objective function +DCMZ_DCL_VALUE= 0.0 % ---------------------- REFERENCE VALUE DEFINITION ---------------------------% % @@ -308,6 +347,12 @@ REF_ORIGIN_MOMENT_Z = 0.00 % Reference length for moment non-dimensional coefficients (m or in) REF_LENGTH= 1.0 % +% Reference velocity (incompressible only) +REF_VELOCITY= 1.0 +% +% Reference viscosity (incompressible only) +REF_VISCOSITY= 1.0 +% % Reference area for non-dimensional force coefficients (0 implies automatic % calculation) (m^2 or in^2) REF_AREA= 1.0 @@ -337,7 +382,10 @@ CRITICAL_TEMPERATURE= 131.00 % Critical Pressure (3588550.0 N/m^2 by default) CRITICAL_PRESSURE= 3588550.0 % -% Acentri factor (0.035 (air)) +% Critical Density (263.0 kg/m^3 by default) +CRITICAL_DENSITY= 263.0 +% +% Acentric factor (0.035 (air)) ACENTRIC_FACTOR= 0.035 % % Thermodynamics(operating) Pressure (101325 Pa default value, only for incompressible flow and FLUID_MIXTURE) @@ -359,7 +407,7 @@ MOLECULAR_WEIGHT= 28.96, 16.043 % Format -> Cp(T) : b0 + b1*T + b2*T^2 + b3*T^3 + b4*T^4 CP_POLYCOEFFS= (0.0, 0.0, 0.0, 0.0, 0.0) % -% Nonequilibrium fluid options +% --- Nonequilibrium fluid options % % Gas model - mixture GAS_MODEL= AIR-5 @@ -387,11 +435,17 @@ FILENAMES_INTERPOLATOR= (MLP_1.mlp, MLP_2.mlp, MLP_3.mlp) % Relaxation factor for the Newton solvers in the data-driven fluid model DATADRIVEN_NEWTON_RELAXATION= 0.8 +% +% Specify if there is ionization +IONIZATION= NO +% +% Specify if there is VT transfer residual limiting +VT_RESIDUAL_LIMITING= NO % % NEMO Inlet Options INLET_TEMPERATURE_VE = 288.15 INLET_GAS_COMPOSITION = (0.77, 0.23, 0.0, 0.0, 0.0) -% + % --------------------------- VISCOSITY MODEL ---------------------------------% % % Viscosity model (SUTHERLAND, CONSTANT_VISCOSITY, POLYNOMIAL_VISCOSITY, FLAMELET). @@ -435,7 +489,7 @@ TURBULENT_CONDUCTIVITY_MODEL= CONSTANT_PRANDTL_TURB % % Turbulent Prandtl number (0.9 (air) by default) PRANDTL_TURB= 0.90 -% + % ----------------------- DYNAMIC MESH DEFINITION -----------------------------% % % Type of dynamic mesh (NONE, RIGID_MOTION, ROTATING_FRAME, @@ -510,7 +564,7 @@ SURFACE_PLUNGING_AMPL= 0.0 0.0 0.0 % % Move Motion Origin for marker moving (1 or 0) MOVE_MOTION_ORIGIN = 0 -% + % ------------------------- BUFFET SENSOR DEFINITION --------------------------% % % Compute the Kenway-Martins separation sensor for buffet-onset detection @@ -606,6 +660,9 @@ DRAG_IN_SONICBOOM= 0.0 % -------------------------- ENGINE SIMULATION --------------------------------% % +% Evaluate a problem with engines +ENGINE= NO +% % Highlite area to compute MFR (1 in2 by default) HIGHLITE_AREA= 1.0 % @@ -627,6 +684,13 @@ ENGINE_NU_FACTOR= 3.0 % Actuator disk jump definition using ratio or difference (DIFFERENCE, RATIO) ACTDISK_JUMP= DIFFERENCE % +% secondary flow value for actuator disk +ACTDISK_SECONDARY_FLOW= 0.0 +% +% Actuator disk double surface +ACTDISK_DOUBLE_SURFACE= NO +% +% % Number of times BC Thrust is updated in a fix Net Thrust problem (5 by default) UPDATE_BCTHRUST= 100 % @@ -641,6 +705,9 @@ SUBSONIC_ENGINE_CYL= ( 0.0, 0.0, 0.0, 1.0, 0.0 , 0.0, 1.0 ) % % Flow variables that define the subsonic region (Mach, Alpha, Beta, Pressure, Temperature) SUBSONIC_ENGINE_VALUES= ( 0.4, 0.0, 0.0, 2116.216, 518.67 ) +% +% Definition of the distortion rack (radial number of proves / circumferential density (degree) +DISTORTION_RACK= (0.0, 0.0) % ------------------------- TURBOMACHINERY SIMULATION -------------------------% % @@ -648,6 +715,10 @@ SUBSONIC_ENGINE_VALUES= ( 0.4, 0.0, 0.0, 2116.216, 518.67 ) % CENTRIPETAL_AXIAL, AXIAL_CENTRIFUGAL) TURBOMACHINERY_KIND= CENTRIPETAL CENTRIPETAL_AXIAL % +% Specify the machine architecture for performance analysis (TURBINE, COMPRESSOR, PROPELLOR) +% +TURBO_PERF_KIND = TURBINE TURBINE +% % Specify kind of interpolation for the mixing-plane (LINEAR_INTERPOLATION, % NEAREST_SPAN, MATCHING) MIXINGPLANE_INTERFACE_KIND= LINEAR_INTERPOLATION @@ -685,6 +756,24 @@ MIXEDOUT_COEFF= (1.0, 1.0E-05, 15) % Limit of Mach number below which the mixedout algorithm is substituted % with a AREA average algorithm to avoid numerical issues AVERAGE_MACH_LIMIT= 0.05 +% +% Integer number of periodic time instances for Harmonic Balance +TIME_INSTANCES= 1 +% +% Time period for Harmonic Balance wihtout moving meshes +HB_PERIOD= -1 +% +% Turn on/off harmonic balance preconditioning +HB_PRECONDITION= NO +% +% Omega_HB = 2*PI*frequency - frequencies for Harmonic Balance method +OMEGA_HB= (0,1.0,-1.0) +% +% Determines if the single-zone driver is used. (deprecated) +SINGLEZONE_DRIVER= NO +% +% Determines if the special output is written out +SPECIAL_OUTPUT= NO % ------------------- RADIATIVE HEAT TRANSFER SIMULATION ----------------------% % @@ -713,7 +802,7 @@ HEAT_SOURCE_ROTATION_Z = 0.0 HEAT_SOURCE_CENTER = ( 0.0, 0.0, 0.0 ) % % Vector of heat source radii (Heat_Source_Radius_A, Heat_Source_Radius_B, Heat_Source_Radius_C) -HEAT_SOURCE_RADIUS = ( 1.0, 1.0, 1.0 ) +HEAT_SOURCE_AXES = ( 1.0, 1.0, 1.0 ) % % Wall emissivity of the marker for radiation purposes MARKER_EMISSIVITY = ( MARKER_NAME, 1.0 ) @@ -729,15 +818,23 @@ TIME_DISCRE_RADIATION = EULER_IMPLICIT % Specify scalar transport model (NONE, SPECIES_TRANSPORT, FLAMELET) KIND_SCALAR_MODEL= NONE % -% Mass diffusivity model (CONSTANT_DIFFUSIVITY, FLAMELET) +% mixing model for species transport (DAVIDSON, WILKE) +MIXING_VISCOSITY_MODEL= DAVIDSON +% +% Mass diffusivity model (CONSTANT_DIFFUSIVITY, CONSTANT_SCHMIDT, UNITY_LEWIS, CONSTANT_LEWIS, FLAMELET) DIFFUSIVITY_MODEL= CONSTANT_DIFFUSIVITY % % Mass diffusivity if DIFFUSIVITY_MODEL= CONSTANT_DIFFUSIVITY is chosen. D_air ~= 0.001 DIFFUSIVITY_CONSTANT= 0.001 % +% Laminar Schmidt number for mass diffusion (for constant schmidt number model) +SCHMIDT_NUMBER_LAMINAR= 1.0 % Turbulent Schmidt number of mass diffusion SCHMIDT_NUMBER_TURBULENT= 0.7 % +% list of constant Lewis numbers for all species for +CONSTANT_LEWIS_NUMBER= (1,1,1) +% % Inlet Species boundary marker(s) with the following format: % (inlet_marker, Species1, Species2, ..., SpeciesN-1, inlet_marker2, Species1, Species2, ...) % For N species, N-1 transport equations are solved, the last one Y_N is solved algebraically as 1-(sum of the species 1 to (N-1)) @@ -760,16 +857,16 @@ TIME_DISCRE_SPECIES= EULER_IMPLICIT CFL_REDUCTION_SPECIES= 1.0 % % Initial values for scalar transport -SPECIES_INIT= 1.0, ... +SPECIES_INIT= 1.0 % % Activate clipping for scalar transport equations SPECIES_CLIPPING= NO % % Maximum values for scalar clipping -SPECIES_CLIPPING_MAX= 1.0, ... +SPECIES_CLIPPING_MAX= 1.0 % % Minimum values for scalar clipping -SPECIES_CLIPPING_MIN= 0.0, ... +SPECIES_CLIPPING_MIN= 0.0 % --------------------- FLAMELET MODEL -----------------------------% % @@ -859,7 +956,7 @@ STREAMWISE_PERIODIC_TEMPERATURE= NO % Upon convergence, the area averaged inlet temperature will be INC_TEMPERATURE_INIT. % Defaults to 0.0. STREAMWISE_PERIODIC_OUTLET_HEAT= 0.0 -% + % -------------------- BOUNDARY CONDITION DEFINITION --------------------------% % % Euler wall boundary marker(s) (NONE = no marker) @@ -902,6 +999,20 @@ SPECIFIED_INLET_PROFILE= NO % File specifying inlet profile INLET_FILENAME= inlet.dat % +% If a file is provided to specify the inlet profile, +% this tolerance will be used to match the coordinates in the input file to +% the points on the grid. +% INLET_MATCHING_TOLERANCE= 1e-6 +% +% Type of spanwise interpolation to use for the inlet face (LINEAR_1D, AKIMA_1D, CUBIC_1D). +INLET_INTERPOLATION_FUNCTION= NONE +% +% Type of radial spanwise interpolation type for the inlet face (VR_VTHETA or ALPHA_PHI). +INLET_INTERPOLATION_DATA_TYPE= VRVTHETA +% +% Write interpolated inlet vertex data to the file Interpolated_Data_.dat +PRINT_INLET_INTERPOLATED_DATA= NO +% % Inlet boundary marker(s) with the following formats (NONE = no marker) % Total Conditions: (inlet marker, total temp, total pressure, flow_direction_x, % flow_direction_y, flow_direction_z, ... ) where flow_direction is @@ -923,8 +1034,11 @@ MARKER_INLET= ( NONE ) % Inc. Mass Flow: ( outlet marker, mass flow target (kg/s), ... ) MARKER_OUTLET= ( NONE ) % +% Propeller blade element actuator disk double surface (inlet, outlet) boundary condition +ACTDISK_DOUBLE_SURFACE = NO +% % Actuator disk boundary type (VARIABLE_LOAD, VARIABLES_JUMP, BC_THRUST, -% DRAG_MINUS_THRUST) +% DRAG_MINUS_THRUST, BLADE_ELEMENT) ACTDISK_TYPE= VARIABLES_JUMP % % Actuator disk boundary marker(s) with the following formats (NONE = no marker) @@ -938,11 +1052,33 @@ ACTDISK_TYPE= VARIABLES_JUMP % Drag-Thrust: ( inlet face marker, outlet face marker, % Takeoff Drag-Thrust (lbs), 0.0, Takeoff rev/min, % Cruise Drag-Thrust (lbs), 0.0, Cruise rev/min ) +% Blade element: ( inlet face marker, outlet face marker, +% Takeoff Drag-Thrust (lbs), 0.0, Takeoff rev/min, +% Cruise Drag-Thrust (lbs), 0.0, Cruise rev/min ) MARKER_ACTDISK= ( NONE ) % +% Blade element: ( inlet face marker, outlet face marker, +% X_CG of inlet, Y_CG of inlet, Z_CG of inlet, +% X_CG of outlet, Y_CG of outlet, Z_CG of outlet ) +MARKER_ACTDISK_BEM_CG= ( NONE ) +% +% Blade element: ( inlet face marker, outlet face marker, +% X_Axis of inlet, Y_Axis of inlet, Z_Axis of inlet, +% X_Axis of outlet, Y_Axis of outlet, Z_Axis of outlet ) +MARKER_ACTDISK_BEM_AXIS= ( NONE ) +% % Actuator disk data input file name ACTDISK_FILENAME= actuatordisk.dat % +% Propeller blade element section and aerodynamic data input file name +BEM_PROP_FILENAME = prop_geom_alfclcd_data.txt +% +% Propeller blade angle (degrees) at (0.75 * radius) +BEM_PROP_BLADE_ANGLE = 25.0 +% +% BEM calculation frequency +BEM_FREQ = 40 +% % Supersonic inlet boundary marker(s) (NONE = no marker) % Format: (inlet marker, temperature, static pressure, velocity_x, % velocity_y, velocity_z, ... ), i.e. primitive variables specified. @@ -998,6 +1134,9 @@ MARKER_SHROUD= (NONE) % MARKER_ZONE_INTERFACE= ( NONE ) % +% CHT interface boundary marker(s) +MARKER_CHT_INTERFACE= ( NONE ) +% % Specifies the interface (s) % The kind of interface is defined by listing pairs of markers (one from each % zone connected by the interface) @@ -1010,14 +1149,39 @@ MARKER_ZONE_INTERFACE= ( NONE ) % MARKER_FLUID_INTERFACE= ( NONE ) % -% Kind of interface interpolation among different zones (NEAREST_NEIGHBOR, -% ISOPARAMETRIC, SLIDING_MESH) +% Marker(s) in which the flow load is computed/applied +MARKER_FLUID_LOAD= ( NONE ) +% +% Kind of interface interpolation among different zones (NEAREST_NEIGHBOR, WEIGHTED_AVERAGE, +% ISOPARAMETRIC, RADIAL_BASIS_FUNCTION) KIND_INTERPOLATION= NEAREST_NEIGHBOR % +% Use conservative approach for interpolating between meshes +CONSERVATIVE_INTERPOLATION= YES +% +% Type of radial basis function to use for radial basis function interpolation +% (WENDLAND_C2, INV_MULTI_QUADRIC, GAUSSIAN, THIN_PLATE_SPLINE, MULTI_QUADRIC). +KIND_RADIAL_BASIS_FUNCTION = WENDLAND_C2 +% +% Radius for radial basis function. +RADIAL_BASIS_FUNCTION_PARAMETER = 0.015 +% +% Use polynomial term in radial basis function interpolation. +RADIAL_BASIS_FUNCTION_POLYNOMIAL_TERM = YES +% +% Tolerance to prune small coefficients from the RBF interpolation matrix. +RADIAL_BASIS_FUNCTION_PRUNE_TOLERANCE = 0 +% % Inflow and Outflow markers must be specified, for each blade (zone), following % the natural groth of the machine (i.e, from the first blade to the last) MARKER_TURBOMACHINERY= ( NONE ) % +% Integer number of spanwise sections to compute 3D turbo BC and Performance for turbomachinery +NUM_SPANWISE_SECTIONS= 1 +% +% type of algorithm to identify the span-wise sections at the turbo boundaries. 1 means automatic. +SPANWISE_KIND= 1 +% % Mixing-plane interface markers must be specified to activate the transfer of % information between zones MARKER_MIXINGPLANE_INTERFACE= ( NONE ) @@ -1039,14 +1203,75 @@ SPATIAL_FOURIER= NO % Catalytic wall marker(s) (NONE = no marker) % Format: ( marker name, ... ) CATALYTIC_WALL= ( NONE ) +% specify if catalytic wall is a supercatalytic wall +SUPERCATALYTIC_WALL= NO +% species composition at the supercatalytic wall +SUPERCATALYTIC_WALL_COMPOSITION= (0,0,0) +% catalytic efficiency +CATALYTIC_EFFICIENCY= 0.2 % % Inlet Turbulent boundary marker(s) with the following format: % SA Model: (inlet_marker1, NuFactor1, inlet_marker2, NuFactor2, ...) % SST Model: (inlet_marker1, TurbIntensity1, RatioTurbLamViscosity1, inlet_marker2, TurbIntensity2, RatioTurbLamViscosity2, ...) MARKER_INLET_TURBULENT= (inlet1, 0.05, 15, inlet2, 0.02, ...) % -% list of markers species transport and flamelet model where strong boundary conditions should be used -MARKER_SPECIES_STRONG_BC= (inlet, wall) +% Custom boundary marker(s) (this has to be implemented by users in the code). +MARKER_CUSTOM= ( NONE ) +% +% Smoluchowski/Maxwell slip wall boundary marker(s) +MARKER_SMOLUCHOWSKI_MAXWELL= ( NONE ) +% +% Clamped boundary marker(s) +MARKER_CLAMPED= ( NONE ) +% +% Load boundary marker(s) +MARKER_DAMPER= ( NONE ) +% +% Load boundary marker(s) +% Format: (inlet marker, load, multiplier, dir_x, dir_y, dir_z, ... ), +% i.e. primitive variables specified. +MARKER_LOAD= ( NONE ) +% +% option to apply the load as a sine +SINE_LOAD= NO +% the 1st coeff is the amplitude, +% the 2nd is the frequency, +% the 3rd is the phase in radians +SINE_LOAD_COEFF= (0.0, 0.0, 0.0) +% +RAMP_AND_RELEASE_LOAD= NO +% +% Apply the load as a ramp +RAMP_LOADING= NO +% +% Time while the load is to be increased linearly +RAMP_TIME= 1.0 +% +% Number of FSI iterations during which a ramp is applied +RAMP_FSI_ITER= 2 +% +% Aitken static relaxation factor +STAT_RELAX_PARAMETER= 0.4 +% +% Aitken dynamic maximum relaxation factor for the first iteration +AITKEN_DYN_MAX_INITIAL= 0.5 +% +% Aitken dynamic minimum relaxation factor for the first iteration +AITKEN_DYN_MIN_INITIAL= 0.5 +% +% Kind of relaxation +BGS_RELAXATION= NONE +% +% Relaxation required +RELAXATION= NO +% +% Transfer method used for multiphysics problems +DYNAMIC_LOAD_TRANSFER= RAMP +% +% Load boundary marker(s) +% Format: (inlet marker, load, multiplier, dir_x, dir_y, dir_z, ... ), +% i.e. primitive variables specified. +MARKER_DISPLACEMENT= ( NONE ) % ------------------------ WALL ROUGHNESS DEFINITION --------------------------% % The equivalent sand grain roughness height (k_s) on each of the wall. This must be in m. @@ -1071,6 +1296,14 @@ WALLMODEL_MAXITER= 200 % [Expert] relaxation factor for the Newton iterations of the standard wall function WALLMODEL_RELFAC= 0.5 +% ------------------------ CONJUGATE HEAT TRANSFER (CHT) --------------------------% +% +% Relaxation of the CHT coupling +RELAXATION_FACTOR_CHT= 1.0 +% +% CHT interface coupling methods +CHT_COUPLING_METHOD= DIRECT_TEMPERATURE_ROBIN_HEATFLUX + % ------------------------ SURFACES IDENTIFICATION ----------------------------% % % Marker(s) of the surface in the surface flow solution file @@ -1101,7 +1334,7 @@ MARKER_ANALYZE_AVERAGE = MASSFLUX % % Numerical method for spatial gradients (GREEN_GAUSS, WEIGHTED_LEAST_SQUARES) NUM_METHOD_GRAD= GREEN_GAUSS - +% % Numerical method for spatial gradients to be used for MUSCL reconstruction % Options are (GREEN_GAUSS, WEIGHTED_LEAST_SQUARES, LEAST_SQUARES). Default value is % NONE and the method specified in NUM_METHOD_GRAD is used. @@ -1124,6 +1357,9 @@ CFL_ADAPT_PARAM= ( 0.1, 2.0, 10.0, 1e10, 0.001 ) % Maximum Delta Time in local time stepping simulations MAX_DELTA_TIME= 1E6 % +% External iteration offset due to restart +EXT_ITER_OFFSET= 0 +% % Runge-Kutta alpha coefficients RK_ALPHA_COEFF= ( 0.66667, 0.66667, 1.000000 ) % @@ -1194,6 +1430,8 @@ ADJ_SHARP_LIMITER_COEFF= 3.0 % Remove sharp edges from the sensitivity evaluation (NO, YES) SENS_REMOVE_SHARP = NO % +SENS_SMOOTHING= NONE +% % Freeze the value of the limiter after a number of iterations LIMITER_ITER= 999999 % @@ -1222,6 +1460,15 @@ LINEAR_SOLVER= FGMRES % Same for discrete adjoint (smoothers not supported), replaces LINEAR_SOLVER in SU2_*_AD codes. DISCADJ_LIN_SOLVER= FGMRES % +% Linear solver for the turbulent adjoint systems +ADJTURB_LIN_SOLVER= FGMRES +% +% Preconditioner for the turbulent adjoint Krylov linear solvers +ADJTURB_LIN_PREC= ILU +% +% Maximum number of iterations of the turbulent adjoint linear solver for the implicit formulation +ADJTURB_LIN_ITER= 10 +% % Preconditioner of the Krylov linear solver or type of smoother (ILU, LU_SGS, LINELET, JACOBI) LINEAR_SOLVER_PREC= ILU % @@ -1266,6 +1513,11 @@ MG_DAMP_RESTRICTION= 0.75 % Damping factor for the correction prolongation MG_DAMP_PROLONGATION= 0.75 +% -------------------------- MESH SMOOTHING -----------------------------% +% +% Before each computation, implicitly smooth the nodal coordinates +SMOOTH_GEOMETRY= 0 + % -------------------- FLOW NUMERICAL METHOD DEFINITION -----------------------% % % Convective numerical method (JST, JST_KE, JST_MAT, LAX-FRIEDRICH, ROE, AUSM, @@ -1276,6 +1528,15 @@ CONV_NUM_METHOD_FLOW= ROE % Roe Low Dissipation function for Hybrid RANS/LES simulations (FD, NTS, NTS_DUCROS) ROE_LOW_DISSIPATION= FD % +% Roe coefficient +ROE_KAPPA= 0.5 +% +% Minimum value for beta for the Roe-Turkel preconditioner +MIN_ROE_TURKEL_PREC= 0.01 +% +% Maximum value for beta for the Roe-Turkel preconditioner +MAX_ROE_TURKEL_PREC= 0.2 +% % Post-reconstruction correction for low Mach number flows (NO, YES) LOW_MACH_CORR= NO % @@ -1299,6 +1560,10 @@ ENTROPY_FIX_COEFF= 0.0 % only) more diagonal dominant (but mathematically incorrect) so that higher CFL can be used. CENTRAL_JACOBIAN_FIX_FACTOR= 4.0 % +% Control numerical properties of the global Jacobian matrix using a multiplication factor +% for incompressible central schemes +CENTRAL_INC_JACOBIAN_FIX_FACTOR= 1.0 +% % Time discretization (RUNGE-KUTTA_EXPLICIT, EULER_IMPLICIT, EULER_EXPLICIT) TIME_DISCRE_FLOW= EULER_IMPLICIT % @@ -1306,6 +1571,12 @@ TIME_DISCRE_FLOW= EULER_IMPLICIT % For multizone discrete adjoint it will use FGMRES on inner iterations with restart frequency % equal to "QUASI_NEWTON_NUM_SAMPLES". NEWTON_KRYLOV= NO +% +% Integer parameters {startup iters, precond iters, initial tolerance relaxation}. +NEWTON_KRYLOV_IPARAM= (10, 3, 2) +% +% Double parameters {startup residual drop, precond tolerance, full tolerance residual drop, findiff step}. +NEWTON_KRYLOV_DPARAM= (1.0, 0.1, -6.0, 1e-5) % ------------------- FEM FLOW NUMERICAL METHOD DEFINITION --------------------% % @@ -1340,7 +1611,7 @@ ALIGNED_BYTES_MATMUL= 128 TIME_DISCRE_FEM_FLOW= RUNGE-KUTTA_EXPLICIT % % Number of time DOFs for the predictor step of ADER-DG (2 by default) -%TIME_DOFS_ADER_DG= 2 +TIME_DOFS_ADER_DG= 2 % Factor applied during quadrature in time for ADER-DG. (2.0 by default) %QUADRATURE_FACTOR_TIME_ADER_DG = 2.0 % @@ -1351,7 +1622,135 @@ LEVELS_TIME_ACCURATE_LTS= 1 % % Specify the method for matrix coloring for Jacobian computations (GREEDY_COLORING, NATURAL_COLORING) KIND_MATRIX_COLORING= GREEDY_COLORING +% +% Specify shock capturing method for DG +KIND_FEM_DG_SHOCK= NONE +% ------------------- TOPOLOGY OPTIMIZATION --------------------% +% +% "Classic" density approach to topology optimization. Each element is +% assigned a density variable that is used to penalize its stiffness. +TOPOLOGY_OPTIMIZATION= NO +% +% Output file for the derivatives of the OBJECTIVE_FUNCTION w.r.t. the +% design densities. +TOPOL_OPTIM_OUTFILE= element_derivatives.dat +% +% The penalization exponent for the Simplified Isotropic Material with +% Penalization. +TOPOL_OPTIM_SIMP_EXPONENT= 1.0 +% +% The stiffness of void elements (normalized by ELASTICITY_MODULUS) +TOPOL_OPTIM_SIMP_MINSTIFF= 0.001 +% +% Filtering is required to avoid numerical issues, see [Sigmund, 2007] +% (DOI 10.1007/s00158-006-0087-x). Currently available options: +% CONSTANT; CONICAL (default); GAUSSIAN; DILATE; ERODE. +% The filter can have multiple sequential stages (2 in this case). +TOPOL_OPTIM_FILTER_KERNEL= (DILATE, ERODE) +% +% Each kernel can have its own radius (R1, R2, ...) or one value can be +% specified for all. +TOPOL_OPTIM_FILTER_RADIUS= 0.0 +% +% The Gaussian, Erode, and Dilate filters, have a constant parameter. +% Again this can be a list. +TOPOL_OPTIM_KERNEL_PARAM= 0.01 +% +% The filtering may become very expensive if the mesh has very refined +% regions. If different from 0 this option mitigates that by limiting the +% "logical radius" (for immediate neighbors that radius is 1, etc.). +TOPOL_OPTIM_SEARCH_LIMIT= 0 +% +% After the filtering, a projection step can be applied to increase the +% solid-void contrast, i.e. the discreteness of the solution. Options: +% NO_PROJECTION (default); HEAVISIDE_UP; HEAVISIDE_DOWN. +TOPOL_OPTIM_PROJECTION_TYPE= NO_PROJECTION +% +% The continuous Heaviside function (step) approximations require a +% parameter, large value equals more discrete. +TOPOL_OPTIM_PROJECTION_PARAM= 0.0 + +% ------------------- FEA SOLVER FOR FLUID-STRUCTURE INTERACTION --------------------% +% +% Filename to input for element-based properties +FEA_FILENAME= default_element_properties.dat +% +% Determine if advanced features are used from the element-based FEA analysis (NO, YES = experimental) +FEA_ADVANCED_MODE= NO +% +% Modulus of elasticity +ELASTICITY_MODULUS= 1000.0 +% +% Poisson ratio +POISSON_RATIO= 0.35 +% +% Knowles B constant +KNOWLES_B= 1.0 +% +% Knowles N constant +KNOWLES_N= 1.0 +% +% ID of the region we want to compute the sensitivities using direct differentiation +FEA_ID_DIRECTDIFF= 0 +% +% +RESTART_STEADY_STATE= NO +% +% Time discretization +TIME_DISCRE_FEA= NEWMARK_IMPLICIT +% +% Parameter alpha for Newmark scheme (s) +NEWMARK_BETA= 0.25 +% +% Parameter gamma for Newmark scheme (s) +NEWMARK_GAMMA= 0.50 +% +% Newmark - Generalized alpha - coefficients +TIME_INT_STRUCT_COEFFS= 0.0 +% +% Apply dead loads +INCREMENTAL_LOAD= NO +% +% Maximum number of increments of the +NUMBER_INCREMENTS= 10 +% +% Definition of the UTOL RTOL ETOL +INCREMENTAL_CRITERIA= (0.0, 0.0, 0.0) +% +% Use of predictor +PREDICTOR= NO +% +% Order of the predictor +PREDICTOR_ORDER= 0 +% +% Geometric conditions +GEOMETRIC_CONDITIONS= SMALL_DEFORMATIONS +% +% Material model +MATERIAL_MODEL= LINEAR_ELASTIC +% +% Compressibility of the material +MATERIAL_COMPRESSIBILITY= COMPRESSIBLE +% +% -------------------- Dielectric effects ------------------% +% +% Include DE effects +DE_EFFECTS= NO +% +% Value of the Dielectric Elastomer constant +ELECTRIC_FIELD_CONST= 4.25e-11 +% +% Modulus of the Electric Fields +ELECTRIC_FIELD_MOD= 20e5 +% +% Direction of the Electic Fields +ELECTRIC_FIELD_DIR= (0.0, 1.0) + +% -------------------- Weakly Coupled Heat ------------------% +% +WEAKLY_COUPLED_HEAT_EQUATION= NO +% % -------------------- TURBULENT NUMERICAL METHOD DEFINITION ------------------% % % Convective numerical method (SCALAR_UPWIND, BOUNDED_SCALAR) @@ -1379,12 +1778,15 @@ SLOPE_LIMITER_HEAT = NONE % % Time discretization TIME_DISCRE_HEAT= EULER_IMPLICIT -% + % ---------------- ADJOINT-FLOW NUMERICAL METHOD DEFINITION -------------------% % % Frozen the slope limiter in the discrete adjoint formulation (NO, YES) FROZEN_LIMITER_DISC= NO % +% Continuous Adjoint frozen viscosity +% FROZEN_VISC_CONT= NO +% % Frozen the turbulent viscosity in the discrete adjoint formulation (NO, YES) FROZEN_VISC_DISC= NO % @@ -1414,6 +1816,20 @@ LIMIT_ADJFLOW= 1E6 % Use multigrid in the adjoint problem (NO, YES) MG_ADJFLOW= YES +% ---------------- MULTIZONE DEFINITION --------------% +% +% Determine if the mesh file supports multizone. \n DEFAULT: true (temporarily) +MULTIZONE_MESH= YES +% +% Determine if we need to allocate memory to store the multizone residual. \n DEFAULT: true (temporarily) +MULTIZONE_RESIDUAL= NO +% +% Determines if the convergence history of each individual zone is written to screen +WRT_ZONE_CONV= NO +% +% Determines if the convergence history of each individual zone is written to file +WRT_ZONE_HIST= NO + % ---------------- ADJOINT-TURBULENT NUMERICAL METHOD DEFINITION --------------% % % Convective numerical method (SCALAR_UPWIND) @@ -1425,7 +1841,6 @@ TIME_DISCRE_ADJTURB= EULER_IMPLICIT % Reduction factor of the CFL coefficient in the adjoint turbulent problem CFL_REDUCTION_ADJTURB= 0.01 - % -------------------- NEMO NUMERICAL METHOD DEFINITION -----------------------% % % Mixture transport properties (WILKE,GUPTA-YOS,CHAPMANN-ENSKOG, SUTHERLAND) @@ -1439,9 +1854,14 @@ GEO_MARKER= ( airfoil ) % Description of the geometry to be analyzed (AIRFOIL, WING) GEO_DESCRIPTION= AIRFOIL % +% Z location of the waterline +GEO_WATERLINE_LOCATION= 0.0 +% % Coordinate of the stations to be analyzed GEO_LOCATION_STATIONS= (0.0, 0.5, 1.0) % +% Definition of the nacelle location (higlite coordinates, tilt angle, toe angle) +GEO_NACELLE_LOCATION= (0.0, 0.0, 0.0, 0.0, 0.0) % Geometrical bounds (Y coordinate) for the wing geometry analysis or % fuselage evaluation (X coordinate) GEO_BOUNDS= (1.5, 3.5) @@ -1455,23 +1875,6 @@ GEO_NUMBER_STATIONS= 25 % Geometrical evaluation mode (FUNCTION, GRADIENT) GEO_MODE= FUNCTION -% ------------------------- GRID ADAPTATION STRATEGY --------------------------% -% -% Kind of grid adaptation (NONE, PERIODIC, FULL, FULL_FLOW, GRAD_FLOW, -% FULL_ADJOINT, GRAD_ADJOINT, GRAD_FLOW_ADJ, ROBUST, -% FULL_LINEAR, COMPUTABLE, COMPUTABLE_ROBUST, -% REMAINING, WAKE, SMOOTHING, SUPERSONIC_SHOCK) -KIND_ADAPT= FULL_FLOW -% -% Percentage of new elements (% of the original number of elements) -NEW_ELEMS= 5 -% -% Scale factor for the dual volume -DUALVOL_POWER= 0.5 -% -% Adapt the boundary elements (NO, YES) -ADAPT_BOUNDARY= YES - % ----------------------- DESIGN VARIABLE PARAMETERS --------------------------% % % Kind of deformation (NO_DEFORMATION, SCALE_GRID, TRANSLATE_GRID, ROTATE_GRID, @@ -1530,7 +1933,58 @@ DV_SENS_FILENAME= surface_sensitivity.dat % as an ASCII file with name given by DV_SENS_FILENAMEand with format as % rows of x, y, z, dJ/dx, dJ/dy, dJ/dz for each grid point. DV_SENSITIVITY_FORMAT= SU2_NATIVE +% DV_UNORDERED_SENS_FILENAME= unordered_sensitivity.dat +% +% Hold the grid fixed in a region +HOLD_GRID_FIXED= NO +% +% Coordinates of the box where the grid will be deformed (Xmin, Ymin, Zmin, Xmax, Ymax, Zmax) +HOLD_GRID_FIXED_COORDS= (-1e15, -1e15, -1e15, 1e15, 1e15, 1e15) +% +% Design variable for FEA problems +% options: NONE, YOUNG_MODULUS, POISSON_RATIO, DENSITY, DEAD_WEIGHT, ELECTRIC_FIELD +DESIGN_VARIABLE_FEA= NONE +% +% Penalty weight value to maintain the total sum of DV constant +TOTAL_DV_PENALTY= 0.0 +% +% Parameters for the corresponding OF (allowed stress and KS multiplier). +STRESS_PENALTY_PARAM= (1.0, 10.0) +% + +% ---------------- AUTOMATIC DIFFERENTIATION -------------------% +% +% Preaccumulation in the AD mode. +PREACC= YES + +% ---------------- PRESTRETCH FOR STRUCTURES -------------------% +% Consider a prestretch in the structural domain +PRESTRETCH= NO +% +% Filename to input for prestretching membranes +PRESTRETCH_FILENAME= prestretch_file.dat +% +% Iterative method for non-linear structural analysis +NONLINEAR_FEM_SOLUTION_METHOD= NEWTON_RAPHSON +% +% Formulation for bidimensional elasticity solver +FORMULATION_ELASTICITY_2D= PLANE_STRAIN +% +% Apply dead loads +DEAD_LOAD= NO +% +% pseudo static analysis (no density in dynamic analysis) +PSEUDO_STATIC= NO +% +% Dynamic or static structural analysis (deprecated -> use TIME_DOMAIN) +DYNAMIC_ANALYSIS= NO +% +% Time Step for dynamic analysis (s) (deprecated -> use TIME_STEP) +DYN_TIMESTEP= 0.0 +% +% Total Physical Time for dual time stepping simulations (s) (deprecated -> use MAX_TIME) +DYN_TIME= 1.0 % ---------------- MESH DEFORMATION PARAMETERS (NEW SOLVER) -------------------% % @@ -1572,6 +2026,41 @@ DEFORM_STIFFNESS_TYPE= WALL_DISTANCE % Deform the grid only close to the surface. It is possible to specify how much % of the volumetric grid is going to be deformed in meters or inches (1E6 by default) DEFORM_LIMIT = 1E6 +% +% Young modulus for constant stiffness FEA method of grid deformation +DEFORM_ELASTICITY_MODULUS= 2e11 +% +% Poisson ratio for constant stiffness FEA method of grid deformation +DEFORM_POISSON_RATIO= 0.3 +% +% Size of the layer of highest stiffness for wall distance-based mesh stiffness +DEFORM_STIFF_LAYER_SIZE= 0.0 + +% -------------------- REFERENCE GEOMETRY -----------------------% +% +% Consider a reference solution for the structure (optimization applications) +REFERENCE_GEOMETRY= NO +% +% Penalty weight value for the objective function +REFERENCE_GEOMETRY_PENALTY= 1.0E6 +% +% Reference geometry filename +REFERENCE_GEOMETRY_FILENAME= reference_geometry.dat +% +% Format of the reference geometry file +REFERENCE_GEOMETRY_FORMAT= SU2_REF +% +% If true consider only the surfaces where loads are applied. +REFERENCE_GEOMETRY_SURFACE= NO +% +% Reference node for the structure (optimization applications) +REFERENCE_NODE= 0 +% +% Target displacement of the reference node +REFERENCE_NODE_DISPLACEMENT= (0.0, 0.0) +% +% Penalty weight value for the objective function +REFERENCE_NODE_PENALTY= 1.0E3 % -------------------- FREE-FORM DEFORMATION PARAMETERS -----------------------% % @@ -1580,17 +2069,17 @@ FFD_TOLERANCE= 1E-10 % % Maximum number of iterations in the Free-Form Deformation point inversion FFD_ITERATIONS= 500 - +% % Parameters for prevention of self-intersections within FFD box FFD_INTPREV = YES FFD_INTPREV_ITER = 10 FFD_INTPREV_DEPTH = 3 - +% % Parameters for prevention of nonconvex elements in mesh after deformation CONVEXITY_CHECK = YES CONVEXITY_CHECK_ITER = 10 CONVEXITY_CHECK_DEPTH = 3 - +% % % FFD box definition: 3D case (FFD_BoxTag, X1, Y1, Z1, X2, Y2, Z2, X3, Y3, Z3, X4, Y4, Z4, % X5, Y5, Z5, X6, Y6, Z6, X7, Y7, Z7, X8, Y8, Z8) @@ -1655,6 +2144,14 @@ UQ_DELTA_B= 1.0 % The optimum value/strategy is case-dependent. EDGE_COLORING_GROUP_SIZE= 512 % +% Coloring tends to perform better for the discrete adjoint than reductions because +% it uses less memory and enables the shared reading optimization for color loops. +% This option allows an automatic fallback to smaller edge color group sizes on ranks +% where the requested edge color group size is not efficient. Specifically, the largest +% edge color group size up to EDGE_COLORING_GROUP_SIZE is chosen that is at least +% 0.875 efficient. Also, this option allows using more colors, up to 255 instead of up to 64. +EDGE_COLORING_RELAX_DISC_ADJ= YES +% % Independent "threads per MPI rank" setting for LU-SGS and ILU preconditioners. % For problems where time is spend mostly in the solution of linear systems (e.g. elasticity, % very high CFL central schemes), AND, if the memory bandwidth of the machine is saturated @@ -1757,6 +2254,10 @@ OUTPUT_WRT_FREQ= 10, 250, 42 % Output the performance summary to the console at the end of SU2_CFD WRT_PERFORMANCE= NO % +% Output the tape statistics (discrete adjoint) +WRT_AD_STATISTICS= NO +% +% % Overwrite or append iteration number to the restart files when saving WRT_RESTART_OVERWRITE= YES % @@ -1766,6 +2267,21 @@ WRT_SURFACE_OVERWRITE= YES % Overwrite or append iteration number to the volume files when saving WRT_VOLUME_OVERWRITE= YES % +% Determines if the forces breakdown is written out +WRT_FORCES_BREAKDOWN= NO +% +% MPI communication level (NONE, MINIMAL, FULL) +COMM_LEVEL= FULL +% +% Node number for the CV to be visualized (tecplot) (delete?) +VISUALIZE_CV= -1 +% +% Write extra output (EXPERIMENTAL, NOT FOR GENERAL USE) +EXTRA_OUTPUT= NO +% +% Write extra heat output for a given heat solver zone +EXTRA_HEAT_ZONE_OUTPUT= -1 + % ------------------------- INPUT/OUTPUT FILE INFORMATION --------------------------% % % Mesh input file @@ -1774,6 +2290,15 @@ MESH_FILENAME= mesh_NACA0012_inv.su2 % Mesh input file format (SU2, CGNS) MESH_FORMAT= SU2 % +% List of the number of grid points in the RECTANGLE or BOX grid in the x,y,z directions. (default: (33,33,33) ). +MESH_BOX_SIZE= (33, 33, 33) +% +% List of the length of the RECTANGLE or BOX grid in the x,y,z directions. (default: (1.0,1.0,1.0) ). +MESH_BOX_LENGTH= (1.0, 1.0, 1.0) +% +% List of the offset from 0.0 of the RECTANGLE or BOX grid in the x,y,z directions. (default: (0.0,0.0,0.0) ). +MESH_BOX_OFFSET= (0.0, 0.0, 0.0) +% % Mesh output file MESH_OUT_FILENAME= mesh_out.su2 % @@ -1786,6 +2311,9 @@ SOLUTION_ADJ_FILENAME= solution_adj.dat % Output tabular file format (TECPLOT, CSV) TABULAR_FORMAT= CSV % +% Set .precision(value) to specified value for SU2_DOT and HISTORY output. Useful for exact gradient validation. +OUTPUT_PRECISION= 10 +% % Files to output % Possible formats : (TECPLOT_ASCII, TECPLOT, SURFACE_TECPLOT_ASCII, % SURFACE_TECPLOT, CSV, SURFACE_CSV, PARAVIEW_ASCII, PARAVIEW_LEGACY, SURFACE_PARAVIEW_ASCII, @@ -1823,6 +2351,12 @@ SURFACE_FILENAME= surface_flow % Output file surface adjoint coefficient (w/o extension) SURFACE_ADJ_FILENAME= surface_adjoint % +% Output file surface sensitivity (discrete adjoint) (w/o extension) +SURFACE_SENS_FILENAME= surface_sens +% +% Output file volume sensitivity (discrete adjoint)) +VOLUME_SENS_FILENAME= volume_sens +% % Read binary restart files (YES, NO) READ_BINARY_RESTART= YES % @@ -1873,14 +2407,14 @@ REORIENT_ELEMENTS= YES % Definition of multipoint design problems, this option should be combined with the % the prefix MULTIPOINT in the objective function or constraint (e.g. MULTIPOINT_DRAG, MULTIPOINT_LIFT, etc.) MULTIPOINT_MACH_NUMBER= (0.79, 0.8, 0.81) +MULTIPOINT_WEIGHT= (0.33333, 0.33333, 0.33333) MULTIPOINT_AOA= (1.25, 1.25, 1.25) MULTIPOINT_SIDESLIP_ANGLE= (0.0, 0.0, 0.0) MULTIPOINT_TARGET_CL= (0.8, 0.8, 0.8) MULTIPOINT_REYNOLDS_NUMBER= (1E6, 1E6, 1E6) -MULTIPOINT_FREESTREAM_PRESSURE= (101325.0, 101325.0, 101325.0) MULTIPOINT_FREESTREAM_TEMPERATURE= (288.15, 288.15, 288.15) +MULTIPOINT_FREESTREAM_PRESSURE= (101325.0, 101325.0, 101325.0) MULTIPOINT_OUTLET_VALUE= (0.0, 0.0, 0.0) -MULTIPOINT_WEIGHT= (0.33333, 0.33333, 0.33333) MULTIPOINT_MESH_FILENAME= (mesh_NACA0012_m79.su2, mesh_NACA0012_m8.su2, mesh_NACA0012_m81.su2) % % Optimization objective function with scaling factor, separated by semicolons. @@ -1925,6 +2459,11 @@ DEFINITION_DV= ( 1, 1.0 | airfoil | 0, 0.05 ); ( 1, 1.0 | airfoil | 0, 0.10 ); ( % Use combined objective within gradient evaluation: may reduce cost to compute gradients when using the adjoint formulation. OPT_COMBINE_OBJECTIVE = NO % +% +% Number of iterations to average the objective function for unsteady adjoints, +% 0 averages over all time iterations, "N" averages over the last N iterations. +ITER_AVERAGE_OBJ= 0 + % --------------------- LIBROM PARAMETERS -----------------------% % LibROM can be found here: https://github.com/LLNL/libROM % @@ -1943,3 +2482,14 @@ MAX_BASIS_DIM = 100 % % Frequency of snapshots saves, for unsteady problems (default: 1. 2 means every other) ROM_SAVE_FREQ = 1 + +% --------------------- PASTIX PARAMETERS -----------------------% +% +% Number of calls to 'Build' that trigger re-factorization (0 means only once) +PASTIX_FACTORIZATION_FREQUENCY= 1 +% +% 0 - Quiet, 1 - During factorization and cleanup, 2 - Even more detail +PASTIX_VERBOSITY_LEVEL= 0 +% +% Level of fill for PaStiX incomplete LU factorization +PASTIX_FILL_LEVEL= 1 diff --git a/externals/cgns/adf/ADF_interface.c b/externals/cgns/adf/ADF_interface.c index 11c3502069a..59bd59d5466 100644 --- a/externals/cgns/adf/ADF_interface.c +++ b/externals/cgns/adf/ADF_interface.c @@ -1209,7 +1209,7 @@ else { /** this node is NOT a link **/ CHECK_ADF_ABORT( *error_return ) ; for( i=0; i 0 && lenfilename == strlen( link_data ) ) +else if ( lenfilename == strlen( link_data ) ) { strcpy( file, link_data) ; /** no link ? **/ } @@ -1688,7 +1688,7 @@ if ( lenfilename == 0 ) /** no filename **/ { *len_name = (int)strlen(link_data) - 1; } -else if ( lenfilename > 0 && lenfilename == strlen( link_data ) ) +else if ( lenfilename == strlen( link_data ) ) { *len_file = (int)lenfilename; } diff --git a/externals/cgns/adf/ADF_internals.c b/externals/cgns/adf/ADF_internals.c index a52878e13d6..27c673df9b8 100644 --- a/externals/cgns/adf/ADF_internals.c +++ b/externals/cgns/adf/ADF_internals.c @@ -155,7 +155,7 @@ bytes start end description range / format Variable: min 32 Data-chunks -(Minimum is 32 bytes, which cooresponds to the size required for a free-chunk) +(Minimum is 32 bytes, which corresponds to the size required for a free-chunk) bytes start end description range / format 4 0 3 "DaTa" boundary tag Tag 12 4 15 Pointer to End-of-Data-Tag @@ -7187,7 +7187,7 @@ NULL_STRING_POINTER ADF_FILE_NOT_OPENED PRISTK_NOT_FOUND Note: errors are only important for GET mode since you must then go ahead - and read the data fom the file. The stack is only meant to speed things + and read the data from the file. The stack is only meant to speed things up, not stop the process !!! ***********************************************************************/ int ADFI_stack_control( const unsigned int file_index, diff --git a/externals/cgns/adfh/ADFH.c b/externals/cgns/adfh/ADFH.c index 703cd0b62f6..94ec80cc491 100644 --- a/externals/cgns/adfh/ADFH.c +++ b/externals/cgns/adfh/ADFH.c @@ -61,6 +61,18 @@ static int CompressData = -1; #define ADFH_CONFIG_DEFAULT 0 +#if H5_VERSION_GE(1,10,3) && !defined(H5_USE_18_API) && !defined(H5_USE_16_API) +#define ADFH_HDF5_HAVE_110_API 1 +#else +#define ADFH_HDF5_HAVE_110_API 0 +#endif + +#if H5_VERSION_GE(1,12,0) && !defined(H5_USE_110_API) && !defined(H5_USE_18_API) && !defined(H5_USE_16_API) +#define ADFH_HDF5_HAVE_112_API 1 +#else +#define ADFH_HDF5_HAVE_112_API 0 +#endif + /*** HDF5's CORE FILE DRIVER PARAMETERS ****/ /* Enables using the core file driver */ @@ -72,11 +84,12 @@ static size_t core_vfd_increment = 10L*1024L*1024L; static hbool_t core_vfd_backing_store = ADFH_CONFIG_DEFAULT; /** MISC. HDF5 OPTIMIZATION TUNING PARAMETERS */ -static hsize_t h5pset_alignment_threshold = ADFH_CONFIG_DEFAULT; -static hsize_t h5pset_alignment_alignment = ADFH_CONFIG_DEFAULT; -static hsize_t h5pset_meta_block_size_size = ADFH_CONFIG_DEFAULT; -static hsize_t h5pset_buffer_size_size = ADFH_CONFIG_DEFAULT; -static hsize_t h5pset_sieve_buf_size_size = ADFH_CONFIG_DEFAULT; +static hsize_t h5pset_alignment_threshold = ADFH_CONFIG_DEFAULT; +static hsize_t h5pset_alignment_alignment = ADFH_CONFIG_DEFAULT; +static hsize_t h5pset_meta_block_size_size = ADFH_CONFIG_DEFAULT; +static hsize_t h5pset_buffer_size_size = ADFH_CONFIG_DEFAULT; +static hsize_t h5pset_sieve_buf_size_size = ADFH_CONFIG_DEFAULT; +static unsigned h5pset_elink_file_cache_size_size = ADFH_CONFIG_DEFAULT; #define TO_UPPER( c ) ((islower(c))?(toupper(c)):(c)) @@ -155,10 +168,9 @@ printf aaa ; printf("\n"); fflush(stdout); #define ADFH_MODE_RDO 3 /* the following keeps track of open and mounted files */ +#define ADFH_MAXIMUM_FILES 1024 -#define ADFH_MAXIMUM_FILES 128 - -/* Start to prepare re-entrance into lib, gather statics in one global struct */ +/* Start to prepare re-entrance into lib, gather static variables in one global struct */ /* Then, you'll just have to handle struct with something else but a static... */ /* MTA stands for... Multi-Threads-Aware */ typedef struct _ADFH_MTA { @@ -179,6 +191,9 @@ typedef struct _ADFH_MTA { int g_flags; hid_t g_files[ADFH_MAXIMUM_FILES]; + /* tracking and indexing settings for link creation order */ + unsigned int link_create_order; + #ifndef ADFH_FORCE_ID_CLOSE /* object ids returned to API user that should be closed */ hid_t *g_extids[ADFH_MAXIMUM_FILES]; @@ -289,7 +304,7 @@ if (mta_root == NULL){set_error(ADFH_ERR_ROOTNULL, err);return 1;} static herr_t gfind_by_name(hid_t, const char *, const H5L_info_t*, void *); static herr_t find_by_name(hid_t, const char *, const H5A_info_t*, void *); -#if H5_VERSION_GE(1,12,0) +#if ADFH_HDF5_HAVE_112_API #define has_child(ID,NAME) H5Literate2(ID, H5_INDEX_CRT_ORDER, H5_ITER_NATIVE, NULL, gfind_by_name, (void *)NAME) #define has_data(ID) H5Literate2(ID, H5_INDEX_CRT_ORDER, H5_ITER_NATIVE, NULL, gfind_by_name, (void *)D_DATA) #else @@ -366,7 +381,7 @@ static hid_t get_file_id (hid_t id) int token_cmp; /* find the file ID from the root ID */ -#if H5_VERSION_GE(1,12,0) +#if ADFH_HDF5_HAVE_112_API if (H5Oget_info_by_name3(id, "/", &gstat, H5O_INFO_BASIC, H5P_DEFAULT) >=0) { #else if (H5Oget_info_by_name(id, "/", &gstat, H5P_DEFAULT) >=0) { @@ -377,7 +392,7 @@ static hid_t get_file_id (hid_t id) if (objs == NULL) return fid; H5Fget_obj_ids(H5F_OBJ_ALL, H5F_OBJ_FILE, -1, objs); for (n = 0; n < nobj; n++) { -#if H5_VERSION_GE(1,12,0) +#if ADFH_HDF5_HAVE_112_API H5Oget_info_by_name3(objs[n], "/", &rstat, H5O_INFO_BASIC, H5P_DEFAULT); token_cmp = 1; if(gstat.fileno == rstat.fileno){ @@ -1053,7 +1068,7 @@ static herr_t compare_children(hid_t id, const char *name, const H5L_info_t *lin if (*name != D_PREFIX) { pstat = (H5O_info_t *)data; -#if H5_VERSION_GE(1,12,0) +#if ADFH_HDF5_HAVE_112_API if (H5Oget_info_by_name3(id, name, &stat, H5O_INFO_BASIC, H5P_DEFAULT) >= 0){ token_cmp = 1; if(pstat->fileno == stat.fileno){ @@ -1160,7 +1175,7 @@ static hid_t open_link(hid_t id, int *err) } } #ifdef ADFH_DEBUG_ON -#if H5_VERSION_GE(1,12,0) +#if ADFH_HDF5_HAVE_112_API H5Oget_info3(lid, &oinfo, H5O_INFO_BASIC); #else H5Oget_info(lid, &oinfo); @@ -1268,7 +1283,7 @@ static herr_t delete_children(hid_t id, const char *name, const H5L_info_t* linf } else { ADFH_DEBUG(("delete_children loop")); -#if H5_VERSION_GE(1,12,0) +#if ADFH_HDF5_HAVE_112_API if (! is_link(id)) H5Literate_by_name2(id, name, H5_INDEX_CRT_ORDER, H5_ITER_INC, NULL, delete_children, data, H5P_DEFAULT); #else if (! is_link(id)) H5Literate_by_name(id, name, H5_INDEX_CRT_ORDER, H5_ITER_INC, NULL, delete_children, data, H5P_DEFAULT); @@ -1428,7 +1443,7 @@ static herr_t fix_dimensions(hid_t id, const char *name, const H5L_info_t* linfo if (*name != D_PREFIX && (gid = H5Gopen2(id, name, H5P_DEFAULT)) >= 0 && !get_str_att(gid, A_TYPE, type, &err) && strcmp(type, ADFH_LK)) { -#if H5_VERSION_GE(1,12,0) +#if ADFH_HDF5_HAVE_112_API H5Literate2(gid, H5_INDEX_CRT_ORDER, H5_ITER_NATIVE, NULL, fix_dimensions, NULL); #else H5Literate(gid, H5_INDEX_CRT_ORDER, H5_ITER_NATIVE, NULL, fix_dimensions, NULL); @@ -1448,12 +1463,14 @@ static herr_t fix_dimensions(hid_t id, const char *name, const H5L_info_t* linfo void ADFH_Configure(const int option, const void *value, int *err) { if (option == ADFH_CONFIG_RESET && (int)((size_t)value == ADFH_CONFIG_RESET_HDF5)) { - core_vfd = ADFH_CONFIG_DEFAULT; - h5pset_alignment_threshold = ADFH_CONFIG_DEFAULT; - h5pset_alignment_alignment = ADFH_CONFIG_DEFAULT; - h5pset_meta_block_size_size = ADFH_CONFIG_DEFAULT; - h5pset_buffer_size_size = ADFH_CONFIG_DEFAULT; - h5pset_sieve_buf_size_size = ADFH_CONFIG_DEFAULT; + core_vfd = ADFH_CONFIG_DEFAULT; + h5pset_alignment_threshold = ADFH_CONFIG_DEFAULT; + h5pset_alignment_alignment = ADFH_CONFIG_DEFAULT; + h5pset_meta_block_size_size = ADFH_CONFIG_DEFAULT; + h5pset_buffer_size_size = ADFH_CONFIG_DEFAULT; + h5pset_sieve_buf_size_size = ADFH_CONFIG_DEFAULT; + h5pset_elink_file_cache_size_size = ADFH_CONFIG_DEFAULT; + set_error(NO_ERROR, err); return; } @@ -1498,6 +1515,10 @@ void ADFH_Configure(const int option, const void *value, int *err) h5pset_sieve_buf_size_size = (hsize_t)value; set_error(NO_ERROR, err); } + else if (option == ADFH_CONFIG_ELINK_FILE_CACHE_SIZE) { + h5pset_elink_file_cache_size_size = (unsigned)((size_t)value); + set_error(NO_ERROR, err); + } #if CG_BUILD_PARALLEL else if (option == ADFH_CONFIG_MPI_COMM) { MPI_Comm* comm = (MPI_Comm*)value; @@ -1550,7 +1571,7 @@ void ADFH_Move_Child(const double pid, /* check that node is actually child of the parent */ -#if H5_VERSION_GE(1,12,0) +#if ADFH_HDF5_HAVE_112_API if (H5Oget_info_by_name3(hid, ".", &stat, H5O_INFO_BASIC, H5P_DEFAULT) < 0 || !H5Literate2(hpid, H5_INDEX_CRT_ORDER, H5_ITER_NATIVE, NULL, compare_children, (void *)&stat)) { #else @@ -1606,7 +1627,7 @@ void ADFH_Move_Child(const double pid, set_int_att(hid, A_ORDER, new_order, err)) return; /*see if we need to decrement any node _orders under the old parent*/ -#if H5_VERSION_GE(1,12,0) +#if ADFH_HDF5_HAVE_112_API *err = H5Literate2(hpid, H5_INDEX_CRT_ORDER, H5_ITER_INC, NULL, fix_order, (void *)&old_order); #else *err = H5Literate(hpid, H5_INDEX_CRT_ORDER, H5_ITER_INC, NULL, fix_order, (void *)&old_order); @@ -1717,7 +1738,7 @@ void ADFH_Get_Label(const double id, { hid_t hid; char bufflabel[ADF_LABEL_LENGTH+1] = ""; - ADFH_DEBUG((">ADFH_Get_Label [%d]",id)); + ADFH_DEBUG((">ADFH_Get_Label [%f]",id)); if (label == NULL) { set_error(NULL_STRING_POINTER, err); @@ -1792,7 +1813,7 @@ void ADFH_Create(const double pid, new_int_att(gid, A_FLAGS, mta_root->g_flags, err)) return; #else int order = 0; -#if H5_VERSION_GE(1,12,0) +#if ADFH_HDF5_HAVE_112_API H5Literate2(hpid, H5_INDEX_CRT_ORDER, H5_ITER_INC, NULL, count_children, (void *)&order); #else H5Literate(hpid, H5_INDEX_CRT_ORDER, H5_ITER_INC, NULL, count_children, (void *)&order); @@ -1838,7 +1859,7 @@ void ADFH_Delete(const double pid, /* check that node is actually child of the parent */ -#if H5_VERSION_GE(1,12,0) +#if ADFH_HDF5_HAVE_112_API if (H5Oget_info_by_name3(hid, ".", &stat, H5O_INFO_BASIC, H5P_DEFAULT) < 0 || !H5Literate2(hpid, H5_INDEX_CRT_ORDER, H5_ITER_INC, NULL, compare_children, (void *)&stat)){ #else @@ -1862,7 +1883,7 @@ void ADFH_Delete(const double pid, if (! is_link(hid)) { -#if H5_VERSION_GE(1,12,0) +#if ADFH_HDF5_HAVE_112_API H5Literate2(hid, H5_INDEX_CRT_ORDER, H5_ITER_INC, NULL, delete_children, NULL); #else H5Literate(hid, H5_INDEX_CRT_ORDER, H5_ITER_INC, NULL, delete_children, NULL); @@ -1877,7 +1898,7 @@ void ADFH_Delete(const double pid, /* decrement node orders */ #ifndef ADFH_NO_ORDER -#if H5_VERSION_GE(1,12,0) +#if ADFH_HDF5_HAVE_112_API *err = H5Literate2(hpid, H5_INDEX_CRT_ORDER, H5_ITER_INC, NULL, fix_order, (void *)&old_order); #else *err = H5Literate(hpid, H5_INDEX_CRT_ORDER, H5_ITER_INC, NULL, fix_order, (void *)&old_order); @@ -1906,10 +1927,10 @@ void ADFH_Number_of_Children(const double id, *number = 0; if ((hid = open_node(id, err)) >= 0) { -#if H5_VERSION_GE(1,12,0) - H5Literate2(hid, H5_INDEX_CRT_ORDER, H5_ITER_NATIVE, &gskip, count_children, (void *)number); +#if ADFH_HDF5_HAVE_112_API + H5Literate2(hid, mta_root->link_create_order, H5_ITER_NATIVE, &gskip, count_children, (void *)number); #else - H5Literate(hid, H5_INDEX_CRT_ORDER, H5_ITER_NATIVE, &gskip, count_children, (void *)number); + H5Literate(hid, mta_root->link_create_order, H5_ITER_NATIVE, &gskip, count_children, (void *)number); #endif H5Gclose(hid); } @@ -1928,8 +1949,6 @@ void ADFH_Get_Node_ID(const double pid, hid_t sid, hpid; to_HDF_ID(pid,hpid); - ADFH_DEBUG((">ADFH_Get_Node_ID [%s][%d]",name,hpid)); - if (name == NULL) { set_error(NULL_STRING_POINTER, err); return; @@ -1939,6 +1958,8 @@ void ADFH_Get_Node_ID(const double pid, return; } + ADFH_DEBUG((">ADFH_Get_Node_ID [%s][%d]",name,hpid)); + *id = 0; set_error(NO_ERROR, err); if (*name == '/') { @@ -2011,11 +2032,10 @@ void ADFH_Children_Names(const double pid, #ifdef ADFH_NO_ORDER mta_root->i_count = 0; #endif - /*initialize names to null*/ - memset(names, 0, ilen*name_length); + memset(names, 0, (size_t)ilen*(size_t)name_length); if ((hpid = open_node(pid, err)) >= 0) { -#if H5_VERSION_GE(1,12,0) +#if ADFH_HDF5_HAVE_112_API H5Literate2(hpid,H5_INDEX_CRT_ORDER,H5_ITER_INC, NULL,children_names,(void *)names); #else @@ -2024,7 +2044,7 @@ void ADFH_Children_Names(const double pid, #endif if (names[0]==0) { -#if H5_VERSION_GE(1,12,0) +#if ADFH_HDF5_HAVE_112_API H5Literate2(hpid,H5_INDEX_NAME,H5_ITER_INC, NULL,children_names,(void *)names); #else @@ -2065,22 +2085,17 @@ void ADFH_Children_IDs(const double pid, mta_root->i_count = 0; #endif if ((hpid = open_node(pid, err)) >= 0) { -#if H5_VERSION_GE(1,12,0) - H5Literate2(hpid,H5_INDEX_CRT_ORDER,H5_ITER_INC, +#if ADFH_HDF5_HAVE_112_API + H5Literate2(hpid,mta_root->link_create_order,H5_ITER_INC, NULL,children_ids,(void *)IDs); #else - H5Literate(hpid,H5_INDEX_CRT_ORDER,H5_ITER_INC, + H5Literate(hpid,mta_root->link_create_order,H5_ITER_INC, NULL,children_ids,(void *)IDs); #endif if (IDs[0]==-1) { -#if H5_VERSION_GE(1,12,0) - H5Literate2(hpid,H5_INDEX_NAME,H5_ITER_INC, - NULL,children_ids,(void *)IDs); -#else - H5Literate(hpid,H5_INDEX_NAME,H5_ITER_INC, - NULL,children_ids,(void *)IDs); -#endif + set_error(CHILDREN_IDS_NOT_FOUND, err); + return; } H5Gclose(hpid); } @@ -2114,8 +2129,6 @@ void ADFH_Database_Open(const char *name, int i, pos, mode; hid_t g_propfileopen; - ADFH_DEBUG(("ADFH_Database_Open [%s]",name)); - /* to be thread safe, should have critical section here */ if (mta_root==NULL) { @@ -2128,6 +2141,8 @@ void ADFH_Database_Open(const char *name, */ mta_root->g_flags = 1; + mta_root->link_create_order = H5_INDEX_CRT_ORDER; + #ifndef ADFH_DEBUG_ON H5Eset_auto2(H5E_DEFAULT, NULL, NULL); #endif @@ -2156,6 +2171,8 @@ void ADFH_Database_Open(const char *name, return; } + ADFH_DEBUG(("ADFH_Database_Open [%s]",name)); + /* get open mode */ strncpy(buff, stat, 9); @@ -2230,14 +2247,17 @@ void ADFH_Database_Open(const char *name, /* HDF5 tuning parameters */ - /* http://www.hdfgroup.org/HDF5/doc/RM/H5P/H5Pset_meta_block_size.htm - * default setting is 2048 bytes + /* https://docs.hdfgroup.org/hdf5/develop/group___f_a_p_l.html#title72 + * 'Sets the minimum metadata block size.' + * Default setting is 2048 bytes. */ if ( h5pset_meta_block_size_size != ADFH_CONFIG_DEFAULT ) { H5Pset_meta_block_size(g_propfileopen, h5pset_meta_block_size_size); } - /* http://hdfgroup.org/HDF5/doc/RM/H5P/H5Pset_alignment.htm - * attention: this can increase filesize dramatically if lots of small datasets + /* https://docs.hdfgroup.org/hdf5/develop/group___f_a_p_l.html#title41 + * 'Sets alignment properties of a file access property list.' + * Default is no alignment. + * ATTENTION: this can increase filesize dramatically if lots of small datasets */ if ( h5pset_alignment_alignment != ADFH_CONFIG_DEFAULT ) { H5Pset_alignment(g_propfileopen, @@ -2245,42 +2265,36 @@ void ADFH_Database_Open(const char *name, h5pset_alignment_alignment); } - /* http://www.hdfgroup.org/HDF5/doc/RM/H5P/H5Pset_buffer.htm - * 1 MByte is default of hdf5 + /* https://docs.hdfgroup.org/hdf5/develop/group___d_x_p_l.html#title16 + * 'Sets type conversion and background buffers. + * 1 MByte is default. */ if ( h5pset_buffer_size_size != ADFH_CONFIG_DEFAULT ) { void *tconv=NULL; void *bkg=NULL; H5Pset_buffer(g_propfileopen, h5pset_buffer_size_size, tconv, bkg); } - /* http://hdfgroup.org/HDF5/doc/RM/RM_H5P.html#Property-SetSieveBufSize - * '.. used by file drivers that are capable of using data sieving' - * 1 MByte is default of hdf5 + /* https://docs.hdfgroup.org/hdf5/develop/group___f_a_p_l.html#title78 + * 'Used by file drivers that are capable of using data sieving.' + * 1 MByte is default. */ if ( h5pset_sieve_buf_size_size != ADFH_CONFIG_DEFAULT ) { H5Pset_sieve_buf_size(g_propfileopen, h5pset_sieve_buf_size_size); } + /* https://docs.hdfgroup.org/hdf5/develop/group___f_a_p_l.html#title48 + * 'Sets the number of files that can be held open in an external link open file cache.' + * 0 size is default. + */ + if ( h5pset_elink_file_cache_size_size != ADFH_CONFIG_DEFAULT ) { + H5Pset_elink_file_cache_size(g_propfileopen, h5pset_elink_file_cache_size_size); + } + #ifdef ADFH_H5F_CLOSE_STRONG /* set access property to close all open accesses when file closed */ H5Pset_fclose_degree(g_propfileopen, H5F_CLOSE_STRONG); #endif - /* Patch to read file created with CGNS 3.3 and hdf5 > 1.8 */ - if (mode == ADFH_MODE_RDO) { - H5Pset_libver_bounds(g_propfileopen, - H5F_LIBVER_LATEST, H5F_LIBVER_LATEST); - } - else { - /* Compatibility with V1.8 */ - H5Pset_libver_bounds(g_propfileopen, -#if H5_VERSION_GE(1,10,3) - H5F_LIBVER_V18, H5F_LIBVER_V18); -#else - H5F_LIBVER_LATEST, H5F_LIBVER_LATEST); -#endif - } - /* open the file */ #if CG_BUILD_PARALLEL @@ -2314,41 +2328,61 @@ void ADFH_Database_Open(const char *name, set_error(NO_ERROR, err); if (mode == ADFH_MODE_NEW) { + + /* Compatibility with V1.8 */ + H5Pset_libver_bounds(g_propfileopen, +#if ADFH_HDF5_HAVE_110_API + H5F_LIBVER_V18, H5F_LIBVER_V18); +#else + H5F_LIBVER_LATEST, H5F_LIBVER_LATEST); +#endif + hid_t g_propfilecreate = H5Pcreate(H5P_FILE_CREATE); - /* HDF5 tuning parameters */ + /* HDF5 tuning parameters */ - /* http://www.hdfgroup.org/HDF5/doc/RM/H5P/H5Pset_meta_block_size.htm - * default setting is 2048 bytes - */ - if ( h5pset_meta_block_size_size != ADFH_CONFIG_DEFAULT ) { - H5Pset_meta_block_size(g_propfileopen, h5pset_meta_block_size_size); - } + /* https://docs.hdfgroup.org/hdf5/develop/group___f_a_p_l.html#title72 + * 'Sets the minimum metadata block size.' + * Default setting is 2048 bytes. + */ + if ( h5pset_meta_block_size_size != ADFH_CONFIG_DEFAULT ) { + H5Pset_meta_block_size(g_propfileopen, h5pset_meta_block_size_size); + } + /* https://docs.hdfgroup.org/hdf5/develop/group___f_a_p_l.html#title41 + * 'Sets alignment properties of a file access property list.' + * Default is no alignment. + * ATTENTION: this can increase filesize dramatically if lots of small datasets + */ + if ( h5pset_alignment_alignment != ADFH_CONFIG_DEFAULT ) { + H5Pset_alignment(g_propfileopen, + h5pset_alignment_threshold, + h5pset_alignment_alignment); + } - /* http://hdfgroup.org/HDF5/doc/RM/H5P/H5Pset_alignment.htm - * attention: this can increase filesize dramatically if lots of small datasets - */ - if ( h5pset_alignment_alignment != ADFH_CONFIG_DEFAULT ) { - H5Pset_alignment(g_propfileopen, - h5pset_alignment_threshold, - h5pset_alignment_alignment); - } + /* https://docs.hdfgroup.org/hdf5/develop/group___d_x_p_l.html#title16 + * 'Sets type conversion and background buffers. + * 1 MByte is default. + */ + if ( h5pset_buffer_size_size != ADFH_CONFIG_DEFAULT ) { + void *tconv=NULL; void *bkg=NULL; + H5Pset_buffer(g_propfileopen, h5pset_buffer_size_size, tconv, bkg); + } - /* http://www.hdfgroup.org/HDF5/doc/RM/H5P/H5Pset_buffer.htm - * 1 MByte is default of hdf5 - */ - if ( h5pset_buffer_size_size != ADFH_CONFIG_DEFAULT) { - void *tconv=NULL; void *bkg=NULL; - H5Pset_buffer(g_propfileopen, h5pset_buffer_size_size, tconv, bkg); - } + /* https://docs.hdfgroup.org/hdf5/develop/group___f_a_p_l.html#title78 + * 'Used by file drivers that are capable of using data sieving.' + * 1 MByte is default. + */ + if ( h5pset_sieve_buf_size_size != ADFH_CONFIG_DEFAULT ) { + H5Pset_sieve_buf_size(g_propfileopen, h5pset_sieve_buf_size_size); + } - /* http://hdfgroup.org/HDF5/doc/RM/RM_H5P.html#Property-SetSieveBufSize - * '.. used by file drivers that are capable of using data sieving' - * 1 MByte is default of hdf5 - */ - if ( h5pset_sieve_buf_size_size != ADFH_CONFIG_DEFAULT) { - H5Pset_sieve_buf_size(g_propfileopen, h5pset_sieve_buf_size_size); - } + /* https://docs.hdfgroup.org/hdf5/develop/group___f_a_p_l.html#title48 + * 'Sets the number of files that can be held open in an external link open file cache.' + * 0 size is default. + */ + if ( h5pset_elink_file_cache_size_size != ADFH_CONFIG_DEFAULT ) { + H5Pset_elink_file_cache_size(g_propfileopen, h5pset_elink_file_cache_size_size); + } #if 0 /* MSB -- DISABLED as it is not compatible with HDF5 1.8 file format, need to resolve this CGNS-166 */ #if HDF5_HAVE_FILE_SPACE_STRATEGY @@ -2360,6 +2394,7 @@ void ADFH_Database_Open(const char *name, (prop set to file creation )*/ H5Pset_link_creation_order(g_propfilecreate, H5P_CRT_ORDER_TRACKED | H5P_CRT_ORDER_INDEXED); + fid = H5Fcreate(name, H5F_ACC_TRUNC, g_propfilecreate, g_propfileopen); H5Pclose(g_propfilecreate); H5Pclose(g_propfileopen); @@ -2381,7 +2416,7 @@ void ADFH_Database_Open(const char *name, } } else { -#if H5_VERSION_GE(1,12,0) +#if ADFH_HDF5_HAVE_112_API if (H5Fis_accessible(name, H5P_DEFAULT) <= 0) { #else if (H5Fis_hdf5(name) <= 0) { @@ -2390,29 +2425,80 @@ void ADFH_Database_Open(const char *name, set_error(ADFH_ERR_NOT_HDF5_FILE, err); return; } + #if CG_BUILD_PARALLEL #if HDF5_HAVE_COLL_METADATA H5Pset_all_coll_metadata_ops( g_propfileopen, 1 ); #endif #endif if (mode == ADFH_MODE_RDO) { + /* Patch to read file created with CGNS 3.3 and hdf5 > 1.8 */ + H5Pset_libver_bounds(g_propfileopen, + H5F_LIBVER_LATEST, H5F_LIBVER_LATEST); fid = H5Fopen(name, H5F_ACC_RDONLY, g_propfileopen); } else { + +#if !ADFH_HDF5_HAVE_110_API + H5Pset_libver_bounds(g_propfileopen, + H5F_LIBVER_LATEST, H5F_LIBVER_LATEST); +#endif + fid = H5Fopen(name, H5F_ACC_RDWR, g_propfileopen); + +#if ADFH_HDF5_HAVE_110_API + hid_t access_fapl = H5Fget_access_plist(fid); + + H5F_libver_t low, high; /* File format bounds */ + H5Pget_libver_bounds(access_fapl, &low, &high); + + if(low > H5F_LIBVER_V18) { + /* NOTE: HDF5 can not downgrade to a lower version bound (which can be done with h5repack), so + the best that can be done is not to use a version higher than the lower bound. */ + H5Fset_libver_bounds(fid, low, low); + } else { + H5Fset_libver_bounds(fid, H5F_LIBVER_V18, H5F_LIBVER_V18); + } + + H5Pclose(access_fapl); +#endif + } H5Pclose(g_propfileopen); if (fid < 0) { set_error(FILE_OPEN_ERROR, err); return; } + + /* + NOTE: Creation order was set by default in CGNS 3.1.3, so a + CGNS file created by earlier versions will not have this set. + Therefore, it should not be automatically assumed to be set in + H5Literate. + */ + gid = H5Gopen2(fid, "/", H5P_DEFAULT); + + /* Obtain the group creation flags and check for link creation ordering. */ + { + hid_t pid; + unsigned int crt_order_flags; + pid = H5Gget_create_plist(gid); + H5Pget_link_creation_order(pid, &crt_order_flags); + if (crt_order_flags == 0) { + mta_root->link_create_order = H5_INDEX_NAME; + } else { + mta_root->link_create_order = H5_INDEX_CRT_ORDER; + } + H5Pclose(pid); + } + #ifdef ADFH_FORTRAN_INDEXING if (mode != ADFH_MODE_RDO && child_exists(gid, D_OLDVERS)) { -#if H5_VERSION_GE(1,12,0) - H5Literate2(gid, H5_INDEX_CRT_ORDER, H5_ITER_INC, NULL, fix_dimensions, NULL); +#if ADFH_HDF5_HAVE_112_API + H5Literate2(gid, mta_root->link_create_order, H5_ITER_INC, NULL, fix_dimensions, NULL); #else - H5Literate(gid, H5_INDEX_CRT_ORDER, H5_ITER_INC, NULL, fix_dimensions, NULL); + H5Literate(gid, mta_root->link_create_order, H5_ITER_INC, NULL, fix_dimensions, NULL); #endif H5Lmove(gid, D_OLDVERS, gid, D_VERSION, H5P_DEFAULT, H5P_DEFAULT); } @@ -2437,7 +2523,7 @@ void ADFH_Database_Valid(const char *name, if (NULL == name || 0 == *name) *err = NULL_STRING_POINTER; else -#if H5_VERSION_GE(1,12,0) +#if ADFH_HDF5_HAVE_112_API *err = H5Fis_accessible(name, H5P_DEFAULT); #else *err = H5Fis_hdf5(name); @@ -2510,7 +2596,7 @@ void ADFH_Database_Delete(const char *name, { ADFH_DEBUG(("ADFH_Database_Delete [%s]",name)); -#if H5_VERSION_GE(1,12,0) +#if ADFH_HDF5_HAVE_112_API if (H5Fis_accessible(name, H5P_DEFAULT) <=0) #else if (H5Fis_hdf5(name) <= 0) @@ -2572,7 +2658,7 @@ void ADFH_Database_Close(const double root, nobj = H5Fget_obj_count(fid, H5F_OBJ_DATATYPE|H5F_OBJ_LOCAL); #ifdef ADFH_DEBUG_ON - printf("%s close DataType [%d] HIDs\n",ADFH_PREFIX,nobj); + printf("%s close DataType [%zd] HIDs\n",ADFH_PREFIX,nobj); #endif if (nobj) { H5Fget_obj_ids(fid, H5F_OBJ_DATATYPE|H5F_OBJ_LOCAL, -1, objs); @@ -2584,7 +2670,7 @@ void ADFH_Database_Close(const double root, nobj = H5Fget_obj_count(fid, H5F_OBJ_DATASET|H5F_OBJ_LOCAL); #ifdef ADFH_DEBUG_ON - printf("%s close DataSet [%d] HIDs\n",ADFH_PREFIX,nobj); + printf("%s close DataSet [%zd] HIDs\n",ADFH_PREFIX,nobj); #endif if (nobj) { H5Fget_obj_ids(fid, H5F_OBJ_DATASET|H5F_OBJ_LOCAL, -1, objs); @@ -2596,7 +2682,7 @@ void ADFH_Database_Close(const double root, nobj = H5Fget_obj_count(fid, H5F_OBJ_ATTR|H5F_OBJ_LOCAL); #ifdef ADFH_DEBUG_ON - printf("%s close Attr [%d] HIDs\n",ADFH_PREFIX,nobj); + printf("%s close Attr [%zd] HIDs\n",ADFH_PREFIX,nobj); #endif if (nobj) { H5Fget_obj_ids(fid, H5F_OBJ_ATTR|H5F_OBJ_LOCAL, -1, objs); @@ -2608,7 +2694,7 @@ void ADFH_Database_Close(const double root, nobj = H5Fget_obj_count(fid, H5F_OBJ_GROUP|H5F_OBJ_LOCAL); #ifdef ADFH_DEBUG_ON - printf("%s close Group [%d] HIDs\n",ADFH_PREFIX,nobj); + printf("%s close Group [%zd] HIDs\n",ADFH_PREFIX,nobj); #endif if (nobj) { H5Fget_obj_ids(fid, H5F_OBJ_GROUP|H5F_OBJ_LOCAL, -1, objs); @@ -3229,7 +3315,7 @@ void ADFH_Library_Version(char *version, return; } H5get_libversion(&maj, &min, &rel); - sprintf(version, "HDF5 Version %d.%d.%d", maj, min, rel); + sprintf(version, "HDF5 Version %u.%u.%u", maj, min, rel); set_error(NO_ERROR, err); } diff --git a/externals/cgns/adfh/ADFH.h b/externals/cgns/adfh/ADFH.h index 2dbd200f33b..d2a07d03b8f 100644 --- a/externals/cgns/adfh/ADFH.h +++ b/externals/cgns/adfh/ADFH.h @@ -117,6 +117,7 @@ #define NULL_NODEID_POINTER 62 #define MAX_FILE_SIZE_EXCEEDED 63 #define MAX_INT32_SIZE_EXCEEDED 64 +#define CHILDREN_IDS_NOT_FOUND 65 #endif /* ADF_INCLUDE */ @@ -175,7 +176,8 @@ #define ADFH_CONFIG_ALIGNMENT 6 #define ADFH_CONFIG_MD_BLOCK_SIZE 7 #define ADFH_CONFIG_HDF5_BUFFER 8 -#define ADFH_CONFIG_HDF5_SIEVE_BUF_SIZE 9 +#define ADFH_CONFIG_HDF5_SIEVE_BUF_SIZE 9 +#define ADFH_CONFIG_ELINK_FILE_CACHE_SIZE 10 #define ADFH_CONFIG_RESET 800 #define ADFH_CONFIG_RESET_HDF5 1 diff --git a/externals/cgns/cg_hashmap.c b/externals/cgns/cg_hashmap.c index 5b47a7978ba..ade13c4dca3 100644 --- a/externals/cgns/cg_hashmap.c +++ b/externals/cgns/cg_hashmap.c @@ -204,10 +204,17 @@ cgi_estimate_keysize(map_ssize_t n) */ #define GROWTH_RATE(d) ((d)->ma_used*2) +/* Dirty trick for unsupported flexible array init */ +struct _static_hashmapobject { + map_ssize_t table_size; + map_ssize_t map_usable; + map_ssize_t map_nentries; + char map_indices[8]; /* we define the size of the array to have a known struct at compile time */ +}; /* This immutable, empty cgns_hashmap_keyobject is used for HashMap_Clear() * (which cannot fail and thus can do no allocation). */ -static cgns_hashmap_keyobject empty_keys_struct = { +static struct _static_hashmapobject empty_keys_struct = { 1, /* table_size */ 0, /* map_usable (immutable) */ 0, /* map_nentries */ @@ -215,7 +222,7 @@ static cgns_hashmap_keyobject empty_keys_struct = { MAPIX_EMPTY, MAPIX_EMPTY, MAPIX_EMPTY, MAPIX_EMPTY}, /* map_indices */ }; -#define MAP_EMPTY_KEYS &empty_keys_struct +#define MAP_EMPTY_KEYS (cgns_hashmap_keyobject *)&empty_keys_struct static cgns_hashmap_keyobject* cgi_new_keys_object(map_ssize_t size) diff --git a/externals/cgns/cgns_error.c b/externals/cgns/cgns_error.c index e5d01d5e632..232a978f6fc 100644 --- a/externals/cgns/cgns_error.c +++ b/externals/cgns/cgns_error.c @@ -32,7 +32,7 @@ char cgns_error_mess[200] = "no CGNS error reported"; CGNSDLL void cgi_error(const char *format, ...) { va_list arg; va_start(arg, format); - vsprintf(cgns_error_mess,format, arg); + vsnprintf(cgns_error_mess, 200, format, arg); va_end(arg); if (cgns_error_handler) (*cgns_error_handler)(1, cgns_error_mess); @@ -43,7 +43,7 @@ CGNSDLL void cgi_warning(const char *format, ...) { va_start(arg, format); if (cgns_error_handler) { char warning_msg[200]; - vsprintf(warning_msg, format, arg); + vsnprintf(warning_msg, 200, format, arg); (*cgns_error_handler)(0, warning_msg); } else { diff --git a/externals/cgns/cgns_header.h b/externals/cgns/cgns_header.h index 140321b6b14..46e4b5e883c 100644 --- a/externals/cgns/cgns_header.h +++ b/externals/cgns/cgns_header.h @@ -1034,8 +1034,8 @@ CGNSDLL cgns_subreg *cgi_get_subreg (cgns_file *cg, int B, int Z, int S); CGNSDLL int cgi_update_posit(int cnt, int *index, char **label); CGNSDLL int cgi_set_posit(int fn, int B, int n, int *index, char **label); CGNSDLL int cgi_posit_id(double *posit_id); -CGNSDLL cgns_posit *cgi_get_posit(); -CGNSDLL int cgi_posit_index_dim(); +CGNSDLL cgns_posit *cgi_get_posit(void); +CGNSDLL int cgi_posit_index_dim(void); /* retrieve memory address of multiple patch children knowing their parent label (posit_label) and their parent memory address (posit) */ @@ -1067,7 +1067,7 @@ cgns_dataset * cgi_bcdataset_address(int local_mode, int given_no, char const *given_name, int *ier); /* read CGNS file into internal database */ -int cgi_read(); +int cgi_read(void); int cgi_read_base(cgns_base *base); int cgi_read_zone(cgns_zone *zone); int cgi_read_zonetype(double parent_id, char_33 parent_name, CGNS_ENUMT(ZoneType_t) *type); @@ -1157,7 +1157,7 @@ int cgi_write_zboco(double parent_id, cgns_zboco *zboco); int cgi_write_boco(double parent_id, cgns_boco *boco); int cgi_write_dataset(double parent_id, const char *label, cgns_dataset *dataset); int cgi_write_bcdata(double bcdata_id, cgns_bcdata *bcdata); -int cgi_write_ptset(double id, char_33 name, cgns_ptset *ptset, +int cgi_write_ptset(double id, char *name, cgns_ptset *ptset, int ndim, void *ptset_ptr); int cgi_write_equations(double parent_id, cgns_equations *equations); int cgi_write_model(double parent_id, cgns_model *model); @@ -1261,7 +1261,7 @@ int cgi_check_strlen(char const * string); int cgi_check_strlen_x2(char const *string); int cgi_check_mode(char const * filename, int file_mode, int mode_wanted); const char *cgi_adf_datatype(CGNS_ENUMT(DataType_t) type); -CGNSDLL CGNS_ENUMT(DataType_t) cgi_datatype(cchar_33 adf_type); +CGNSDLL CGNS_ENUMT(DataType_t) cgi_datatype(const char *adf_type); int cgi_check_dimensions(int ndims, cglong_t *dims); int cgi_check_location(int dim, CGNS_ENUMT(ZoneType_t) type, CGNS_ENUMT(GridLocation_t) loc); diff --git a/externals/cgns/cgns_internals.c b/externals/cgns/cgns_internals.c index 1077afd3bb8..0fd77e829bd 100644 --- a/externals/cgns/cgns_internals.c +++ b/externals/cgns/cgns_internals.c @@ -2126,7 +2126,7 @@ int cgi_read_conn(cgns_conn *conn) /* check */ if (cg->filetype == CGIO_FILE_ADF || cg->filetype == CGIO_FILE_ADF2) { if (conn->ptset.id==0) { - cgi_error("Niether PointRange nor PointList defined for GridConnectivity_t '%s'", + cgi_error("Neither PointRange nor PointList defined for GridConnectivity_t '%s'", conn->name); return CG_ERROR; } @@ -2136,7 +2136,7 @@ int cgi_read_conn(cgns_conn *conn) hid_t hid; to_HDF_ID(conn->ptset.id, hid); if (hid==0) { - cgi_error("Niether PointRange nor PointList defined for GridConnectivity_t '%s'", + cgi_error("Neither PointRange nor PointList defined for GridConnectivity_t '%s'", conn->name); return CG_ERROR; } @@ -8282,12 +8282,13 @@ int cgi_write_bcdata(double bcdata_id, cgns_bcdata *bcdata) return CG_OK; } -int cgi_write_ptset(double parent_id, char_33 name, cgns_ptset *ptset, +int cgi_write_ptset(double parent_id, char *name, cgns_ptset *ptset, int ndim, void *ptset_ptr) { cgsize_t dim_vals[12]; int num_dim; char_33 label; + int HDF5storage_type_original = HDF5storage_type; if (ptset->link) { return cgi_write_link(parent_id, name, ptset->link, &ptset->id); @@ -8305,10 +8306,19 @@ int cgi_write_ptset(double parent_id, char_33 name, cgns_ptset *ptset, dim_vals[1]=ptset->npts; num_dim = 2; + // PointLists should be contiguous for parallel reading/writing + if (ptset->type == CGNS_ENUMV(PointList) || + ptset->type == CGNS_ENUMV(PointListDonor) || + ptset->type == CGNS_ENUMV(ElementList) || + ptset->type == CGNS_ENUMV(CellListDonor)) { + HDF5storage_type = CG_CONTIGUOUS; + } + /* Create the node */ if (cgi_new_node(parent_id, name, label, &ptset->id, ptset->data_type, num_dim, dim_vals, ptset_ptr)) return CG_ERROR; + HDF5storage_type = HDF5storage_type_original; return CG_OK; } @@ -9945,15 +9955,15 @@ const char *cgi_adf_datatype(CGNS_ENUMV(DataType_t) type) return "NULL"; } -CGNS_ENUMT(DataType_t) cgi_datatype(cchar_33 adf_type) +CGNS_ENUMT(DataType_t) cgi_datatype(char const *adf_type) { - if (strcmp(adf_type, "I4") == 0) return CGNS_ENUMV(Integer); - if (strcmp(adf_type, "I8") == 0) return CGNS_ENUMV(LongInteger); - if (strcmp(adf_type, "R4") == 0) return CGNS_ENUMV(RealSingle); - if (strcmp(adf_type, "R8") == 0) return CGNS_ENUMV(RealDouble); - if (strcmp(adf_type, "C1") == 0) return CGNS_ENUMV(Character); - if (strcmp(adf_type, "X4") == 0) return CGNS_ENUMV(ComplexSingle); - if (strcmp(adf_type, "X8") == 0) return CGNS_ENUMV(ComplexDouble); + if (strncmp(adf_type, "I4", 33) == 0) return CGNS_ENUMV(Integer); + if (strncmp(adf_type, "I8", 33) == 0) return CGNS_ENUMV(LongInteger); + if (strncmp(adf_type, "R4", 33) == 0) return CGNS_ENUMV(RealSingle); + if (strncmp(adf_type, "R8", 33) == 0) return CGNS_ENUMV(RealDouble); + if (strncmp(adf_type, "C1", 33) == 0) return CGNS_ENUMV(Character); + if (strncmp(adf_type, "X4", 33) == 0) return CGNS_ENUMV(ComplexSingle); + if (strncmp(adf_type, "X8", 33) == 0) return CGNS_ENUMV(ComplexDouble); return CGNS_ENUMV(DataTypeNull); } @@ -11421,6 +11431,13 @@ static int cgi_next_posit(char *label, int index, char *name) label, index + 1, b->user_data[index].id); } } + else if (0 == strcmp (label, "IndexArray_t")) { + if (b->ptset && + (index == 1 || 0 == strcmp (b->ptset->name, name))) { + return cgi_add_posit((void *)b->ptset, + label, 1, b->ptset->id); + } + } else return CG_INCORRECT_PATH; } diff --git a/externals/cgns/cgns_io.h b/externals/cgns/cgns_io.h index e62c0d185e1..d9d49a8aa02 100644 --- a/externals/cgns/cgns_io.h +++ b/externals/cgns/cgns_io.h @@ -121,7 +121,7 @@ CGEXTERN int cgio_configure ( void *value ); -CGEXTERN void cgio_cleanup (); +CGEXTERN void cgio_cleanup (void); CGEXTERN int cgio_check_file ( const char *filename, diff --git a/externals/cgns/cgnslib.c b/externals/cgns/cgnslib.c index 387d0e3de75..6aa344c5e91 100644 --- a/externals/cgns/cgnslib.c +++ b/externals/cgns/cgnslib.c @@ -22,6 +22,64 @@ freely, subject to the following restrictions: * Revisions: * ***********************************************************************/ +/** + * \defgroup AccessingANode Accessing a node + * \defgroup ArbitraryGridMotion Arbitrary Grid Motion + * \defgroup AuxiliaryModel Auxiliary Model + * \defgroup Axisymmetry Axisymmetry + * \defgroup BCData Boundary Condition Data + * \defgroup BCDataset Boundary Condition Datasets + * \defgroup BaseIterativeData Base Iterative Data + * \defgroup BoundaryConditionDatasets Boundary Condition Datasets + * \defgroup BoundaryConditionType Boundary Condition Type and Location + * \defgroup CGNSBaseInformation CGNS Base Information + * \defgroup CGNSFamilyBoundaryDefinition Family Boundary Condition + * \defgroup CGNSFamilyDefinition Family Definition + * \defgroup CGNSFamilyHierarchyTreeDefinition Family Hierarchy Tree + * \defgroup CGNSFile File Operations + * \defgroup CGNSGeometryReference Geometry Reference + * \defgroup CGNSInterfaceCGIO Interfacing with CGIO + * \defgroup CGNSInternals Configuring CGNS Internals + * \defgroup CGNSZoneInformation CGNS Zone Information + * \defgroup ConvergenceHistory Convergence History + * \defgroup DataArrays Data Arrays + * \defgroup DataClass Data Class + * \defgroup DataConversionFactors Data Conversion Factors + * \defgroup DeletingANode Deleting a node + * \defgroup DescriptiveText Descriptive Text + * \defgroup DimensionalExponents Dimensional Exponents + * \defgroup DimensionalUnits Dimensional Units + * \defgroup DiscreteData Discrete Data + * \defgroup ElementConnectivity Element Connectivity + * \defgroup FamilyName Family Name + * \defgroup FlowEquationSet Flow Equation Set + * \defgroup FlowSolution Flow Solution + * \defgroup FlowSolutionData Flow Solution Data + * \defgroup FreeingMemory Freeing Memory + * \defgroup GeneralizedConnectivity Generalized Connectivity + * \defgroup GoverningEquations Governing Equations + * \defgroup Gravity Gravity + * \defgroup GridLocation Grid Location + * \defgroup IntegralData Integral Data + * \defgroup Links Links + * \defgroup OneToOneConnectivity One-to-One Connectivity + * \defgroup OrdinalValue Ordinal Value + * \defgroup OversetHoles Overset Holes + * \defgroup PointSets Point Sets + * \defgroup ReferenceState Reference State + * \defgroup RigidGridMotion Rigid Grid Motion + * \defgroup RindLayers Rind Layers + * \defgroup RotatingCoordinates Rotating Coordinates + * \defgroup SimulationType Simulation Type + * \defgroup SpecialBoundaryConditionProperty Special Boundary Condition Property + * \defgroup SpecialGridConnectivityProperty Special Grid Connectivity Property + * \defgroup UserDefinedData User Defined Data + * \defgroup ZoneGridConnectivity Zone Grid Connectivity + * \defgroup ZoneGridCoordinates Zone Grid Coordinates + * \defgroup ZoneIterativeData Zone Iterative Data + * \defgroup ZoneSubregions Zone Subregions + * + **/ #include #include @@ -259,7 +317,7 @@ const char * AverageInterfaceTypeName[NofValidAverageInterfaceTypes] = int n_open = 0; int cgns_file_size = 0; int file_number_offset = 0; -int VersionList[] = {4200, +int VersionList[] = {4500, 4400, 4300, 4200, 4110, 4100, 4000, 3210, 3200, 3140, 3130, 3110, 3100, @@ -317,7 +375,21 @@ void objlist_status(char *tag) * library functions ***********************************************************************/ -/* check for a valid CGNS file */ + +/** + * \ingroup CGNSFile + * + * \brief Check for a valid CGNS file. + * + * \param[in] filename \FILE_filename + * \param[in] file_type \FILE_file_type + * \return \ier + * + * \details For existing files, the function /e cg_is_cgns may be used to determine if a file is a CGNS file or not, and + * the type of file (\p CG_FILE_ADF or \p CG_FILE_HDF5). If the file is a CGNS file, \e cg_is_cgns returns \p CG_OK, + * otherwise \p CG_ERROR is returned and file_type is set to \p CG_FILE_NONE. + * + */ int cg_is_cgns(const char *filename, int *file_type) { @@ -334,12 +406,42 @@ int cg_is_cgns(const char *filename, int *file_type) return ierr ? CG_ERROR : CG_OK; } -/*********************************************************************** - * cg_open(char *filename, int mode, int *file_number) +/** + * \ingroup CGNSFile * - ***********************************************************************/ + * \brief Open a CGNS file. + * + * \param[in] filename \FILE_filename + * \param[in] mode \FILE_mode + * \param[out] fn \FILE_fn + * \return \ier + * + * \details The function \e cg_open must always be the first one called. It opens a CGNS file for reading and/or writing and returns + * an index number \e file_number. + * The index number serves to identify the CGNS file in subsequent function calls. Several CGNS files can be opened simultaneously. The current + * limit on the number of files opened at once depends on the platform. On an SGI workstation, this limit is set at 100 (parameter FOPEN_MAX in stdio.h). + * The file can be opened in one of the following modes: + * + *| | | + *|---|---| + *|__CG_MODE_READ__ | Read only mode. | + *|__CG_MODE_WRITE__| Write only mode. | + *|__CG_MODE_MODIFY__| Reading and/or writing is allowed.| + * + * When the file is opened, if no \e CGNSLibraryVersion_t node is found, a default value of 1.05 is assumed for the CGNS version number. Note that this + * corresponds to an old version of the CGNS standard, that doesn't include many data structures supported by the current standard. + * + * In order to reduce memory usage and improve execution speed, large arrays such as grid coordinates or flow solutions are not actually + * stored in memory. Instead, only basic information about the node is kept, while reads and writes of the data is directly to and from + * the application's memory. An attempt is also made to do the same with unstructured mesh element data. + * + * \note CGNS maintains one-way forward compatibility insofar as any file open and modified by, for example, version major.minor.patch + * will be readable with major.minor.patch< b>+< /b>. It can't be guaranteed the reverse major.minor.patch< b>-< /b> + * compatibility for that file will be true. + * + */ -int cg_open(const char *filename, int mode, int *file_number) +int cg_open(const char *filename, int mode, int *fn) { int cgio, filetype; cgsize_t dim_vals; @@ -385,7 +487,7 @@ int cg_open(const char *filename, int mode, int *file_number) } cg = &(cgns_files[n_cgns_files]); n_cgns_files++; - (*file_number) = n_cgns_files + file_number_offset; + (*fn) = n_cgns_files + file_number_offset; if (cgio_get_file_type(cgio, &filetype)) { cg_io_error("cgio_get_file_type"); @@ -399,7 +501,7 @@ int cg_open(const char *filename, int mode, int *file_number) cg->filetype = filetype; cg->cgio = cgio; cgio_get_root_id(cgio, &cg->rootid); - cg->file_number = (*file_number); + cg->file_number = (*fn); cg->version = 0; cg->deleted = 0; cg->added = 0; @@ -434,7 +536,7 @@ int cg_open(const char *filename, int mode, int *file_number) /* This code allows reading version newer than the lib, as long as the 1st digit of the versions are equal */ if ((cg->version / 1000) > (CGNSLibVersion / 1000)) { - cgi_error("The file %s was written with a more recent version of the CGNS library. You must update your CGNS library before trying to read this file.",filename); + cgi_error("A more recent version of the CGNS library created the file. Therefore, the CGNS library needs updating before reading the file '%s'.",filename); return CG_ERROR; } /* warn only if different in second digit */ @@ -511,17 +613,30 @@ int cg_open(const char *filename, int mode, int *file_number) return CG_OK; } -int cg_version(int file_number, float *FileVersion) +/** + * \ingroup CGNSFile + * + * \brief Get CGNS file version. + * + * \param[in] fn \FILE_fn + * \param[out] version \FILE_version + * \return \ier + * + * \details The function \e cg_version returns the CGNS version number. + * + */ + +int cg_version(int fn, float *version) { int nnod; double *id; - cg = cgi_get_file(file_number); + cg = cgi_get_file(fn); if (cg == 0) return CG_ERROR; /* if open in CG_MODE_WRITE */ if (cg->version) { - (*FileVersion)=(float)(cg->version)/1000; + (*version)=(float)(cg->version)/1000; return CG_OK; } @@ -531,7 +646,7 @@ int cg_version(int file_number, float *FileVersion) return CG_ERROR; if (nnod==0) { cg->version=3200; - *FileVersion= (float) 3.20; + *version= (float) 3.20; } else if (nnod!=1) { cgi_error("More then one CGNSLibraryVersion_t node found under ROOT."); return CG_ERROR; @@ -558,9 +673,9 @@ int cg_version(int file_number, float *FileVersion) return CG_ERROR; } /* save data */ - *FileVersion = *((float *)data); + *version = *((float *)data); free(data); - cg->version = (int)(1000.0*(*FileVersion)+0.5); + cg->version = (int)(1000.0*(*version)+0.5); /* To prevent round off error in version number for file of older or current version */ temp_version = cg->version; @@ -580,20 +695,32 @@ int cg_version(int file_number, float *FileVersion) free(id); } #if DEBUG_VERSION - printf("FileVersion=%f\n",*FileVersion); + printf("version=%f\n",*version); printf("cg->version=%d\n",cg->version); #endif return CG_OK; } +/** + * \ingroup CGNSFile + * + * \brief Get CGNS file precision. + * + * \param[in] fn \FILE_fn + * \param[out] precision \FILE_precision + * \return \ier + * + * \details Precision used to write the CGNS file. The \e precision value will be one of 32 (32-bit), 64 (64-bit), or 0 if not known. + * + */ -int cg_precision(int file_number, int *precision) +int cg_precision(int fn, int *precision) { int nb, nz; char_33 data_type; *precision = 0; - cg = cgi_get_file(file_number); + cg = cgi_get_file(fn); if (cg == 0) return CG_ERROR; /* if open in CG_MODE_WRITE */ @@ -615,10 +742,24 @@ int cg_precision(int file_number, int *precision) return CG_OK; } -int cg_close(int file_number) +/** + * \ingroup CGNSFile + * + * \brief Close a CGNS file. + * + * \param[in] fn \FILE_fn + * \return \ier + * + * \details The function \e cg_close must always be the last one called. It closes the CGNS file designated by the index number \e fn + * and frees the memory where the CGNS data was kept. When a file is opened for writing, \e cg_close writes all the CGNS data in + * memory onto disk prior to closing the file. Consequently, if is omitted, the CGNS file is not written properly. + * + */ + +int cg_close(int fn) { - cg = cgi_get_file(file_number); + cg = cgi_get_file(fn); if (cg == 0) return CG_ERROR; #ifdef __CG_MALLOC_H__ @@ -667,12 +808,31 @@ int cg_close(int file_number) return CG_OK; } -int cg_save_as(int file_number, const char *filename, int file_type, +/** + * \ingroup CGNSFile + * + * \brief Save the open CGNS file. + * + * \param[in] fn \FILE_fn + * \param[in] filename \FILE_filename + * \param[in] file_type \FILE_file_type + * \param[in] follow_links \FILE_follow_links + * \return \ier + * + * \details The CGNS file identified by \e fn may be saved to a different filename and type using cg_save_as(). + * In order to save as an HDF5 file, the library must have been built with HDF5 support. ADF support is always built. + * The function cg_set_file_type() sets the default file type for newly created CGNS files. The function + * cg_get_file_type() returns the file type for the CGNS file identified by \e fn. If the CGNS library is built + * as 32-bit, the additional file type, \p CG_FILE_ADF2, is available. This allows creation of a 2.5 compatible CGNS file. + * + */ + +int cg_save_as(int fn, const char *filename, int file_type, int follow_links) { int output; - cg = cgi_get_file(file_number); + cg = cgi_get_file(fn); if (cg == 0) return CG_ERROR; if (file_type == CG_FILE_NONE) @@ -695,6 +855,22 @@ int cg_save_as(int file_number, const char *filename, int file_type, } return CG_OK; } +/** + * \ingroup CGNSFile + * + * \brief Set default file type. + * + * \param[in] file_type \FILE_file_type + * \return \ier + * + * \details When a CGNS file is newly created using \p CG_MODE_WRITE, the default type of database manager used is determined + * at compile time. If the CGNS library was built with HDF5 version 1.8 or later support, the file type will be \p CG_FILE_HDF5, + * otherwise \p CG_FILE_ADF is used. This may be changed either by setting an environment variable, \p CGNS_FILETYPE, to one + * of \e adf, \e hdf5, or \e adf2, or by calling the routine cg_set_file_type() prior to the cg_open() call. Calling + * cg_set_file_type() with the argument \p CG_FILE_NONE will reset the library to use the default file type. + * \b Note: If the environment variable \p CGNS_FILETYPE is set, it takes precedence. + * + */ int cg_set_file_type(int file_type) { @@ -734,9 +910,22 @@ int cg_set_file_type(int file_type) return CG_OK; } -int cg_get_file_type(int file_number, int *file_type) +/** + * \ingroup CGNSFile + * + * \brief Get file type for open CGNS file. + * + * \param[in] fn \FILE_fn + * \param[out] file_type \FILE_file_type + * \return \ier + * + * \details The function \p cg_get_file_type gets the file type (\e adf, \e hdf5, or \e adf2) for an open CGNS file. + * + */ + +int cg_get_file_type(int fn, int *file_type) { - cg = cgi_get_file(file_number); + cg = cgi_get_file(fn); if (cg == 0) return CG_ERROR; if (cgio_get_file_type(cg->cgio, file_type)) { cg_io_error("cgio_get_file_type"); @@ -745,58 +934,115 @@ int cg_get_file_type(int file_number, int *file_type) return CG_OK; } -int cg_root_id(int file_number, double *root_id) +/** + * \ingroup CGNSInterfaceCGIO + * + * \brief Get the CGIO root node identifier for the CGNS file. + * + * \param[in] fn \FILE_fn + * \param[out] rootid Root node identifier for the CGNS file + * \return \ier + * + * \details The function \p cg_root_id allow the use of the low-level CGIO function + * in conjunction with the Mid Level Library. It returns the root node identifier for the CGNS file. + * + */ +int cg_root_id(int fn, double *rootid) { - cg = cgi_get_file(file_number); + cg = cgi_get_file(fn); if (cg == 0) return CG_ERROR; - if (cgio_get_root_id(cg->cgio, root_id)) { + if (cgio_get_root_id(cg->cgio, rootid)) { cg_io_error("cgio_get_root_id"); return CG_ERROR; } return CG_OK; } -int cg_get_cgio(int file_number, int *cgio_num) +/** + * \ingroup CGNSInterfaceCGIO + * + * \brief Get the CGIO database identifier for the specified CGNS file. + * + * \param[in] fn \FILE_fn + * \param[out] cgio_num CGIO identifier for the CGNS file + * \return \ier + * + * \details The function \p cg_get_cgio allow the use of the low-level CGIO function + * in conjunction with the Mid Level Library. It returns the CGIO database identifier for the CGNS file. + * + */ +int cg_get_cgio(int fn, int *cgio_num) { - cg = cgi_get_file(file_number); + cg = cgi_get_file(fn); if (cg == 0) return CG_ERROR; *cgio_num = cg->cgio; return CG_OK; } /* configure stuff */ - -int cg_configure(int what, void *value) +/** + * \ingroup CGNSInternals + * + * \brief Configure CGNS library internal options. + * + * \param[in] option The option to configure, currently one of \p CG_CONFIG_ERROR, \p CG_CONFIG_COMPRESS, \p CG_CONFIG_SET_PATH, \p CG_CONFIG_ADD_PATH, \p CG_CONFIG_FILE_TYPE, \p CG_CONFIG_RIND_INDEX, \p CG_CONFIG_HDF5_DISKLESS, \p CG_CONFIG_HDF5_DISKLESS_INCR, \p CG_CONFIG_HDF5_DISKLESS_WRITE, \p CG_CONFIG_HDF5_COMPRESS, or \p CG_CONFIG_HDF5_MPI_COMM as defined in cgnslib.h. + * \param[in] value The value to set, type cast as \e void * . In Fortran the type is \e TYPE(C_PTR). + * \return \ier + * + * + * \details The function \p cg_configure allows particular CGNS library internal options to be configured. The currently supported options and expected values are: + * + *| | | + *|---|---| + *|__CG_CONFIG_ERROR__| This allows an error call-back function to be defined by the user. The value should be a pointer to a function to receive the error. The function is defined as `void err_callback(int is_error, char *errmsg)`, and will be called for errors and warnings. The first argument, is_error, will be 0 for warning messages, 1 for error messages, and −1 if the program is going to terminate (i.e., a call to `cg_error_exit()`). The second argument is the error or warning message. If this is defined, warning and error messages will go to the function, rather than the terminal. A value of `NULL` will remove the call-back function. + *|__CG_CONFIG_COMPRESS__| This is the rewrite-upon-close setting. Note: Prior versions of the library would automatically rewrite the CGNS file when it was closed after being opened in modify mode if there was unused space. This is no longer done, due to possible conflicts when using parallel I/O. The previous behavior may be recovered by setting value to a positive integer. In this case the file will be rewritten if the number of node deletions or modifications are equal to or exceed this number. Setting value to a negative number will force the rewrite when the file is closed. The default value is 0 (no rewrite). + *|__CG_CONFIG_SET_PATH__| Sets the search path for locating linked-to files. The argument value should be a character string containing one or more directories, formatted the same as for the `PATH` environment variable. This will replace any current settings. Setting value to `NULL` will remove all paths. + *|__CG_CONFIG_ADD_PATH__| Adds a directory, or list of directories, to the linked-to file search path. This is the same as `CG_CONFIG_SET_PATH`, but adds to the path instead of replacing it. + *|__CG_CONFIG_FILE_TYPE__| Sets the default file type for newly created CGNS files. The argument, value should be set to one of `CG_FILE_NONE`, `CG_FILE_ADF`, `CG_FILE_HDF5`, or `CG_FILE_ADF2`. See the discussion above for `cg_set_file_type`. + *|__CG_CONFIG_RIND_INDEX__| This option affects index bounds on structured arrays with rind planes. By default (`CG_CONFIG_RIND_CORE`), the core array locations always begin at index 1. Lower rind planes, if present, would have an index less than 1. For backward compatibility, `CG_CONFIG_RIND_ZERO` is provided and the index 1 will then locate the start of the array and not necessarily the start the core array. Note: Use of this option does not change the cgns file in any way; it only modifies the API to the library. The API changed for versions of the Mid-Level Library greater than 3.4. Before, it did not produce this behavior. Index 1 always represented the start of an array: in an array with no rind planes, the core location would have index 1; in an array with 1 rind plane, the core location would have index 2. In version 3.4 of the Mid-Level Library, the behavior of the API was fixed to match that specified in the SIDS: core array locations always begin at index 1. This option allows for configuring the library to pre-3.4 indexing behavior (set value to `CG_CONFIG_RIND_ZERO`) or the new default behavior (set value to `CG_CONFIG_RIND_CORE`). Note that using `CG_CONFIG_RIND_ZERO` is considered obsolete, but is provided for backwards compatibility. Most users should not set this option and use the default. Values used for this option do not need to be explicitly cast as `void*`. + *|__CG_CONFIG_HDF5_COMPRESS__| Sets the compression level for data written from HDF5. The default is no compression. Setting value to -1, will use the default compression level of 6. The acceptable values are 0 to 9, corresponding to gzip compression levels. + *|__CG_CONFIG_HDF5_MPI_COMM__| Sets the MPI communicator for parallel I/O. The default is `MPI_COMM_WORLD`. The new communicator is given by typecasting it to a `void *`. This is generally used internally - see `cgp_mpi_comm` instead. + *|__CG_CONFIG_HDF5_DISKLESS_INCR__| Value specifies the increment by which allocated memory is to be increased each time more memory is required, in bytes. The default is 10MiB. Ideally, value should be set large enough to minimize repeated increases. The type of value is size_t in C and C_SIZE_T in Fortran. Due to a bug with gfortran, it is advisable to use C_LOC or C_FUNLOC in-line of the call instead of using a variable. + *|__CG_CONFIG_HDF5_DISKLESS_WRITE__| Value indicates whether to write (value=1) the memory contents to disk when the file is closed. Otherwise, value=0 does not persist the memory to disk. + *|__CG_CONFIG_HDF5_ALIGNMENT__| Configures HDF5's H5Pset_alignment and sets the alignment, value[1], properties of a file access property list so that any file object greater than or equal in size to a threshold, value[0], bytes will be aligned on an address which is a multiple of alignment. + *|__CG_CONFIG_HDF5_MD_BLOCK_SIZE__| Configures HDF5's H5Pset_meta_block_size and sets the minimum size, value (in bytes), of metadata block allocations. + *|__CG_CONFIG_HDF5_BUFFER__| Configures HDF5's H5Pset_buffer and sets the maximum size, value (in bytes), for the type conversion buffer and background buffer. + *|__CG_CONFIG_HDF5_SIEVE_BUF_SIZE__| Configures HDF5's H5Pset_sieve_buf_size and sets the maximum size, value (in bytes), of the data sieve buffer. + *|__CG_CONFIG_RESET__| Value indicates the configuration values to reset to their default values. Currently, only CG_CONFIG_RESET_HDF5 is a valid value and will reset all the CG_CONFIG_HDF5_* parameters, excluding CG_CONFIG_HDF5_MPI_COMM and CG_CONFIG_HDF5_DISKLESS, to their default values. + * + * + */ +int cg_configure(int option, void *value) { /* cgio options */ - if (what > 100) { - if( cgio_configure(what, value) != CG_OK) { + if (option > 100) { + if( cgio_configure(option, value) != CG_OK) { cg_io_error("cgio_configure"); return CG_ERROR; } } /* error message handler */ - else if (what == CG_CONFIG_ERROR) { + else if (option == CG_CONFIG_ERROR) { cgns_error_handler = (void (*)(int, char *))value; } /* file compression */ - else if (what == CG_CONFIG_COMPRESS) { + else if (option == CG_CONFIG_COMPRESS) { cgns_compress = (int)((size_t)value); } /* initialize link search path */ - else if (what == CG_CONFIG_SET_PATH) { + else if (option == CG_CONFIG_SET_PATH) { return cg_set_path((const char *)value); } /* add to link search path */ - else if (what == CG_CONFIG_ADD_PATH) { + else if (option == CG_CONFIG_ADD_PATH) { return cg_set_path((const char *)value); } /* default file type */ - else if (what == CG_CONFIG_FILE_TYPE) { + else if (option == CG_CONFIG_FILE_TYPE) { return cg_set_file_type((int)((size_t)value)); } /* allow pre v3.4 rind-plane indexing */ - else if (what == CG_CONFIG_RIND_INDEX) { + else if (option == CG_CONFIG_RIND_INDEX) { if (value != CG_CONFIG_RIND_ZERO && value != CG_CONFIG_RIND_CORE) { cgi_error("unknown config setting"); @@ -811,24 +1057,56 @@ int cg_configure(int what, void *value) return CG_OK; } +/** + * \ingroup CGNSInternals + * + * \brief Set CGNS error handler + * + * \param[in] func error handler function + * \return \ier + */ int cg_error_handler(void (*func)(int, char *)) { cgns_error_handler = func; return CG_OK; } +/** + * \ingroup CGNSInternals + * + * \brief Set CGNS compression mode + * + * \param[in] compress CGNS compress (rewrite) setting + * \return \ier + */ int cg_set_compress(int compress) { cgns_compress = compress; return CG_OK; } +/** + * \ingroup CGNSInternals + * + * \brief Get CGNS compression mode + * + * \param[out] compress CGNS compress (rewrite) setting + * \return \ier + */ int cg_get_compress(int *compress) { *compress = cgns_compress; return CG_OK; } +/** + * \ingroup CGNSInternals + * + * \brief Set the CGNS link search path + * + * \param[in] path to search for linked to files when opening a file with external links. + * \return \ier + */ int cg_set_path(const char *path) { cgio_path_delete(NULL); @@ -841,6 +1119,14 @@ int cg_set_path(const char *path) return CG_OK; } +/** + * \ingroup CGNSInternals + * + * \brief Add to the CGNS link search path + * + * \param[in] path to search for linked to files when opening a file with external links. + * \return \ier + */ int cg_add_path(const char *path) { if (cgio_path_add(path)) { @@ -966,11 +1252,20 @@ const char *cg_AverageInterfaceTypeName(CGNS_ENUMT( AverageInterfaceType_t ) ty /*****************************************************************************\ * Read and Write CGNSBase_t Nodes \*****************************************************************************/ - -int cg_nbases(int file_number, int *nbases) +/** + * \ingroup CGNSBaseInformation + * + * \brief Get number of CGNS base nodes in file + * + * \param[in] fn \FILE_fn + * \param[out] nbases Number of bases present in the CGNS file fn. + * \return \ier + * + */ +int cg_nbases(int fn, int *nbases) { - cg = cgi_get_file(file_number); + cg = cgi_get_file(fn); if (cg == 0) return CG_ERROR; if (cgi_check_mode(cg->filename, cg->mode, CG_MODE_READ)) return CG_ERROR; @@ -979,12 +1274,25 @@ int cg_nbases(int file_number, int *nbases) return CG_OK; } -int cg_base_read(int file_number, int B, char *basename, int *cell_dim, +/** + * \ingroup CGNSBaseInformation + * + * \brief Read CGNS base information + * + * \param[in] fn \FILE_fn + * \param[in] B \B_Base + * \param[out] basename Name of the base + * \param[out] cell_dim Dimension of the cells; 3 for volume cells, 2 for surface cells and 1 for line cells. + * \param[out] phys_dim Number of coordinates required to define a vector in the field. + * \return \ier + * + */ +int cg_base_read(int fn, int B, char *basename, int *cell_dim, int *phys_dim) { cgns_base *base; - cg = cgi_get_file(file_number); + cg = cgi_get_file(fn); if (cg == 0) return CG_ERROR; if (cgi_check_mode(cg->filename, cg->mode, CG_MODE_READ)) return CG_ERROR; @@ -999,11 +1307,23 @@ int cg_base_read(int file_number, int B, char *basename, int *cell_dim, return CG_OK; } -int cg_base_id(int file_number, int B, double *base_id) + +/** + * \ingroup CGNSBaseInformation + * + * \brief Get the CGIO identifier of the CGNS base + * + * \param[in] fn \FILE_fn + * \param[in] B \B_Base + * \param[out] base_id CGIO node identifier for the base + * \return \ier + * + */ +int cg_base_id(int fn, int B, double *base_id) { cgns_base *base; - cg = cgi_get_file(file_number); + cg = cgi_get_file(fn); if (cg == 0) return CG_ERROR; if (cgi_check_mode(cg->filename, cg->mode, CG_MODE_READ)) return CG_ERROR; @@ -1015,11 +1335,22 @@ int cg_base_id(int file_number, int B, double *base_id) return CG_OK; } -int cg_cell_dim(int file_number, int B, int *cell_dim) +/** + * \ingroup CGNSBaseInformation + * + * \brief Get the cell dimension for the CGNS base + * + * \param[in] fn \FILE_fn + * \param[in] B \B_Base + * \param[out] cell_dim Dimension of the cells; 3 for volume cells, 2 for surface cells and 1 for line cells. + * \return \ier + * + */ +int cg_cell_dim(int fn, int B, int *cell_dim) { cgns_base *base; - cg = cgi_get_file(file_number); + cg = cgi_get_file(fn); if (cg == 0) return CG_ERROR; base = cgi_get_base(cg, B); if (base==0) return CG_ERROR; @@ -1028,7 +1359,20 @@ int cg_cell_dim(int file_number, int B, int *cell_dim) return CG_OK; } -int cg_base_write(int file_number, const char * basename, int cell_dim, +/** + * \ingroup CGNSBaseInformation + * + * \brief Create and/or write to a CGNS base node + * + * \param[in] fn \FILE_fn + * \param[in] basename Name of the base. + * \param[in] cell_dim Dimension of the cells; 3 for volume cells, 2 for surface cells and 1 for line cells. + * \param[in] phys_dim Number of coordinates required to define a vector in the field. + * \param[out] B \B_Base + * \return \ier + * + */ +int cg_base_write(int fn, const char * basename, int cell_dim, int phys_dim, int *B) { cgns_base *base = NULL; @@ -1043,7 +1387,7 @@ int cg_base_write(int file_number, const char * basename, int cell_dim, return CG_ERROR; } /* get memory address for base */ - cg = cgi_get_file(file_number); + cg = cgi_get_file(fn); if (cg == 0) return CG_ERROR; if (cgi_check_mode(cg->filename, cg->mode, CG_MODE_WRITE)) return CG_ERROR; @@ -1101,11 +1445,22 @@ int cg_base_write(int file_number, const char * basename, int cell_dim, * Read and Write Zone_t Nodes \*****************************************************************************/ -int cg_nzones(int file_number, int B, int *nzones) +/** + * \ingroup CGNSZoneInformation + * + * \brief Get number of zone in base + * + * \param[in] fn \FILE_fn + * \param[in] B \B_Base + * \param[out] nzones Number of zones present in base B. + * \return \ier + * + */ +int cg_nzones(int fn, int B, int *nzones) { cgns_base *base; - cg = cgi_get_file(file_number); + cg = cgi_get_file(fn); if (cg == 0) return CG_ERROR; if (cgi_check_mode(cg->filename, cg->mode, CG_MODE_READ)) return CG_ERROR; @@ -1117,11 +1472,23 @@ int cg_nzones(int file_number, int B, int *nzones) return CG_OK; } -int cg_zone_type(int file_number, int B, int Z, CGNS_ENUMT(ZoneType_t) *type) +/** + * \ingroup CGNSZoneInformation + * + * \brief Get type of zone (structured or unstructured) + * + * \param[in] fn \FILE_fn + * \param[in] B \B_Base + * \param[in] Z \Z_Zone + * \param[out] zonetype Type of the zone. The admissible types are Structured and Unstructured. + * \return \ier + * + */ +int cg_zone_type(int fn, int B, int Z, CGNS_ENUMT(ZoneType_t) *zonetype) { cgns_zone *zone; - cg = cgi_get_file(file_number); + cg = cgi_get_file(fn); if (cg == 0) return CG_ERROR; if (cgi_check_mode(cg->filename, cg->mode, CG_MODE_READ)) return CG_ERROR; @@ -1129,16 +1496,43 @@ int cg_zone_type(int file_number, int B, int Z, CGNS_ENUMT(ZoneType_t) *type) zone = cgi_get_zone(cg, B, Z); if (zone==0) return CG_ERROR; - *type = zone->type; + *zonetype = zone->type; return CG_OK; } -int cg_zone_read(int file_number, int B, int Z, char *zonename, cgsize_t *nijk) + +/** + * \ingroup CGNSZoneInformation + * + * \brief Read zone information + * + * \param[in] fn \FILE_fn + * \param[in] B \B_Base + * \param[in] Z \Z_Zone + * \param[out] zonename Name of the zone + * \param[out] size Number of vertices, cells, and boundary vertices in each (index)-dimension. For structured grids, the dimensions have unit stride in the array (e.g., `[NVertexI, NVertexJ, NVertexK, NCellI, NCellJ, NCellK, NBoundVertexI, NBoundVertexJ, NBoundVertexK]`). +Note that for unstructured grids, the number of cells is the number of highest order elements. Thus, in three dimensions it's the number of 3-D cells, and in two dimensions it's the number of 2-D cells. +Also for unstructured grids, if the nodes are sorted between internal nodes and boundary nodes, the optional parameter `NBoundVertex` must be set equal to the number of boundary nodes. By default, `NBoundVertex` equals zero, meaning that the nodes are unsorted. +Note that a non-zero value for `NBoundVertex` only applies to unstructured grids. For structured grids, the `NBoundVertex` parameter always equals 0 in all directions. + *|Mesh Type | Size| + *|---------------|-----| + *| 3D structured | `NVertexI`, `NVertexJ`, `NVertexK` + *| ^ | `NCellI`, `NCellJ`, `NCellK` + *| ^ | `NBoundVertexI = 0`, `NBoundVertexJ = 0`, `NBoundVertexK = 0` + *| 2D structured | `NVertexI`, `NVertexJ` + *| ^ | `NCellI`, `NCellJ` + *| ^ | `NBoundVertexI = 0`, `NBoundVertexJ = 0` + *|3D unstructured| `NVertex`, `NCell3D`, `NBoundVertex` + *|2D unstructured| `NVertex`, `NCell2D`, `NBoundVertex` + * \return \ier + * + */ +int cg_zone_read(int fn, int B, int Z, char *zonename, cgsize_t *size) { cgns_zone *zone; int i; - cg = cgi_get_file(file_number); + cg = cgi_get_file(fn); if (cg == 0) return CG_ERROR; if (cgi_check_mode(cg->filename, cg->mode, CG_MODE_READ)) return CG_ERROR; @@ -1148,16 +1542,17 @@ int cg_zone_read(int file_number, int B, int Z, char *zonename, cgsize_t *nijk) strcpy(zonename, zone->name); - for (i=0; i<3*(zone->index_dim); i++) nijk[i] = zone->nijk[i]; + for (i=0; i<3*(zone->index_dim); i++) size[i] = zone->nijk[i]; return CG_OK; } -int cg_zone_id(int file_number, int B, int Z, double *zone_id) + +int cg_zone_id(int fn, int B, int Z, double *zone_id) { cgns_zone *zone; - cg = cgi_get_file(file_number); + cg = cgi_get_file(fn); if (cg == 0) return CG_ERROR; if (cgi_check_mode(cg->filename, cg->mode, CG_MODE_READ)) return CG_ERROR; @@ -1169,11 +1564,22 @@ int cg_zone_id(int file_number, int B, int Z, double *zone_id) return CG_OK; } -int cg_index_dim(int file_number, int B, int Z, int *index_dim) +/** + * \ingroup CGNSZoneInformation + * + * \brief Get the index dimension of the CGNS zone + * + * \param[in] fn \FILE_fn + * \param[in] B \B_Base + * \param[in] Z \Z_Zone + * \param[out] index_dim Index dimension for the zone. For Structured zones, this will be the base cell dimension and for Unstructured zones it will be 1 + * \return \ier + */ +int cg_index_dim(int fn, int B, int Z, int *index_dim) { cgns_zone *zone; - cg = cgi_get_file(file_number); + cg = cgi_get_file(fn); if (cg == 0) return CG_ERROR; zone = cgi_get_zone(cg, B, Z); if (zone==0) return CG_ERROR; @@ -1182,8 +1588,34 @@ int cg_index_dim(int file_number, int B, int Z, int *index_dim) return CG_OK; } -int cg_zone_write(int file_number, int B, const char *zonename, const cgsize_t * nijk, - CGNS_ENUMT( ZoneType_t ) type, int *Z) +/** + * \ingroup CGNSZoneInformation + * + * \brief Create and/or write to a CGNS zone + * + * \param[in] fn \FILE_fn + * \param[in] B \B_Base + * \param[in] zonename Name of the zone. + * \param[in] size Number of vertices, cells, and boundary vertices in each (index)-dimension. For structured grids, the dimensions have unit stride in the array (e.g., [NVertexI, NVertexJ, NVertexK, NCellI, NCellJ, NCellK, NBoundVertexI, NBoundVertexJ, NBoundVertexK]). + *Note that for unstructured grids, the number of cells is the number of highest order elements. Thus, in three dimensions it's the number of 3-D cells, and in two dimensions it's the number of 2-D cells. + *Also for unstructured grids, if the nodes are sorted between internal nodes and boundary nodes, the optional parameter NBoundVertex must be set equal to the number of boundary nodes. By default, NBoundVertex equals zero, meaning that the nodes are unsorted. + *Note that a non-zero value for NBoundVertex only applies to unstructured grids. For structured grids, the NBoundVertex parameter always equals 0 in all directions. + *|Mesh Type | Size| + *|---------------|-----| + *| 3D structured | NVertexI, NVertexJ, NVertexK + *| | NCellI, NCellJ, NCellK + *| | NBoundVertexI = 0, NBoundVertexJ = 0, NBoundVertexK = 0 + *|2D structured | NVertexI, NVertexJ + *| | NCellI, NCellJ + *| | NBoundVertexI = 0, NBoundVertexJ = 0 + *|3D unstructured| NVertex, NCell3D, NBoundVertex + *|2D unstructured| NVertex, NCell2D, NBoundVertex + * \param[in] zonetype Type of the zone. The admissible types are Structured and Unstructured. + * \param[out] Z \Z_Zone + * \return \ier + */ +int cg_zone_write(int fn, int B, const char *zonename, const cgsize_t * size, + CGNS_ENUMT( ZoneType_t ) zonetype, int *Z) { cgns_base *base; cgns_zone *zone = NULL; @@ -1195,7 +1627,7 @@ int cg_zone_write(int file_number, int B, const char *zonename, const cgsize_t * if (cgi_check_strlen(zonename)) return CG_ERROR; /* get memory address file */ - cg = cgi_get_file(file_number); + cg = cgi_get_file(fn); if (cg == 0) return CG_ERROR; /* verify input */ @@ -1206,9 +1638,9 @@ int cg_zone_write(int file_number, int B, const char *zonename, const cgsize_t * if (base==0) return CG_ERROR; /* Set index dimension */ - if (type == CGNS_ENUMV( Structured )) + if (zonetype == CGNS_ENUMV( Structured )) index_dim = base->cell_dim; - else if (type == CGNS_ENUMV( Unstructured )) + else if (zonetype == CGNS_ENUMV( Unstructured )) index_dim = 1; else { cgi_error("Invalid zone type - not Structured or Unstructured"); @@ -1216,13 +1648,13 @@ int cg_zone_write(int file_number, int B, const char *zonename, const cgsize_t * } for (i=0; inijk"); return CG_ERROR; } - for (i=0; i<3*index_dim; i++) zone->nijk[i] = nijk[i]; + for (i=0; i<3*index_dim; i++) zone->nijk[i] = size[i]; zone->index_dim = index_dim; - zone->type = type; + zone->type = zonetype; /* save data in file */ dim_vals[0]=zone->index_dim; @@ -1294,9 +1726,9 @@ int cg_zone_write(int file_number, int B, const char *zonename, const cgsize_t * if (cgi_new_node(base->id, zone->name, "Zone_t", &zone->id, CG_SIZE_DATATYPE, 2, dim_vals, (void *)zone->nijk)) return CG_ERROR; - dim_vals[0] = (cgsize_t)strlen(ZoneTypeName[type]); + dim_vals[0] = (cgsize_t)strlen(ZoneTypeName[zonetype]); if (cgi_new_node(zone->id, "ZoneType", "ZoneType_t", &dummy_id, - "C1", 1, dim_vals, ZoneTypeName[type])) return CG_ERROR; + "C1", 1, dim_vals, ZoneTypeName[zonetype])) return CG_ERROR; return CG_OK; } @@ -1305,11 +1737,22 @@ int cg_zone_write(int file_number, int B, const char *zonename, const cgsize_t * * Read and Write Family_t Nodes \*****************************************************************************/ -int cg_nfamilies(int file_number, int B, int *nfamilies) +/** + * \ingroup CGNSFamilyDefinition + * + * \brief Get number of Family_t node at CGNSBase_t level + * + * \param[in] fn \FILE_fn + * \param[in] B \B_Base + * \param[out] nfamilies Number of families in base B + * \return \ier + * + */ +int cg_nfamilies(int fn, int B, int *nfamilies) { cgns_base *base; - cg = cgi_get_file(file_number); + cg = cgi_get_file(fn); if (cg == 0) return CG_ERROR; if (cgi_check_mode(cg->filename, cg->mode, CG_MODE_READ)) return CG_ERROR; @@ -1321,17 +1764,31 @@ int cg_nfamilies(int file_number, int B, int *nfamilies) return CG_OK; } -int cg_family_read(int file_number, int B, int F, char *family_name, +/** + * \ingroup CGNSFamilyDefinition + * + * \brief Read family information (CGNSBase_t level) + * + * \param[in] fn \FILE_fn + * \param[in] B \B_Base + * \param[in] Fam Family index number, where 1 ≤ Fam ≤ nfamilies. + * \param[out] family_name Name of the family + * \param[out] nboco Number of boundary conditions for this family. This should be either 0 or 1. + * \param[out] ngeos Number of geometry references for this family. + * \return \ier + * + */ +int cg_family_read(int fn, int B, int Fam, char *family_name, int *nboco, int *ngeos) { cgns_family *family; - cg = cgi_get_file(file_number); + cg = cgi_get_file(fn); if (cg == 0) return CG_ERROR; if (cgi_check_mode(cg->filename, cg->mode, CG_MODE_READ)) return CG_ERROR; - family = cgi_get_family(cg, B, F); + family = cgi_get_family(cg, B, Fam); if (family==0) return CG_ERROR; strcpy(family_name, family->name); @@ -1342,7 +1799,20 @@ int cg_family_read(int file_number, int B, int F, char *family_name, } /* ** FAMILY TREE ** */ -int cg_family_write(int file_number, int B, const char * family_name, int *F) + +/** + * \ingroup CGNSFamilyDefinition + * + * \brief Read family information (CGNSBase_t level) + * + * \param[in] fn \FILE_fn + * \param[in] B \B_Base + * \param[in] family_name Name of the family + * \param[out] Fam Family index number, where 1 ≤ Fam ≤ nfamilies. + * \return \ier + * + */ +int cg_family_write(int fn, int B, const char * family_name, int *Fam) { int index; cgns_base *base; @@ -1353,7 +1823,7 @@ int cg_family_write(int file_number, int B, const char * family_name, int *F) int skip = 0; /* Check file access */ - cg = cgi_get_file(file_number); + cg = cgi_get_file(fn); if (cg == 0) return CG_ERROR; if (cgi_check_mode(cg->filename, cg->mode, CG_MODE_WRITE)) return CG_ERROR; @@ -1467,7 +1937,7 @@ int cg_family_write(int file_number, int B, const char * family_name, int *F) (*nfamilies_p)++; } - (*F) = index+1; + (*Fam) = index+1; if( ! skip ) { /* If not an existing intermediate family node */ memset( family, 0, sizeof(cgns_family) ); @@ -1491,45 +1961,86 @@ int cg_family_write(int file_number, int B, const char * family_name, int *F) /*----------------------------------------------------------------------*/ -int cg_nfamily_names(int file_number, int B, int F, int *nnames) +/** + * \ingroup CGNSFamilyDefinition + * + * \brief Get number of family names under Family_t (CGNSBase_t level) + * + * \param[in] fn \FILE_fn + * \param[in] B \B_Base + * \param[in] Fam Family index number, where 1 ≤ Fam ≤ nfamilies. + * \param[out] nnames Number of FamilyName_t nodes for this family. + * \return \ier + * + */ +int cg_nfamily_names(int fn, int B, int Fam, int *nnames) { cgns_family *fam; - cg = cgi_get_file(file_number); + cg = cgi_get_file(fn); if (cg == 0) return CG_ERROR; if (cgi_check_mode(cg->filename, cg->mode, CG_MODE_READ)) return CG_ERROR; - fam = cgi_get_family(cg, B, F); + fam = cgi_get_family(cg, B, Fam); if (fam == 0) return CG_ERROR; *nnames = fam->nfamname; return CG_OK; } -int cg_family_name_read(int file_number, int B, int F, int N, char *name, char *family) +/** + * \ingroup CGNSFamilyDefinition + * + * \brief Read multiple family names under Family_t (CGNSBase_t level) + * + * \param[in] fn \FILE_fn + * \param[in] B \B_Base + * \param[in] Fam Family index number, where 1 ≤ Fam ≤ nfamilies. + * \param[in] N Family name index number, where 1 ≤ N ≤ nNames. + * \param[out] node_name Name of the FamilyName_t node. FamilyParent is used to refer to the parent family of the Family_t node. + * \param[out] family_name Name of the family + * \return \ier + * + */ +int cg_family_name_read(int fn, int B, int Fam, int N, char *node_name, char *family_name) { cgns_family *fam; - cg = cgi_get_file(file_number); + cg = cgi_get_file(fn); if (cg == 0) return CG_ERROR; if (cgi_check_mode(cg->filename, cg->mode, CG_MODE_READ)) return CG_ERROR; - fam = cgi_get_family(cg, B, F); + fam = cgi_get_family(cg, B, Fam); if (fam == 0) return CG_ERROR; if (N < 1 || N > fam->nfamname) { cgi_error("family name index out of range\n"); return CG_ERROR; } - strcpy(name, fam->famname[N-1].name); - strcpy(family, fam->famname[N-1].family); + strcpy(node_name, fam->famname[N-1].name); + strcpy(family_name, fam->famname[N-1].family); return CG_OK; } + /* ** FAMILY TREE ** */ -int cg_family_name_write(int file_number, int B, int F, - const char *name, const char *family) + +/** + * \ingroup CGNSFamilyDefinition + * + * \brief Write multiple family names under Family_t (CGNSBase_t level) + * + * \param[in] fn \FILE_fn + * \param[in] B \B_Base + * \param[in] Fam Family index number, where 1 ≤ Fam ≤ nfamilies. + * \param[out] node_name Name of the FamilyName_t node. FamilyParent is used to refer to the parent family of the Family_t node. + * \param[out] family_name Name of the family + * \return \ier + * + */ +int cg_family_name_write(int fn, int B, int Fam, + const char *node_name, const char *family_name) { int index; cgsize_t dim; @@ -1537,25 +2048,25 @@ int cg_family_name_write(int file_number, int B, int F, cgns_famname *famname = 0; /* verify input */ - if (cgi_check_strlen(name)) return CG_ERROR; + if (cgi_check_strlen(node_name)) return CG_ERROR; - if ( strlen(family) > (CGIO_MAX_NAME_LENGTH+1)*CG_MAX_GOTO_DEPTH ) { - cgi_error( "Family path too long (%s, size %ld)", family, strlen(family) ); + if ( strlen(family_name) > (CGIO_MAX_NAME_LENGTH+1)*CG_MAX_GOTO_DEPTH ) { + cgi_error( "Family path too long (%s, size %ld)", family_name, strlen(family_name) ); return CG_ERROR; } - cg = cgi_get_file(file_number); + cg = cgi_get_file(fn); if (cg == 0) return CG_ERROR; if (cgi_check_mode(cg->filename, cg->mode, CG_MODE_WRITE)) return CG_ERROR; - fam = cgi_get_family(cg, B, F); + fam = cgi_get_family(cg, B, Fam); if (fam == 0) return CG_ERROR; for (index = 0; index < fam->nfamname; index++) { - if (0 == strcmp(name, fam->famname[index].name)) { + if (0 == strcmp(node_name, fam->famname[index].name)) { if (cg->mode == CG_MODE_WRITE) { - cgi_error("Duplicate child name found: %s", name); + cgi_error("Duplicate child name found: %s", node_name); return CG_ERROR; } if (cgi_delete_node(fam->id, fam->famname[index].id)) @@ -1574,8 +2085,8 @@ int cg_family_name_write(int file_number, int B, int F, fam->nfamname++; } - strcpy(famname->name, name); - strcpy(famname->family, family); + strcpy(famname->name, node_name); + strcpy(famname->family, family_name); dim = (cgsize_t)strlen(famname->family); if (cgi_new_node(fam->id, famname->name, "FamilyName_t", &famname->id, @@ -1584,9 +2095,18 @@ int cg_family_name_write(int file_number, int B, int F, return CG_OK; } -/* ** FAMILY TREE ** */ -/* FamilyTree extension */ -int cg_node_family_write( const char* family_name, int* F) + +/** + * \ingroup CGNSFamilyHierarchyTreeDefinition + * + * \brief Create a Family_t node (Family_t level) + * + * \param[in] family_name Name of the family + * \param[out] Fam Family index number, where 1 ≤ Fam ≤ nfamilies. + * \return \ier + * + */ +int cg_node_family_write( const char* family_name, int* Fam) { int ier=0, n, nfamilies; cgns_family* family; @@ -1604,7 +2124,7 @@ int cg_node_family_write( const char* family_name, int* F) /* check for valid posit */ if (posit == 0) { cgi_error("No current position set by cg_goto\n"); - (*F) = 0; + (*Fam) = 0; return CG_ERROR; } @@ -1631,7 +2151,7 @@ int cg_node_family_write( const char* family_name, int* F) } else { cgi_error("Family_t node not supported under '%s' type node",posit->label); - (*F) = -1; + (*Fam) = -1; return CG_INCORRECT_PATH; } @@ -1645,7 +2165,7 @@ int cg_node_family_write( const char* family_name, int* F) cgi_error( "Could not find Family_t node %s\n" , family_name ); return CG_ERROR; } - *F = n + 1; + *Fam = n + 1; } else { cgi_error( "No Family_t container \n"); @@ -1655,7 +2175,15 @@ int cg_node_family_write( const char* family_name, int* F) return CG_OK; } -/* ** FAMILY TREE ** */ +/** + * \ingroup CGNSFamilyHierarchyTreeDefinition + * + * \brief Get number of families (Family_t level) + * + * \param[out] nfamilies Number of families in current node (CGNSBase_t or Family_t). + * \return \ier + * + */ int cg_node_nfamilies( int* nfamilies ) { /* This is valid and used during write as well as read mode. */ @@ -1682,8 +2210,19 @@ int cg_node_nfamilies( int* nfamilies ) return CG_OK; } -/* ** FAMILY TREE ** */ -int cg_node_family_read( int F, char* family_name, int* nFamBC, int *nGeo ) +/** + * \ingroup CGNSFamilyHierarchyTreeDefinition + * + * \brief Read family info (Family_t level) + * + * \param[in] Fam Family index number, where 1 ≤ Fam ≤ nfamilies. + * \param[out] family_name Name of the family. + * \param[out] nFamBC Number of boundary conditions for this family. This should be either 0 or 1. + * \param[out] nGeo Number of geometry references for this family. + * \return \ier + * + */ +int cg_node_family_read( int Fam, char* family_name, int* nFamBC, int *nGeo ) { int ier = 0; cgns_family* family; @@ -1693,7 +2232,7 @@ int cg_node_family_read( int F, char* family_name, int* nFamBC, int *nGeo ) /* verify input */ if (cgi_check_mode(cg->filename, cg->mode, CG_MODE_READ)) return CG_ERROR; - family = cgi_family_address( CG_MODE_READ, F, "dummy", &ier ); + family = cgi_family_address( CG_MODE_READ, Fam, "dummy", &ier ); if( family == 0 ) return ier; strcpy( family_name, family->name ); @@ -1703,7 +2242,16 @@ int cg_node_family_read( int F, char* family_name, int* nFamBC, int *nGeo ) return CG_OK; } -/* ** FAMILY TREE ** */ +/** + * \ingroup CGNSFamilyHierarchyTreeDefinition + * + * \brief Write multiple family names under Family_t (Family_t level) + * + * \param[in] node_name Name of the FamilyName_t node. FamilyParent is used to refer to the parent family of the Family_t node. + * \param[in] family_name Name of the family. + * \return \ier + * + */ int cg_node_family_name_write( const char* node_name, const char* family_name ) { int index; @@ -1767,7 +2315,15 @@ int cg_node_family_name_write( const char* node_name, const char* family_name ) return CG_OK; } -/* ** FAMILY TREE ** */ +/** + * \ingroup CGNSFamilyHierarchyTreeDefinition + * + * \brief Get number of family names under Family_t (Family_t level) + * + * \param[out] nnames Number of FamilyName_t nodes for this family. + * \return \ier + * + */ int cg_node_nfamily_names( int* nnames ) { /* This is valid and used during write as well as read mode. */ @@ -1792,7 +2348,17 @@ int cg_node_nfamily_names( int* nnames ) return CG_OK; } -/* ** FAMILY TREE ** */ +/** + * \ingroup CGNSFamilyHierarchyTreeDefinition + * + * \brief Read family info (Family_t level) + * + * \param[in] N Family name index number, where 1 ≤ N ≤ nNames. + * \param[out] node_name Name of the FamilyName_t node. FamilyParent is used to refer to the parent family of the Family_t node. + * \param[out] family_name Name of the family. + * \return \ier + * + */ int cg_node_family_name_read(int N, char* node_name, char* family_name ) { cgns_famname *famname; @@ -1815,17 +2381,31 @@ int cg_node_family_name_read(int N, char* node_name, char* family_name ) /*----------------------------------------------------------------------*/ -int cg_fambc_read(int file_number, int B, int F, int BC, +/** + * \ingroup CGNSFamilyBoundaryDefinition + * + * \brief Read boundary condition type for a family + * + * \param[in] fn \FILE_fn + * \param[in] B \B_Base + * \param[in] Fam Family index number, where 1 ≤ Fam ≤ nfamilies. + * \param[in] BC Family boundary condition index number. This must be equal to 1. + * \param[out] fambc_name Name of the FamilyBC_t node. + * \param[out] bocotype Boundary condition type for the family. See the eligible types for BCType_t in the Typedefs section. + * \return \ier + */ + +int cg_fambc_read(int fn, int B, int Fam, int BC, char *fambc_name, CGNS_ENUMT(BCType_t) *bocotype) { cgns_family *family; - cg = cgi_get_file(file_number); + cg = cgi_get_file(fn); if (cg == 0) return CG_ERROR; if (cgi_check_mode(cg->filename, cg->mode, CG_MODE_READ)) return CG_ERROR; - family = cgi_get_family(cg, B, F); + family = cgi_get_family(cg, B, Fam); if (family==0) return CG_ERROR; if (BC<=0 || BC>family->nfambc) { @@ -1838,7 +2418,21 @@ int cg_fambc_read(int file_number, int B, int F, int BC, return CG_OK; } -int cg_fambc_write(int file_number, int B, int F, const char * fambc_name, +/** + * \ingroup CGNSFamilyBoundaryDefinition + * + * \brief Write boundary condition type for a family + * + * \param[in] fn \FILE_fn + * \param[in] B \B_Base + * \param[in] Fam Family index number, where 1 ≤ Fam ≤ nfamilies. + * \param[in] fambc_name Name of the FamilyBC_t node. + * \param[in] bocotype Boundary condition type for the family. See the eligible types for BCType_t in the Typedefs section. + * \param[out] BC Family boundary condition index number. This must be equal to 1. + * \return \ier + * + */ +int cg_fambc_write(int fn, int B, int Fam, const char * fambc_name, CGNS_ENUMT( BCType_t ) bocotype, int *BC) { int index; @@ -1853,13 +2447,13 @@ int cg_fambc_write(int file_number, int B, int F, const char * fambc_name, return CG_ERROR; } - cg = cgi_get_file(file_number); + cg = cgi_get_file(fn); if (cg == 0) return CG_ERROR; if (cgi_check_mode(cg->filename, cg->mode, CG_MODE_WRITE)) return CG_ERROR; /* get memory address for family */ - family = cgi_get_family(cg, B, F); + family = cgi_get_family(cg, B, Fam); if (family==0) return CG_ERROR; /* Overwrite a FamilyBC_t Node: */ @@ -1906,9 +2500,19 @@ int cg_fambc_write(int file_number, int B, int F, const char * fambc_name, return CG_OK; } -/* FamilyTree extension */ /* ** FAMILY TREE ** */ /*----------------------------------------------------------------------*/ +/** + * \ingroup CGNSFamilyBoundaryDefinition + * + * \brief Read boundary condition information (Family_t level) + * + * \param[in] BC Family boundary condition index number. This must be equal to 1. + * \param[out] fambc_name Name of the FamilyBC_t node. + * \param[out] bocotype Boundary condition type for the family. See the eligible types for BCType_t in the Typedefs section. + * \return \ier + * + */ int cg_node_fambc_read( int BC, char* fambc_name, CGNS_ENUMT(BCType_t) *bocotype) { @@ -1946,6 +2550,17 @@ int cg_node_fambc_read( int BC, char* fambc_name, } /*----------------------------------------------------------------------*/ +/** + * \ingroup CGNSFamilyBoundaryDefinition + * + * \brief Write boundary condition information (Family_t level) + * + * \param[in] fambc_name Name of the FamilyBC_t node. + * \param[in] bocotype Boundary condition type for the family. See the eligible types for BCType_t in the Typedefs section. + * \param[out] BC Family boundary condition index number. This must be equal to 1. + * \return \ier + * + */ int cg_node_fambc_write( const char* fambc_name, CGNS_ENUMT(BCType_t) bocotype, int *BC ) { @@ -2030,18 +2645,33 @@ int cg_node_fambc_write( const char* fambc_name, /*----------------------------------------------------------------------*/ - -int cg_geo_read(int file_number, int B, int F, int G, char *geo_name, +/** + * \ingroup CGNSGeometryReference + * + * \brief Read geometry reference information + * + * \param[in] fn \FILE_fn + * \param[in] B \B_Base + * \param[in] Fam Family index number, where 1 ≤ Fam ≤ nfamilies. + * \param[in] G Geometry reference index number, where 1 ≤ G ≤ nGeo. + * \param[out] geo_name Name of GeometryReference_t node. + * \param[out] geo_file Name of geometry file + * \param[out] CAD_name Geometry format + * \param[out] npart Number of geometry entities + * \return \ier + * + */ +int cg_geo_read(int fn, int B, int Fam, int G, char *geo_name, char **geo_file, char *CAD_name, int *npart) { cgns_family *family; - cg = cgi_get_file(file_number); + cg = cgi_get_file(fn); if (cg == 0) return CG_ERROR; if (cgi_check_mode(cg->filename, cg->mode, CG_MODE_READ)) return CG_ERROR; - family = cgi_get_family(cg, B, F); + family = cgi_get_family(cg, B, Fam); if (family==0) return CG_ERROR; if (G<=0 || G>family->ngeos) { @@ -2061,8 +2691,23 @@ int cg_geo_read(int file_number, int B, int F, int G, char *geo_name, return CG_OK; } -int cg_geo_write(int file_number, int B, int F, const char * geo_name, - const char * filename, const char * CADname, int *G) +/** + * \ingroup CGNSGeometryReference + * + * \brief Create a GeometryReference_t node + * + * \param[in] fn \FILE_fn + * \param[in] B \B_Base + * \param[in] Fam Family index number, where 1 ≤ Fam ≤ nfamilies. + * \param[in] geo_name Name of GeometryReference_t node. + * \param[in] geo_file Name of geometry file + * \param[in] CAD_name Geometry format + * \param[out] G Geometry reference index number, where 1 ≤ G ≤ nGeo. + * \return \ier + * + */ +int cg_geo_write(int fn, int B, int Fam, const char * geo_name, + const char *geo_file, const char * CAD_name, int *G) { int index; cgsize_t length; @@ -2072,15 +2717,15 @@ int cg_geo_write(int file_number, int B, int F, const char * geo_name, /* verify input */ if (cgi_check_strlen(geo_name)) return CG_ERROR; - if (cgi_check_strlen(CADname)) return CG_ERROR; + if (cgi_check_strlen(CAD_name)) return CG_ERROR; - cg = cgi_get_file(file_number); + cg = cgi_get_file(fn); if (cg == 0) return CG_ERROR; if (cgi_check_mode(cg->filename, cg->mode, CG_MODE_WRITE)) return CG_ERROR; /* get memory address for family */ - family = cgi_get_family(cg, B, F); + family = cgi_get_family(cg, B, Fam); if (family==0) return CG_ERROR; /* Overwrite a GeometryReference_t Node: */ @@ -2119,9 +2764,9 @@ int cg_geo_write(int file_number, int B, int F, const char * geo_name, memset(geo, 0, sizeof(cgns_geo)); strcpy(geo->name, geo_name); - strcpy(geo->format, CADname); + strcpy(geo->format, CAD_name); - length = (int)strlen(filename); + length = (int)strlen(geo_file); if (length<=0) { cgi_error("filename undefined for GeometryReference node!"); return CG_ERROR; @@ -2131,7 +2776,7 @@ int cg_geo_write(int file_number, int B, int F, const char * geo_name, cgi_error("Error allocation geo->file"); return CG_ERROR; } - strcpy(geo->file, filename); + strcpy(geo->file, geo_file); /* save data in file */ if (cgi_new_node(family->id, geo->name, "GeometryReference_t", &geo->id, @@ -2148,6 +2793,19 @@ int cg_geo_write(int file_number, int B, int F, const char * geo_name, /* FamilyTree extension */ /* ** FAMILY TREE ** */ /*----------------------------------------------------------------------*/ +/** + * \ingroup CGNSGeometryReference + * + * \brief Read geometry reference information (Family_t level) + * + * \param[in] G Geometry reference index number, where 1 ≤ G ≤ nGeo. + * \param[out] geo_name Name of GeometryReference_t node. + * \param[out] geo_file Name of geometry file + * \param[out] CAD_name Geometry format + * \param[out] npart Number of geometry entities + * \return \ier + * + */ int cg_node_geo_read( int G, char *geo_name, char **geo_file, char *CAD_name, int *npart ) { @@ -2192,8 +2850,21 @@ int cg_node_geo_read( int G, char *geo_name, } /*----------------------------------------------------------------------*/ +/** + * \ingroup CGNSGeometryReference + * + * \brief Create GeometryReference_t node (Family_t level) + * + * \param[in] geo_name Name of GeometryReference_t node. + * \param[in] geo_file Name of geometry file + * \param[in] CAD_name Geometry format + * \param[out] G Geometry reference index number, where 1 ≤ G ≤ nGeo. + * + * \return \ier + * + */ int cg_node_geo_write( const char *geo_name, - const char *filename, const char *CADname, int *G) + const char *geo_file, const char *CAD_name, int *G) { int index; cgsize_t length; @@ -2203,7 +2874,7 @@ int cg_node_geo_write( const char *geo_name, /* verify input */ if (cgi_check_strlen(geo_name)) return CG_ERROR; - if (cgi_check_strlen(CADname)) return CG_ERROR; + if (cgi_check_strlen(CAD_name)) return CG_ERROR; CHECK_FILE_OPEN @@ -2261,9 +2932,9 @@ int cg_node_geo_write( const char *geo_name, memset(geo, 0, sizeof(cgns_geo)); strcpy(geo->name, geo_name); - strcpy(geo->format, CADname); + strcpy(geo->format, CAD_name); - length = (int)strlen(filename); + length = (int)strlen(geo_file); if (length<=0) { cgi_error("filename undefined for GeometryReference node!"); return CG_ERROR; @@ -2273,7 +2944,7 @@ int cg_node_geo_write( const char *geo_name, cgi_error("Error allocation geo->file"); return CG_ERROR; } - strcpy(geo->file, filename); + strcpy(geo->file, geo_file); /* save data in file */ if (cgi_new_node(family->id, geo->name, "GeometryReference_t", &geo->id, @@ -2291,17 +2962,30 @@ int cg_node_geo_write( const char *geo_name, /*----------------------------------------------------------------------*/ - -int cg_part_read(int file_number, int B, int F, int G, int P, char *part_name) +/** + * \ingroup CGNSGeometryReference + * + * \brief Get geometry entity name + * + * \param[in] fn \FILE_fn + * \param[in] B \B_Base + * \param[in] Fam Family index number, where 1 ≤ Fam ≤ nfamilies. + * \param[in] G Geometry reference index number, where 1 ≤ G ≤ nGeo. + * \param[in] P Geometry entity index number, where 1 ≤ P ≤ nparts + * \param[out] part_name Name of a geometry entity in the file FileName. + * \return \ier + * + */ +int cg_part_read(int fn, int B, int Fam, int G, int P, char *part_name) { cgns_family *family; - cg = cgi_get_file(file_number); + cg = cgi_get_file(fn); if (cg == 0) return CG_ERROR; if (cgi_check_mode(cg->filename, cg->mode, CG_MODE_READ)) return CG_ERROR; - family = cgi_get_family(cg, B, F); + family = cgi_get_family(cg, B, Fam); if (family==0) return CG_ERROR; if (P<=0 || P>family->geo[G-1].npart) { @@ -2312,7 +2996,21 @@ int cg_part_read(int file_number, int B, int F, int G, int P, char *part_name) return CG_OK; } -int cg_part_write(int file_number, int B, int F, int G, const char * part_name, +/** + * \ingroup CGNSGeometryReference + * + * \brief Write geometry entity name + * + * \param[in] fn \FILE_fn + * \param[in] B \B_Base + * \param[in] Fam Family index number, where 1 ≤ Fam ≤ nfamilies. + * \param[in] G Geometry reference index number, where 1 ≤ G ≤ nGeo. + * \param[in] part_name Name of a geometry entity in the file FileName. + * \param[out] P Geometry entity index number, where 1 ≤ P ≤ nparts + * \return \ier + * + */ +int cg_part_write(int fn, int B, int Fam, int G, const char * part_name, int *P) { int index; @@ -2323,13 +3021,13 @@ int cg_part_write(int file_number, int B, int F, int G, const char * part_name, /* verify input */ if (cgi_check_strlen(part_name)) return CG_ERROR; - cg = cgi_get_file(file_number); + cg = cgi_get_file(fn); if (cg == 0) return CG_ERROR; if (cgi_check_mode(cg->filename, cg->mode, CG_MODE_WRITE)) return CG_ERROR; /* get memory address for geo */ - family = cgi_get_family(cg, B, F); + family = cgi_get_family(cg, B, Fam); if (family==0) return CG_ERROR; if (G > family->ngeos || G <=0) { cgi_error("Invalid index for GeometryEntity_t node"); @@ -2382,6 +3080,17 @@ int cg_part_write(int file_number, int B, int F, int G, const char * part_name, /* FamilyTree extension */ /* ** FAMILY TREE ** */ /*----------------------------------------------------------------------*/ +/** + * \ingroup CGNSGeometryReference + * + * \brief Get geometry entity name (Family_t level) + * + * \param[in] G Geometry reference index number, where 1 ≤ G ≤ nGeo. + * \param[in] P Geometry entity index number, where 1 ≤ P ≤ nparts + * \param[out] part_name Name of a geometry entity in the file FileName. + * \return \ier + * + */ int cg_node_part_read(int G, int P, char *part_name) { cgns_family* family = 0; @@ -2416,6 +3125,17 @@ int cg_node_part_read(int G, int P, char *part_name) } /*----------------------------------------------------------------------*/ +/** + * \ingroup CGNSGeometryReference + * + * \brief Write geometry entity name (Family_t level) + * + * \param[in] G Geometry reference index number, where 1 ≤ G ≤ nGeo. + * \param[in] part_name Name of a geometry entity in the file FileName. + * \param[out] P Geometry entity index number, where 1 ≤ P ≤ nparts + * \return \ier + * + */ int cg_node_part_write(int G, const char * part_name, int *P) { int index; @@ -2498,11 +3218,23 @@ int cg_node_part_write(int G, const char * part_name, int *P) * Read and Write DiscreteData_t Nodes \*****************************************************************************/ -int cg_ndiscrete(int file_number, int B, int Z, int *ndiscrete) +/** + * \ingroup DiscreteData + * + * \brief Get number of `DiscreteData_t` nodes + * + * \param[in] fn \FILE_fn + * \param[in] B \B_Base + * \param[in] Z \Z_Zone + * \param[out] ndiscrete Number of `DiscreteData_t` data structures under zone Z. + * \return \ier + * + */ +int cg_ndiscrete(int fn, int B, int Z, int *ndiscrete) { cgns_zone *zone; - cg = cgi_get_file(file_number); + cg = cgi_get_file(fn); if (cg == 0) return CG_ERROR; if (cgi_check_mode(cg->filename, cg->mode, CG_MODE_READ)) return CG_ERROR; @@ -2514,11 +3246,24 @@ int cg_ndiscrete(int file_number, int B, int Z, int *ndiscrete) return CG_OK; } -int cg_discrete_read(int file_number, int B, int Z, int D, char *discrete_name) +/** + * \ingroup DiscreteData + * + * \brief Get name of `DiscreteData_t` node + * + * \param[in] fn \FILE_fn + * \param[in] B \B_Base + * \param[in] Z \Z_Zone + * \param[in] D Discrete data index number, where 1 ≤ D ≤ ndiscrete. + * \param[out] discrete_name Name of `DiscreteData_t` data structures. + * \return \ier + * + */ +int cg_discrete_read(int fn, int B, int Z, int D, char *discrete_name) { cgns_discrete *discrete; - cg = cgi_get_file(file_number); + cg = cgi_get_file(fn); if (cg == 0) return CG_ERROR; if (cgi_check_mode(cg->filename, cg->mode, CG_MODE_READ)) return CG_ERROR; @@ -2531,7 +3276,20 @@ int cg_discrete_read(int file_number, int B, int Z, int D, char *discrete_name) return CG_OK; } -int cg_discrete_write(int file_number, int B, int Z, const char * discrete_name, +/** + * \ingroup DiscreteData + * + * \brief Create a `DiscreteData_t` node + * + * \param[in] fn \FILE_fn + * \param[in] B \B_Base + * \param[in] Z \Z_Zone + * \param[in] discrete_name Name of `DiscreteData_t` data structures. + * \param[out] D Discrete data index number, where 1 ≤ D ≤ ndiscrete. + * \return \ier + * + */ +int cg_discrete_write(int fn, int B, int Z, const char * discrete_name, int *D) { cgns_zone *zone; @@ -2541,7 +3299,7 @@ int cg_discrete_write(int file_number, int B, int Z, const char * discrete_name /* verify input */ if (cgi_check_strlen(discrete_name)) return CG_ERROR; - cg = cgi_get_file(file_number); + cg = cgi_get_file(fn); if (cg == 0) return CG_ERROR; if (cgi_check_mode(cg->filename, cg->mode, CG_MODE_WRITE)) return CG_ERROR; @@ -2593,12 +3351,28 @@ int cg_discrete_write(int file_number, int B, int Z, const char * discrete_name return CG_OK; } -int cg_discrete_size(int file_number, int B, int Z, int D, + + +/** + * \ingroup DiscreteData + * + * \brief Get the dimensions of `DiscreteData_t` node + * + * \param[in] fn \FILE_fn + * \param[in] B \B_Base + * \param[in] Z \Z_Zone + * \param[in] D Discrete data index number, where 1 ≤ D ≤ ndiscrete. + * \param[out] data_dim Number of dimensions defining the discrete data. If a point set has been defined, this will be 1, otherwise this will be the current zone index dimension. + * \param[out] dim_vals The array of data_dim dimensions for the discrete data. + * \return \ier + * + */ +int cg_discrete_size(int fn, int B, int Z, int D, int *data_dim, cgsize_t *dim_vals) { cgns_discrete *discrete; - cg = cgi_get_file(file_number); + cg = cgi_get_file(fn); if (cg == 0) return CG_ERROR; if (cgi_check_mode(cg->filename, cg->mode, CG_MODE_READ)) return CG_ERROR; @@ -2621,6 +3395,20 @@ int cg_discrete_size(int file_number, int B, int Z, int D, /*----------------------------------------------------------------------*/ +/** + * \ingroup DiscreteData + * + * \brief Get info about a point set `DiscreteData_t` node + * + * \param[in] fn \FILE_fn + * \param[in] B \B_Base + * \param[in] Z \Z_Zone + * \param[in] D Discrete data index number, where 1 ≤ D ≤ ndiscrete. + * \param[out] ptset_type Type of point set defining the interface for the discrete data; either PointRange or PointList. + * \param[out] npnts Number of points defining the interface for the discrete data. For a ptset_type of PointRange, npnts is always two. For a ptset_type of PointList, npnts is the number of points in the list. + * \return \ier + * + */ int cg_discrete_ptset_info(int fn, int B, int Z, int D, CGNS_ENUMT(PointSetType_t) *ptset_type, cgsize_t *npnts) { @@ -2644,6 +3432,19 @@ int cg_discrete_ptset_info(int fn, int B, int Z, int D, return CG_OK; } +/** + * \ingroup DiscreteData + * + * \brief Read a point set `DiscreteData_t` node + * + * \param[in] fn \FILE_fn + * \param[in] B \B_Base + * \param[in] Z \Z_Zone + * \param[in] D Discrete data index number, where 1 ≤ D ≤ ndiscrete. + * \param[out] pnts Array of points defining the interface for the discrete data. + * \return \ier + * + */ int cg_discrete_ptset_read(int fn, int B, int Z, int D, cgsize_t *pnts) { int dim = 0; @@ -2667,6 +3468,23 @@ int cg_discrete_ptset_read(int fn, int B, int Z, int D, cgsize_t *pnts) return CG_OK; } +/** + * \ingroup DiscreteData + * + * \brief Create a point set `DiscreteData_t` node + * + * \param[in] fn \FILE_fn + * \param[in] B \B_Base + * \param[in] Z \Z_Zone + * \param[in] discrete_name Name of `DiscreteData_t` data structures. + * \param[in] location Grid location where the discrete data is recorded. The current admissible locations are Vertex, CellCenter, IFaceCenter, JFaceCenter, and KFaceCenter. + * \param[in] ptset_type Type of point set defining the interface for the discrete data; either PointRange or PointList. + * \param[in] npnts Number of points defining the interface for the discrete data. For a ptset_type of PointRange, npnts is always two. For a ptset_type of PointList, npnts is the number of points in the list. + * \param[in] pnts Array of points defining the interface for the discrete data. + * \param[out] D Discrete data index number, where 1 ≤ D ≤ ndiscrete. + * \return \ier + * + */ int cg_discrete_ptset_write(int fn, int B, int Z, const char *discrete_name, CGNS_ENUMT(GridLocation_t) location, CGNS_ENUMT(PointSetType_t) ptset_type, cgsize_t npnts, @@ -2728,11 +3546,23 @@ int cg_discrete_ptset_write(int fn, int B, int Z, * Read and Write GridCoordinates_t Nodes \*****************************************************************************/ -int cg_ngrids(int file_number, int B, int Z, int *ngrids) +/** + * \ingroup ZoneGridCoordinates + * + * \brief Get number of `GridCoordinates_t` nodes + * + * \param[in] fn \FILE_fn + * \param[in] B \B_Base + * \param[in] Z \Z_Zone + * \param[out] ngrids Number of `GridCoordinates_t` nodes for zone Z. + * \return \ier + * + */ +int cg_ngrids(int fn, int B, int Z, int *ngrids) { cgns_zone *zone; - cg = cgi_get_file(file_number); + cg = cgi_get_file(fn); if (cg == 0) return CG_ERROR; if (cgi_check_mode(cg->filename, cg->mode, CG_MODE_READ)) return CG_ERROR; @@ -2745,11 +3575,24 @@ int cg_ngrids(int file_number, int B, int Z, int *ngrids) return CG_OK; } -int cg_grid_read(int file_number, int B, int Z, int G, char *gridname) +/** + * \ingroup ZoneGridCoordinates + * + * \brief Get Name of a `GridCoordinates_t` node + * + * \param[in] fn \FILE_fn + * \param[in] B \B_Base + * \param[in] Z \Z_Zone + * \param[in] G \G_Grid + * \param[out] grid_coord_name Name of the GridCoordinates_t node. Note that the name "GridCoordinates" is reserved for the original grid and must be the first GridCoordinates_t node to be defined. + * \return \ier + * + */ +int cg_grid_read(int fn, int B, int Z, int G, char *grid_coord_name) { cgns_zcoor *zcoor; - cg = cgi_get_file(file_number); + cg = cgi_get_file(fn); if (cg == 0) return CG_ERROR; if (cgi_check_mode(cg->filename, cg->mode, CG_MODE_READ)) return CG_ERROR; @@ -2759,21 +3602,34 @@ int cg_grid_read(int file_number, int B, int Z, int G, char *gridname) if (zcoor==0) return CG_ERROR; /* Return ADF name for the GridCoordinates_t node */ - strcpy(gridname,zcoor->name); + strcpy(grid_coord_name,zcoor->name); return CG_OK; } -int cg_grid_write(int file_number, int B, int Z, const char * zcoorname, int *G) +/** + * \ingroup ZoneGridCoordinates + * + * \brief Create a `GridCoordinates_t` nodes + * + * \param[in] fn \FILE_fn + * \param[in] B \B_Base + * \param[in] Z \Z_Zone + * \param[in] grid_coord_name Name of the GridCoordinates_t node. Note that the name "GridCoordinates" is reserved for the original grid and must be the first GridCoordinates_t node to be defined. + * \param[out] G \G_Grid + * \return \ier + * + */ +int cg_grid_write(int fn, int B, int Z, const char * grid_coord_name, int *G) { cgns_zone *zone; cgns_zcoor *zcoor = NULL; int index, n, index_dim; /* verify input */ - if (cgi_check_strlen(zcoorname)) return CG_ERROR; + if (cgi_check_strlen(grid_coord_name)) return CG_ERROR; /* get memory address */ - cg = cgi_get_file(file_number); + cg = cgi_get_file(fn); if (cg == 0) return CG_ERROR; if (cgi_check_mode(cg->filename, cg->mode, CG_MODE_WRITE)) return CG_ERROR; @@ -2783,11 +3639,11 @@ int cg_grid_write(int file_number, int B, int Z, const char * zcoorname, int *G) /* Overwrite a GridCoordinates_t Node: */ for (index=0; indexnzcoor; index++) { - if (strcmp(zcoorname, zone->zcoor[index].name)==0) { + if (strcmp(grid_coord_name, zone->zcoor[index].name)==0) { /* in CG_MODE_WRITE, children names must be unique */ if (cg->mode==CG_MODE_WRITE) { - cgi_error("Duplicate child name found: %s",zcoorname); + cgi_error("Duplicate child name found: %s",grid_coord_name); return CG_ERROR; } @@ -2816,7 +3672,7 @@ int cg_grid_write(int file_number, int B, int Z, const char * zcoorname, int *G) /* save data in memory */ memset(zcoor, 0, sizeof(cgns_zcoor)); - strcpy(zcoor->name,zcoorname); + strcpy(zcoor->name,grid_coord_name); index_dim = zone->index_dim; zcoor->rind_planes = (int *)malloc(index_dim*2*sizeof(int)); @@ -2838,7 +3694,23 @@ int cg_grid_write(int file_number, int B, int Z, const char * zcoorname, int *G) * Read and Write GridCoordinates_t bounding box \*****************************************************************************/ -int cg_grid_bounding_box_read(int file_number, int B, int Z, int G, CGNS_ENUMT(DataType_t) type, void* boundingbox) +/** + * \ingroup ZoneGridCoordinates + * + * \brief Get bounding box associated with a `GridCoordinates_t` node + * + * \param[in] fn \FILE_fn + * \param[in] B \B_Base + * \param[in] Z \Z_Zone + * \param[in] G \G_Grid + * \param[in] datatype Data type of the bounding box array written to the file or read. Admissible data types for a coordinate bounding box are RealSingle and RealDouble. + * \param[out] boundingbox Data Array with bounding box values. + * \return \ier + * + * \details When reading a bounding box, if the information is missing from the file, the boundingbox array will remain untouched, and the CG_NODE_NOT_FOUND status is returned. The CGNS MLL relies on the user to compute the bounding box and ensure that the bounding box being stored is coherent with the coordinates under GridCoordinates_t node. + * + */ +int cg_grid_bounding_box_read(int fn, int B, int Z, int G, CGNS_ENUMT(DataType_t) datatype, void* boundingbox) { cgns_zcoor *zcoor; cgns_base *base; @@ -2849,7 +3721,7 @@ int cg_grid_bounding_box_read(int file_number, int B, int Z, int G, CGNS_ENUMT(D cgsize_t dim_vals[12]; cgsize_t num; - cg = cgi_get_file(file_number); + cg = cgi_get_file(fn); if (cg == 0) return CG_ERROR; if (cgi_check_mode(cg->filename, cg->mode, CG_MODE_READ)) return CG_ERROR; @@ -2866,8 +3738,8 @@ int cg_grid_bounding_box_read(int file_number, int B, int Z, int G, CGNS_ENUMT(D /* check bounding box is not an empty array*/ if (strcmp(data_type,"MT")==0) { - cgi_warning("No bounding box read"); - return CG_OK; + cgi_error("No bounding box found for reading"); + return CG_NODE_NOT_FOUND; } if (strcmp(data_type,"R4") && @@ -2891,25 +3763,41 @@ int cg_grid_bounding_box_read(int file_number, int B, int Z, int G, CGNS_ENUMT(D } /* verify input */ - if (type != CGNS_ENUMV(RealSingle) && type != CGNS_ENUMV(RealDouble)) { - cgi_error("Invalid data type for bounding box array: %d", type); + if (datatype != CGNS_ENUMV(RealSingle) && datatype != CGNS_ENUMV(RealDouble)) { + cgi_error("Invalid data type for bounding box array: %d", datatype); return CG_ERROR; } /* transfer small bounding box data to user with correct data type */ - cgi_convert_data(num, cgi_datatype(data_type), vdata, type, boundingbox); + cgi_convert_data(num, cgi_datatype(data_type), vdata, datatype, boundingbox); CGNS_FREE(vdata); return CG_OK; } -int cg_grid_bounding_box_write(int file_number, int B, int Z, int G, CGNS_ENUMT(DataType_t) type, void* boundingbox) +/** + * \ingroup ZoneGridCoordinates + * + * \brief Write bounding box associated with a `GridCoordinates_t` node + * + * \param[in] fn \FILE_fn + * \param[in] B \B_Base + * \param[in] Z \Z_Zone + * \param[in] G \G_Grid + * \param[in] datatype Data type of the bounding box array written to the file or read. Admissible data types for a coordinate bounding box are RealSingle and RealDouble. + * \param[in] boundingbox Data Array with bounding box values. + * \return \ier + * + * \details The CGNS MLL relies on the user to compute the bounding box and ensure that the bounding box being stored is coherent with the coordinates under GridCoordinates_t node. + + */ +int cg_grid_bounding_box_write(int fn, int B, int Z, int G, CGNS_ENUMT(DataType_t) datatype, void* boundingbox) { cgns_base *base; cgns_zcoor *zcoor; cgsize_t dim_vals[2]; - cg = cgi_get_file(file_number); + cg = cgi_get_file(fn); if (cg == 0) return CG_ERROR; if (cgi_check_mode(cg->filename, cg->mode, CG_MODE_WRITE)) return CG_ERROR; @@ -2940,13 +3828,13 @@ int cg_grid_bounding_box_write(int file_number, int B, int Z, int G, CGNS_ENUMT( /* Check input */ if (boundingbox == NULL) return CG_OK; - if (type != CGNS_ENUMV(RealSingle) && type != CGNS_ENUMV(RealDouble)) { - cgi_error("Invalid data type for bounding box array: %d", type); + if (datatype != CGNS_ENUMV(RealSingle) && datatype != CGNS_ENUMV(RealDouble)) { + cgi_error("Invalid data type for bounding box array: %d", datatype); return CG_ERROR; } /* Write Bounding box into existing GridCoordinates_t node */ - if (cgio_set_dimensions(cg->cgio, zcoor->id, cgi_adf_datatype(type), 2, dim_vals)) { + if (cgio_set_dimensions(cg->cgio, zcoor->id, cgi_adf_datatype(datatype), 2, dim_vals)) { cg_io_error("cgio_set_dimensions"); return CG_ERROR; } @@ -2962,11 +3850,23 @@ int cg_grid_bounding_box_write(int file_number, int B, int Z, int G, CGNS_ENUMT( * Read and Write GridCoordinates_t/DataArray_t Nodes \*****************************************************************************/ -int cg_ncoords(int file_number, int B, int Z, int *ncoords) +/** + * \ingroup ZoneGridCoordinates + * + * \brief Get number of coordinate arrays + * + * \param[in] fn \FILE_fn + * \param[in] B \B_Base + * \param[in] Z \Z_Zone + * \param[out] ncoords Number of coordinate arrays for zone Z. + * \return \ier + * + */ +int cg_ncoords(int fn, int B, int Z, int *ncoords) { cgns_zcoor *zcoor; - cg = cgi_get_file(file_number); + cg = cgi_get_file(fn); if (cg == 0) return CG_ERROR; if (cgi_check_mode(cg->filename, cg->mode, CG_MODE_READ)) return CG_ERROR; @@ -2978,12 +3878,26 @@ int cg_ncoords(int file_number, int B, int Z, int *ncoords) return CG_OK; } -int cg_coord_info(int file_number, int B, int Z, int C, CGNS_ENUMT(DataType_t) *type, +/** + * \ingroup ZoneGridCoordinates + * + * \brief Get info about a coordinate array + * + * \param[in] fn \FILE_fn + * \param[in] B \B_Base + * \param[in] Z \Z_Zone + * \param[in] C \C_Coordinate + * \param[out] datatype Data type of the coordinate array written to the file. Admissible data types for a coordinate array are RealSingle and RealDouble. + * \param[out] coordname Name of the coordinate array. It is strongly advised to use the SIDS nomenclature conventions when naming the coordinate arrays to insure file compatibility. + * \return \ier + * + */ +int cg_coord_info(int fn, int B, int Z, int C, CGNS_ENUMT(DataType_t) *datatype, char *coordname) { cgns_zcoor *zcoor; - cg = cgi_get_file(file_number); + cg = cgi_get_file(fn); if (cg == 0) return CG_ERROR; if (cgi_check_mode(cg->filename, cg->mode, CG_MODE_READ)) return CG_ERROR; @@ -2996,21 +3910,37 @@ int cg_coord_info(int file_number, int B, int Z, int C, CGNS_ENUMT(DataType_t) cgi_error("coord number %d invalid",C); return CG_ERROR; } - *type = cgi_datatype(zcoor->coord[C-1].data_type); + *datatype = cgi_datatype(zcoor->coord[C-1].data_type); strcpy(coordname, zcoor->coord[C-1].name); return CG_OK; } -int cg_coord_read(int file_number, int B, int Z, const char *coordname, - CGNS_ENUMT(DataType_t) type, const cgsize_t *s_rmin, - const cgsize_t *s_rmax, void *coord_ptr) +/** + * \ingroup ZoneGridCoordinates + * + * \brief Read grid coordinate array + * + * \param[in] fn \FILE_fn + * \param[in] B \B_Base + * \param[in] Z \Z_Zone + * \param[in] coordname Name of the coordinate array. It is strongly advised to use the SIDS nomenclature conventions when naming the coordinate arrays to insure file compatibility. + * \param[in] mem_datatype Data type of an array in memory. Admissible data types for a coordinate array are RealSingle and RealDouble. + * \param[in] s_rmin Lower range index in file (eg., imin, jmin, kmin). + * \param[in] s_rmax Upper range index in file (eg., imax, jmax, kmax). + * \param[out] coord_array Array of coordinate values. + * \return \ier + * + */ +int cg_coord_read(int fn, int B, int Z, const char *coordname, + CGNS_ENUMT(DataType_t) mem_datatype, const cgsize_t *s_rmin, + const cgsize_t *s_rmax, void *coord_array) { cgns_zone *zone; int n, m_numdim; /* get memory addresses */ - cg = cgi_get_file(file_number); + cg = cgi_get_file(fn); if (cg == 0) return CG_ERROR; zone = cgi_get_zone(cg, B, Z); @@ -3032,12 +3962,32 @@ int cg_coord_read(int file_number, int B, int Z, const char *coordname, m_dimvals[n] = m_rmax[n]; } - return cg_coord_general_read(file_number, B, Z, coordname, - s_rmin, s_rmax, type, + return cg_coord_general_read(fn, B, Z, coordname, + s_rmin, s_rmax, mem_datatype, m_numdim, m_dimvals, m_rmin, m_rmax, - coord_ptr); + coord_array); } +/** + * \ingroup ZoneGridCoordinates + * + * \brief Read subset of grid coordinates to a shaped array + * + * \param[in] fn \FILE_fn + * \param[in] B \B_Base + * \param[in] Z \Z_Zone + * \param[in] coordname Name of the coordinate array. It is strongly advised to use the SIDS nomenclature conventions when naming the coordinate arrays to insure file compatibility. + * \param[in] m_type Data type of an array in memory. Admissible data types for a coordinate array are RealSingle and RealDouble. + * \param[in] s_rmin Lower range index in file (eg., imin, jmin, kmin). + * \param[in] s_rmax Upper range index in file (eg., imax, jmax, kmax). + * \param[in] m_numdim Number of dimensions of array in memory. + * \param[in] m_dimvals Dimensions of array in memory. + * \param[in] m_rmin Lower range index in memory (eg., imin, jmin, kmin). + * \param[in] m_rmax Upper range index in memory (eg., imax, jmax, kmax). + * \param[out] coord_ptr Array of coordinate values. + * \return \ier + * + */ int cg_coord_general_read(int fn, int B, int Z, const char *coordname, const cgsize_t *s_rmin, const cgsize_t *s_rmax, CGNS_ENUMT(DataType_t) m_type, @@ -3087,11 +4037,11 @@ int cg_coord_general_read(int fn, int B, int Z, const char *coordname, coord_ptr); } -int cg_coord_id(int file_number, int B, int Z, int C, double *coord_id) +int cg_coord_id(int fn, int B, int Z, int C, double *coord_id) { cgns_zcoor *zcoor; - cg = cgi_get_file(file_number); + cg = cgi_get_file(fn); if (cg == 0) return CG_ERROR; if (cgi_check_mode(cg->filename, cg->mode, CG_MODE_READ)) return CG_ERROR; @@ -3109,7 +4059,22 @@ int cg_coord_id(int file_number, int B, int Z, int C, double *coord_id) return CG_OK; } -int cg_coord_write(int file_number, int B, int Z, CGNS_ENUMT(DataType_t) type, +/** + * \ingroup ZoneGridCoordinates + * + * \brief Write grid coordinates + * + * \param[in] fn \FILE_fn + * \param[in] B \B_Base + * \param[in] Z \Z_Zone + * \param[in] datatype Data type of the coordinate array written to the file. Admissible data types for a coordinate array are RealSingle and RealDouble. + * \param[in] coordname Name of the coordinate array. It is strongly advised to use the SIDS nomenclature conventions when naming the coordinate arrays to insure file compatibility. + * \param[in] coord_ptr Array of coordinate values. + * \param[out] C \C_Coordinate + * \return \ier + * + */ +int cg_coord_write(int fn, int B, int Z, CGNS_ENUMT(DataType_t) datatype, const char *coordname, const void *coord_ptr, int *C) { cgns_zone *zone; @@ -3121,12 +4086,12 @@ int cg_coord_write(int file_number, int B, int Z, CGNS_ENUMT(DataType_t) type, /* verify input */ if (cgi_check_strlen(coordname)) return CG_ERROR; - if (type!=CGNS_ENUMV( RealSingle ) && type!=CGNS_ENUMV( RealDouble )) { - cgi_error("Invalid datatype for coord. array: %d", type); + if (datatype!=CGNS_ENUMV( RealSingle ) && datatype!=CGNS_ENUMV( RealDouble )) { + cgi_error("Invalid datatype for coord. array: %d", datatype); return CG_ERROR; } /* get memory addresses */ - cg = cgi_get_file(file_number); + cg = cgi_get_file(fn); if (cg == 0) return CG_ERROR; zone = cgi_get_zone(cg, B, Z); @@ -3157,17 +4122,34 @@ int cg_coord_write(int file_number, int B, int Z, CGNS_ENUMT(DataType_t) type, m_rmax[n] = m_dimvals[n]; } - status = cg_coord_general_write(file_number, B, Z, coordname, - type, s_rmin, s_rmax, - type, m_numdim, m_dimvals, m_rmin, m_rmax, + status = cg_coord_general_write(fn, B, Z, coordname, + datatype, s_rmin, s_rmax, + datatype, m_numdim, m_dimvals, m_rmin, m_rmax, coord_ptr, C); HDF5storage_type = CG_COMPACT; return status; } -int cg_coord_partial_write(int file_number, int B, int Z, - CGNS_ENUMT(DataType_t) type, +/** + * \ingroup ZoneGridCoordinates + * + * \brief Write subset of grid coordinates + * + * \param[in] fn \FILE_fn + * \param[in] B \B_Base + * \param[in] Z \Z_Zone + * \param[in] datatype Data type of the coordinate array written to the file. Admissible data types for a coordinate array are RealSingle and RealDouble. + * \param[in] coordname Name of the coordinate array. It is strongly advised to use the SIDS nomenclature conventions when naming the coordinate arrays to insure file compatibility. + * \param[in] s_rmin Lower range index in file (eg., imin, jmin, kmin). + * \param[in] s_rmax Upper range index in file (eg., imax, jmax, kmax). + * \param[in] coord_ptr Array of coordinate values. + * \param[out] C \C_Coordinate + * \return \ier + * + */ +int cg_coord_partial_write(int fn, int B, int Z, + CGNS_ENUMT(DataType_t) datatype, const char *coordname, const cgsize_t *s_rmin, const cgsize_t *s_rmax, const void *coord_ptr, int *C) @@ -3177,7 +4159,7 @@ int cg_coord_partial_write(int file_number, int B, int Z, int status; /* get memory addresses */ - cg = cgi_get_file(file_number); + cg = cgi_get_file(fn); if (cg == 0) return CG_ERROR; zone = cgi_get_zone(cg, B, Z); @@ -3198,13 +4180,35 @@ int cg_coord_partial_write(int file_number, int B, int Z, m_dimvals[n] = m_rmax[n]; } - status = cg_coord_general_write(file_number, B, Z, coordname, - type, s_rmin, s_rmax, - type, m_numdim, m_dimvals, m_rmin, m_rmax, + status = cg_coord_general_write(fn, B, Z, coordname, + datatype, s_rmin, s_rmax, + datatype, m_numdim, m_dimvals, m_rmin, m_rmax, coord_ptr, C); return status; } +/** + * \ingroup ZoneGridCoordinates + * + * \brief Write shaped array to a subset of grid coordinates + * + * \param[in] fn \FILE_fn + * \param[in] B \B_Base + * \param[in] Z \Z_Zone + * \param[in] coordname Name of the coordinate array. It is strongly advised to use the SIDS nomenclature conventions when naming the coordinate arrays to insure file compatibility. + * \param[in] s_type Data type of the coordinate array written to the file. Admissible data types for a coordinate array are RealSingle and RealDouble. + * \param[in] m_type Data type of an array in memory. Admissible data types for a coordinate array are RealSingle and RealDouble. + * \param[in] s_rmin Lower range index in file (eg., imin, jmin, kmin). + * \param[in] s_rmax Upper range index in file (eg., imax, jmax, kmax). + * \param[in] m_numdim Number of dimensions of array in memory. + * \param[in] m_dimvals Dimensions of array in memory. + * \param[in] m_rmin Lower range index in memory (eg., imin, jmin, kmin). + * \param[in] m_rmax Upper range index in memory (eg., imax, jmax, kmax). + * \param[in] coord_ptr Array of coordinate values. + * \param[out] C \C_Coordinate + * \return \ier + * + */ int cg_coord_general_write(int fn, int B, int Z, const char *coordname, CGNS_ENUMT(DataType_t) s_type, const cgsize_t *s_rmin, const cgsize_t *s_rmax, @@ -3435,11 +4439,23 @@ static int read_parent_data(cgns_section *section) /*----------------------------------------------------------------------*/ -int cg_nsections(int file_number, int B, int Z, int *nsections) +/** + * \ingroup ElementConnectivity + * + * \brief Get number of element sections + * + * \param[in] fn \FILE_fn + * \param[in] B \B_Base + * \param[in] Z \Z_Zone + * \param[out] nsections Number of element sections. + * \return \ier + * + */ +int cg_nsections(int fn, int B, int Z, int *nsections) { cgns_zone *zone; - cg = cgi_get_file(file_number); + cg = cgi_get_file(fn); if (cg == 0) return CG_ERROR; /* verify input */ @@ -3452,13 +4468,31 @@ int cg_nsections(int file_number, int B, int Z, int *nsections) return CG_OK; } -int cg_section_read(int file_number, int B, int Z, int S, char *SectionName, +/** + * \ingroup ElementConnectivity + * + * \brief Get info for an element section + * + * \param[in] fn \FILE_fn + * \param[in] B \B_Base + * \param[in] Z \Z_Zone + * \param[in] S \CONN_S + * \param[in] type Type of element. See the eligible types for ElementType_t in the Typedefs section. + * \param[out] SectionName Name of the Elements_t node. + * \param[out] start Index of first element in the section. + * \param[out] end Index of last element in the section. + * \param[out] nbndry Index of last boundary element in the section. Set to zero if the elements are unsorted. + * \param[out] parent_flag Flag indicating if the parent data are defined. If the parent data exist, parent_flag is set to 1; otherwise it is set to 0. + * \return \ier + * + */ +int cg_section_read(int fn, int B, int Z, int S, char *SectionName, CGNS_ENUMT(ElementType_t) *type, cgsize_t *start, cgsize_t *end, int *nbndry, int *parent_flag) { cgns_section *section; - cg = cgi_get_file(file_number); + cg = cgi_get_file(fn); if (cg == 0) return CG_ERROR; /* verify input */ @@ -3478,7 +4512,27 @@ int cg_section_read(int file_number, int B, int Z, int S, char *SectionName, return CG_OK; } -int cg_section_write(int file_number, int B, int Z, const char * SectionName, +/** + * \ingroup ElementConnectivity + * + * \brief Write fixed size element data + * + * \param[in] fn \FILE_fn + * \param[in] B \B_Base + * \param[in] Z \Z_Zone + * \param[in] type Type of element. See the eligible types for ElementType_t in the Typedefs section. + * \param[in] SectionName Name of the Elements_t node. + * \param[in] start Index of first element in the section. + * \param[in] end Index of last element in the section. + * \param[in] nbndry Index of last boundary element in the section. Set to zero if the elements are unsorted. + * \param[in] elements Element connectivity data. The element connectivity order is given in Element Numbering Conventions. + * \param[out] S \CONN_S + * \return \ier + * + * \details This writing function only works with fixed size elements. + * + */ +int cg_section_write(int fn, int B, int Z, const char * SectionName, CGNS_ENUMT(ElementType_t)type, cgsize_t start, cgsize_t end, int nbndry, const cgsize_t * elements, int *S) @@ -3491,7 +4545,7 @@ int cg_section_write(int file_number, int B, int Z, const char * SectionName, return CG_ERROR; } - if (cg_section_general_write(file_number, B, Z, SectionName, type, + if (cg_section_general_write(fn, B, Z, SectionName, type, cgi_datatype(CG_SIZE_DATATYPE), start, end, 0, nbndry, S)){ return CG_ERROR; @@ -3510,7 +4564,26 @@ int cg_section_write(int file_number, int B, int Z, const char * SectionName, return CG_OK; } -int cg_poly_section_write(int file_number, int B, int Z, const char * SectionName, +/** + * \ingroup ElementConnectivity + * + * \brief Write element data + * + * \param[in] fn \FILE_fn + * \param[in] B \B_Base + * \param[in] Z \Z_Zone + * \param[in] type Type of element. See the eligible types for ElementType_t in the Typedefs section. + * \param[in] SectionName Name of the Elements_t node. + * \param[in] start Index of first element in the section. + * \param[in] end Index of last element in the section. + * \param[in] nbndry Index of last boundary element in the section. Set to zero if the elements are unsorted. + * \param[in] elements Element connectivity data. The element connectivity order is given in Element Numbering Conventions. + * \param[in] connect_offset Element connectivity offset data. This is required for NGON_n, NFACE_n and MIXED according to Elements_t Structure Definition. + * \param[out] S \CONN_S + * \return \ier + * + */ +int cg_poly_section_write(int fn, int B, int Z, const char * SectionName, CGNS_ENUMT(ElementType_t)type, cgsize_t start, cgsize_t end, int nbndry, const cgsize_t * elements, const cgsize_t * connect_offset, int *S) @@ -3520,7 +4593,7 @@ int cg_poly_section_write(int file_number, int B, int Z, const char * SectionNam cgsize_t num, ElementDataSize=0; /* get file and check mode */ - cg = cgi_get_file(file_number); + cg = cgi_get_file(fn); if (cg == 0) return CG_ERROR; num = end - start + 1; @@ -3537,7 +4610,7 @@ int cg_poly_section_write(int file_number, int B, int Z, const char * SectionNam if (ElementDataSize < 0) return CG_ERROR; /* Create empty section */ - if (cg_section_general_write(file_number, B, Z, SectionName, type, + if (cg_section_general_write(fn, B, Z, SectionName, type, cgi_datatype(CG_SIZE_DATATYPE), start, end, ElementDataSize, nbndry, S)){ return CG_ERROR; @@ -3567,7 +4640,24 @@ int cg_poly_section_write(int file_number, int B, int Z, const char * SectionNam return CG_OK; } -int cg_section_partial_write(int file_number, int B, int Z, const char * SectionName, +/** + * \ingroup ElementConnectivity + * + * \brief Write subset of element data + * + * \param[in] fn \FILE_fn + * \param[in] B \B_Base + * \param[in] Z \Z_Zone + * \param[in] type Type of element. See the eligible types for ElementType_t in the Typedefs section. + * \param[in] SectionName Name of the Elements_t node. + * \param[in] start Index of first element in the section. + * \param[in] end Index of last element in the section. + * \param[in] nbndry Index of last boundary element in the section. Set to zero if the elements are unsorted. + * \param[out] S \CONN_S + * \return \ier + * + */ +int cg_section_partial_write(int fn, int B, int Z, const char * SectionName, CGNS_ENUMT(ElementType_t) type, cgsize_t start, cgsize_t end, int nbndry, int *S) { @@ -3580,20 +4670,39 @@ int cg_section_partial_write(int file_number, int B, int Z, const char * Section ElementDataSize = num * elemsize; /* create empty section */ - if (cg_section_general_write(file_number, B, Z, SectionName, type, + if (cg_section_general_write(fn, B, Z, SectionName, type, cgi_datatype(CG_SIZE_DATATYPE), start, end, ElementDataSize, nbndry, S)){ return CG_ERROR; } /* if not fixed element size, need to create valid data for sizing */ - if (cg_section_initialize(file_number, B, Z, *S)) { + if (cg_section_initialize(fn, B, Z, *S)) { return CG_ERROR; } return CG_OK; } -int cg_section_general_write(int file_number, int B, int Z, const char * SectionName, +/** + * \ingroup ElementConnectivity + * + * \brief Write section data without element data + * + * \param[in] fn \FILE_fn + * \param[in] B \B_Base + * \param[in] Z \Z_Zone + * \param[in] type Type of element. See the eligible types for ElementType_t in the Typedefs section. + * \param[in] elementDataType Data type of an array. Admissible data types are Integer and LongInteger. + * \param[in] SectionName Name of the Elements_t node. + * \param[in] start Index of first element in the section. + * \param[in] end Index of last element in the section. + * \param[in] elementDataSize Number of element connectivity data values. + * \param[in] nbndry Index of last boundary element in the section. Set to zero if the elements are unsorted. + * \param[out] S \CONN_S + * \return \ier + * + */ +int cg_section_general_write(int fn, int B, int Z, const char * SectionName, const CGNS_ENUMT(ElementType_t) type, const CGNS_ENUMT(DataType_t) elementDataType, cgsize_t start, cgsize_t end, cgsize_t elementDataSize, int nbndry, int *S) @@ -3650,7 +4759,7 @@ int cg_section_general_write(int file_number, int B, int Z, const char * Section } /* get file and check mode */ - cg = cgi_get_file(file_number); + cg = cgi_get_file(fn); if (cg == 0) return CG_ERROR; if (cgi_check_mode(cg->filename, cg->mode, CG_MODE_WRITE)) @@ -3771,12 +4880,11 @@ int cg_section_general_write(int file_number, int B, int Z, const char * Section /* Do not write I8 in library that is not 64bit */ return CG_ERROR; } + HDF5storage_type = CG_CONTIGUOUS; /* ElementRange */ if (cgi_new_node(section->id, "ElementRange", "IndexRange_t", &dummy_id, data_type, 1, &dim_vals, prange)) return CG_ERROR; - HDF5storage_type = CG_CONTIGUOUS; - /* ElementStartOffset */ if (section->connect_offset && cgi_new_node(section->id, section->connect_offset->name, "DataArray_t", @@ -3793,11 +4901,22 @@ int cg_section_general_write(int file_number, int B, int Z, const char * Section return CG_OK; } -/* This function is a kind of helper to be used after a cg_section_general_write +/** + * \ingroup ElementConnectivity + * + * \brief Initialize element data for not fixed size elements + * + * \param[in] fn \FILE_fn + * \param[in] B \B_Base + * \param[in] Z \Z_Zone + * \param[out] S \CONN_S + * \return \ier + * + * \details This function is a kind of helper to be used after a cg_section_general_write * cg_section_general_write reserve enough space while this function put * coherent init data. Then cg_poly_elements_partial_write would run safely. */ -int cg_section_initialize(int file_number, int B, int Z, int S) +int cg_section_initialize(int fn, int B, int Z, int S) { cgsize_t nm, nn, num, val; cgsize_t s_start, s_end, s_stride; @@ -3807,7 +4926,7 @@ int cg_section_initialize(int file_number, int B, int Z, int S) cgns_section *section = NULL; /* get file and check mode */ - cg = cgi_get_file(file_number); + cg = cgi_get_file(fn); if (cg == 0) return CG_ERROR; /* verify input */ @@ -4010,17 +5129,28 @@ int cg_section_initialize(int file_number, int B, int Z, int S) return CG_OK; } - /*----------------------------------------------------------------------*/ -/* This function was created for revision 1.2 to return the size of the - connectivity vector, which can't be known without it *when type=MIXED */ - -int cg_ElementDataSize(int file_number, int B, int Z, int S, +/** + * \ingroup ElementConnectivity + * + * \brief Get size of element connectivity data array + * + * \param[in] fn \FILE_fn + * \param[in] B \B_Base + * \param[in] Z \Z_Zone + * \param[in] S \CONN_S + * \param[out] ElementDataSize Number of element connectivity data values. + * \return \ier + * + * \details This function was created for revision 1.2 to return the size of the + * connectivity vector, which can't be known without it *when type=MIXED* + */ +int cg_ElementDataSize(int fn, int B, int Z, int S, cgsize_t *ElementDataSize) { cgns_section *section; - cg = cgi_get_file(file_number); + cg = cgi_get_file(fn); if (cg == 0) return CG_ERROR; /* verify input */ @@ -4033,13 +5163,30 @@ int cg_ElementDataSize(int file_number, int B, int Z, int S, return CG_OK; } -int cg_ElementPartialSize(int file_number, int B, int Z, int S, +/** + * \ingroup ElementConnectivity + * + * \brief Get size of element connectivity data array for partial read + * + * \param[in] fn \FILE_fn + * \param[in] B \B_Base + * \param[in] Z \Z_Zone + * \param[in] S \CONN_S + * \param[in] start Index of first element in the section. + * \param[in] end Index of last element in the section. + * \param[out] ElementDataSize Number of element connectivity data values. + * \return \ier + * + * \details This function was created for revision 1.2 to return the size of the + * connectivity vector, which can't be known without it *when type=MIXED* + */ +int cg_ElementPartialSize(int fn, int B, int Z, int S, cgsize_t start, cgsize_t end, cgsize_t *ElementDataSize) { cgns_section *section; cgsize_t size, cnt, *offset_data; - cg = cgi_get_file(file_number); + cg = cgi_get_file(fn); if (cg == 0) return CG_ERROR; /* verify input */ @@ -4131,14 +5278,27 @@ int cg_ElementPartialSize(int file_number, int B, int Z, int S, } /*----------------------------------------------------------------------*/ - -int cg_elements_read(int file_number, int B, int Z, int S, cgsize_t *elements, +/** + * \ingroup ElementConnectivity + * + * \brief Read fixed size element data + * + * \param[in] fn \FILE_fn + * \param[in] B \B_Base + * \param[in] Z \Z_Zone + * \param[in] S \CONN_S + * \param[out] elements Element connectivity data. The element connectivity order is given in Element Numbering Conventions. + * \param[out] parent_data For boundary or interface elements, this array contains information on the cell(s) and cell face(s) sharing the element. If you do not need to read the ParentData when reading the ElementData, you may set the value to NULL. + * \return \ier + * + */ +int cg_elements_read(int fn, int B, int Z, int S, cgsize_t *elements, cgsize_t *parent_data) { cgns_section *section; cgsize_t count, num, ElementDataSize=0; - cg = cgi_get_file(file_number); + cg = cgi_get_file(fn); if (cg == 0) return CG_ERROR; /* verify input */ @@ -4191,15 +5351,29 @@ int cg_elements_read(int file_number, int B, int Z, int S, cgsize_t *elements, } /*----------------------------------------------------------------------*/ - -int cg_poly_elements_read(int file_number, int B, int Z, int S, cgsize_t *elements, +/** + * \ingroup ElementConnectivity + * + * \brief Read element data + * + * \param[in] fn \FILE_fn + * \param[in] B \B_Base + * \param[in] Z \Z_Zone + * \param[in] S \CONN_S + * \param[out] elements Element connectivity data. The element connectivity order is given in Element Numbering Conventions. + * \param[out] connect_offset Element connectivity offset data. This is required for NGON_n, NFACE_n and MIXED according to Elements_t Structure Definition. + * \param[out] parent_data For boundary or interface elements, this array contains information on the cell(s) and cell face(s) sharing the element. If you do not need to read the ParentData when reading the ElementData, you may set the value to NULL. + * \return \ier + * + */ +int cg_poly_elements_read(int fn, int B, int Z, int S, cgsize_t *elements, cgsize_t *connect_offset, cgsize_t *parent_data) { cgns_section *section; cgsize_t count, num, ElementDataSize=0, ConnectOffsetSize=0; cgsize_t *offset_data=0; - cg = cgi_get_file(file_number); + cg = cgi_get_file(fn); if (cg == 0) return CG_ERROR; /* verify input */ @@ -4264,7 +5438,24 @@ int cg_poly_elements_read(int file_number, int B, int Z, int S, cgsize_t *elemen } /*----------------------------------------------------------------------*/ -int cg_elements_partial_read(int file_number, int B, int Z, int S, + +/** + * \ingroup ElementConnectivity + * + * \brief Read subset of fixed size element data + * + * \param[in] fn \FILE_fn + * \param[in] B \B_Base + * \param[in] Z \Z_Zone + * \param[in] S \CONN_S + * \param[in] start Index of first element in the section. + * \param[in] end Index of last element in the section. + * \param[out] elements Element connectivity data. The element connectivity order is given in Element Numbering Conventions. + * \param[out] parent_data For boundary or interface elements, this array contains information on the cell(s) and cell face(s) sharing the element. If you do not need to read the ParentData when reading the ElementData, you may set the value to NULL. + * \return \ier + * + */ +int cg_elements_partial_read(int fn, int B, int Z, int S, cgsize_t start, cgsize_t end, cgsize_t *elements, cgsize_t *parent_data) { @@ -4274,7 +5465,7 @@ int cg_elements_partial_read(int file_number, int B, int Z, int S, cgsize_t s_start[2], s_end[2], s_stride[2]; cgsize_t m_start[2], m_end[2], m_stride[2], m_dim[2]; - cg = cgi_get_file(file_number); + cg = cgi_get_file(fn); if (cg == 0) return CG_ERROR; /* verify input */ @@ -4437,19 +5628,34 @@ int cg_elements_partial_read(int file_number, int B, int Z, int S, return CG_OK; } - /*----------------------------------------------------------------------*/ -int cg_elements_general_read(int file_number, int B, int Z, int S, +/** + * \ingroup ElementConnectivity + * + * \brief Read subset of fixed size element data to a typed array + * + * \param[in] fn \FILE_fn + * \param[in] B \B_Base + * \param[in] Z \Z_Zone + * \param[in] S \CONN_S + * \param[in] start Index of first element in the section. + * \param[in] end Index of last element in the section. + * \param[in] m_type Data type of an array in memory. Admissible data types are Integer and LongInteger. + * \param[out] elements Element connectivity data. The element connectivity order is given in Element Numbering Conventions. + * \return \ier + * + */ +int cg_elements_general_read(int fn, int B, int Z, int S, cgsize_t start, cgsize_t end, CGNS_ENUMT(DataType_t) m_type, void* elements) { cgns_section* section; - cgsize_t size; + cgsize_t size = 0; cgsize_t s_start[1], s_end[1], s_stride[1]; cgsize_t m_start[1], m_end[1], m_stride[1], m_dim[1]; CGNS_ENUMT(DataType_t) s_type; int ier = CG_OK; - cg = cgi_get_file(file_number); + cg = cgi_get_file(fn); if (cg == 0) return CG_ERROR; /* verify input */ @@ -4563,8 +5769,24 @@ int cg_elements_general_read(int file_number, int B, int Z, int S, /*----------------------------------------------------------------------*/ -int cg_parent_elements_general_read(int file_number, int B, int Z, int S, - cgsize_t start, cgsize_t end, CGNS_ENUMT(DataType_t) m_type, void* parelem) +/** + * \ingroup ElementConnectivity + * + * \brief Read parent info for an element section + * + * \param[in] fn \FILE_fn + * \param[in] B \B_Base + * \param[in] Z \Z_Zone + * \param[in] S \CONN_S + * \param[in] start Index of first element in the section. + * \param[in] end Index of last element in the section. + * \param[in] m_type Data type of an array in memory. Admissible data types are Integer and LongInteger. + * \param[out] ParentElement For boundary or interface elements, this array contains information on the cell(s) sharing the element. + * \return \ier + * + */ +int cg_parent_elements_general_read(int fn, int B, int Z, int S, + cgsize_t start, cgsize_t end, CGNS_ENUMT(DataType_t) m_type, void* ParentElement) { cgns_section* section; cgsize_t s_start[2], s_end[2], s_stride[2]; @@ -4572,7 +5794,7 @@ int cg_parent_elements_general_read(int file_number, int B, int Z, int S, CGNS_ENUMT(DataType_t) s_type; int ier = CG_OK; - cg = cgi_get_file(file_number); + cg = cgi_get_file(fn); if (cg == 0) return CG_ERROR; /* verify input */ @@ -4596,7 +5818,7 @@ int cg_parent_elements_general_read(int file_number, int B, int Z, int S, return CG_ERROR; } - if (parelem == NULL || section->parelem == NULL) { + if (ParentElement == NULL || section->parelem == NULL) { cgi_error("Error reading ParentElementsPosition."); return CG_ERROR; } @@ -4623,7 +5845,7 @@ int cg_parent_elements_general_read(int file_number, int B, int Z, int S, if (section->connect->dim_vals[0] == m_end[0] && section->connect->dim_vals[1] == 2) { if (cgio_read_all_data_type(cg->cgio, section->parelem->id, - cgi_adf_datatype(m_type), parelem)) { + cgi_adf_datatype(m_type), ParentElement)) { cg_io_error("cgio_read_all_data_type"); return CG_ERROR; } @@ -4631,7 +5853,7 @@ int cg_parent_elements_general_read(int file_number, int B, int Z, int S, else { if (cgio_read_data_type(cg->cgio, section->parelem->id, s_start, s_end, s_stride, cgi_adf_datatype(m_type), 2, m_dim, - m_start, m_end, m_stride, parelem)) { + m_start, m_end, m_stride, ParentElement)) { cg_io_error("cgio_read_data_type"); return CG_ERROR; } @@ -4663,7 +5885,7 @@ int cg_parent_elements_general_read(int file_number, int B, int Z, int S, return CG_ERROR; } } - ier = cgi_convert_data(2*m_dim[0], s_type, conv_data, m_type, parelem); + ier = cgi_convert_data(2*m_dim[0], s_type, conv_data, m_type, ParentElement); free(conv_data); if (ier) return CG_ERROR; } @@ -4672,7 +5894,7 @@ int cg_parent_elements_general_read(int file_number, int B, int Z, int S, if (section->parelem->dim_vals[0] == m_dim[0] && section->parelem->dim_vals[1] == 2) { if (cgio_read_all_data_type(cg->cgio, section->parelem->id, - cgi_adf_datatype(m_type), parelem)) { + cgi_adf_datatype(m_type), ParentElement)) { cg_io_error("cgio_read_all_data_type"); return CG_ERROR; } @@ -4680,7 +5902,7 @@ int cg_parent_elements_general_read(int file_number, int B, int Z, int S, else { if (cgio_read_data_type(cg->cgio, section->parelem->id, s_start, s_end, s_stride, cgi_adf_datatype(m_type), 2, m_dim, - m_start, m_end, m_stride, parelem)) { + m_start, m_end, m_stride, ParentElement)) { cg_io_error("cgio_read_data_type"); return CG_ERROR; } @@ -4690,8 +5912,25 @@ int cg_parent_elements_general_read(int file_number, int B, int Z, int S, } /*----------------------------------------------------------------------*/ -int cg_parent_elements_position_general_read(int file_number, int B, int Z, int S, - cgsize_t start, cgsize_t end, CGNS_ENUMT(DataType_t) m_type, void* parface) + +/** + * \ingroup ElementConnectivity + * + * \brief Read parent position info for an element section + * + * \param[in] fn \FILE_fn + * \param[in] B \B_Base + * \param[in] Z \Z_Zone + * \param[in] S \CONN_S + * \param[in] start Index of first element in the section. + * \param[in] end Index of last element in the section. + * \param[in] m_type Data type of an array in memory. Admissible data types are Integer and LongInteger. + * \param[out] ParentFace For boundary or interface elements, this array contains information on the cell face(s) sharing the element. + * \return \ier + * + */ +int cg_parent_elements_position_general_read(int fn, int B, int Z, int S, + cgsize_t start, cgsize_t end, CGNS_ENUMT(DataType_t) m_type, void* ParentFace) { cgns_section* section; cgsize_t s_start[2], s_end[2], s_stride[2]; @@ -4699,7 +5938,7 @@ int cg_parent_elements_position_general_read(int file_number, int B, int Z, int CGNS_ENUMT(DataType_t) s_type; int ier = CG_OK; - cg = cgi_get_file(file_number); + cg = cgi_get_file(fn); if (cg == 0) return CG_ERROR; /* verify input */ @@ -4723,7 +5962,7 @@ int cg_parent_elements_position_general_read(int file_number, int B, int Z, int return CG_ERROR; } - if (parface == NULL || section->parface == NULL) { + if (ParentFace == NULL || section->parface == NULL) { cgi_error("Error reading ParentElementsPosition."); return CG_ERROR; } @@ -4750,7 +5989,7 @@ int cg_parent_elements_position_general_read(int file_number, int B, int Z, int if (section->connect->dim_vals[0] == m_end[0] && section->connect->dim_vals[1] == 2) { if (cgio_read_all_data_type(cg->cgio, section->parface->id, - cgi_adf_datatype(m_type), parface)) { + cgi_adf_datatype(m_type), ParentFace)) { cg_io_error("cgio_read_all_data_type"); return CG_ERROR; } @@ -4758,7 +5997,7 @@ int cg_parent_elements_position_general_read(int file_number, int B, int Z, int else { if (cgio_read_data_type(cg->cgio, section->parface->id, s_start, s_end, s_stride, cgi_adf_datatype(m_type), 2, m_dim, - m_start, m_end, m_stride, parface)) { + m_start, m_end, m_stride, ParentFace)) { cg_io_error("cgio_read_data_type"); return CG_ERROR; } @@ -4790,7 +6029,7 @@ int cg_parent_elements_position_general_read(int file_number, int B, int Z, int return CG_ERROR; } } - ier = cgi_convert_data(m_dim[0]*2, s_type, conv_data, m_type, parface); + ier = cgi_convert_data(m_dim[0]*2, s_type, conv_data, m_type, ParentFace); free(conv_data); if (ier) return CG_ERROR; } @@ -4799,7 +6038,7 @@ int cg_parent_elements_position_general_read(int file_number, int B, int Z, int if (section->connect->dim_vals[0] == m_dim[0] && section->connect->dim_vals[1] == 2) { if (cgio_read_all_data_type(cg->cgio, section->parface->id, - cgi_adf_datatype(m_type), parface)) { + cgi_adf_datatype(m_type), ParentFace)) { cg_io_error("cgio_read_all_data_type"); return CG_ERROR; } @@ -4807,7 +6046,7 @@ int cg_parent_elements_position_general_read(int file_number, int B, int Z, int else { if (cgio_read_data_type(cg->cgio, section->parface->id, s_start, s_end, s_stride, cgi_adf_datatype(m_type), 2, m_dim, - m_start, m_end, m_stride, parface)) { + m_start, m_end, m_stride, ParentFace)) { cg_io_error("cgio_read_data_type"); return CG_ERROR; } @@ -4817,7 +6056,24 @@ int cg_parent_elements_position_general_read(int file_number, int B, int Z, int } /*----------------------------------------------------------------------*/ -int cg_poly_elements_partial_read(int file_number, int B, int Z, int S, +/** + * \ingroup ElementConnectivity + * + * \brief Read subset of element data + * + * \param[in] fn \FILE_fn + * \param[in] B \B_Base + * \param[in] Z \Z_Zone + * \param[in] S \CONN_S + * \param[in] start Index of first element in the section. + * \param[in] end Index of last element in the section. + * \param[out] elements Element connectivity data. The element connectivity order is given in Element Numbering Conventions. + * \param[out] connect_offset Element connectivity offset data. This is required for NGON_n, NFACE_n and MIXED according to Elements_t Structure Definition. + * \param[out] parent_data For boundary or interface elements, this array contains information on the cell(s) and cell face(s) sharing the element. If you do not need to read the ParentData when reading the ElementData, you may set the value to NULL. + * \return \ier + * + */ +int cg_poly_elements_partial_read(int fn, int B, int Z, int S, cgsize_t start, cgsize_t end, cgsize_t *elements, cgsize_t *connect_offset, cgsize_t *parent_data) { @@ -4827,7 +6083,7 @@ int cg_poly_elements_partial_read(int file_number, int B, int Z, int S, cgsize_t s_start[2], s_end[2], s_stride[2]; cgsize_t m_start[2], m_end[2], m_stride[2], m_dim[2]; - cg = cgi_get_file(file_number); + cg = cgi_get_file(fn); if (cg == 0) return CG_ERROR; /* verify input */ @@ -4996,7 +6252,24 @@ int cg_poly_elements_partial_read(int file_number, int B, int Z, int S, } /*----------------------------------------------------------------------*/ -int cg_poly_elements_general_read(int file_number, int B, int Z, int S, +/** + * \ingroup ElementConnectivity + * + * \brief Read subset of element data to typed arrays + * + * \param[in] fn \FILE_fn + * \param[in] B \B_Base + * \param[in] Z \Z_Zone + * \param[in] S \CONN_S + * \param[in] start Index of first element in the section. + * \param[in] end Index of last element in the section. + * \param[in] m_type Data type of an array in memory. Admissible data types are Integer and LongInteger. + * \param[out] elements Element connectivity data. The element connectivity order is given in Element Numbering Conventions. + * \param[out] connect_offset Element connectivity offset data. This is required for NGON_n, NFACE_n and MIXED according to Elements_t Structure Definition. + * \return \ier + * + */ +int cg_poly_elements_general_read(int fn, int B, int Z, int S, cgsize_t start, cgsize_t end, CGNS_ENUMT(DataType_t) m_type, void* elements, void* connect_offset) { @@ -5007,7 +6280,7 @@ int cg_poly_elements_general_read(int file_number, int B, int Z, int S, CGNS_ENUMT(DataType_t) s_type; int ier = CG_OK; - cg = cgi_get_file(file_number); + cg = cgi_get_file(fn); if (cg == 0) return CG_ERROR; /* verify input */ @@ -5130,12 +6403,26 @@ int cg_poly_elements_general_read(int file_number, int B, int Z, int S, } /*----------------------------------------------------------------------*/ - -int cg_elements_partial_write(int file_number, int B, int Z, int S, +/** + * \ingroup ElementConnectivity + * + * \brief Write element data for a fixed size element section + * + * \param[in] fn \FILE_fn + * \param[in] B \B_Base + * \param[in] Z \Z_Zone + * \param[in] S \CONN_S + * \param[in] start Index of first element in the section. + * \param[in] end Index of last element in the section. + * \param[in] elements Element connectivity data. The element connectivity order is given in Element Numbering Conventions. + * \return \ier + * + */ +int cg_elements_partial_write(int fn, int B, int Z, int S, cgsize_t start, cgsize_t end, const cgsize_t *elements) { - if (cg_elements_general_write(file_number, B, Z, S, + if (cg_elements_general_write(fn, B, Z, S, start, end, cgi_datatype(CG_SIZE_DATATYPE), elements)) { return CG_ERROR; } @@ -5302,7 +6589,23 @@ int cg_elements_partial_write(int file_number, int B, int Z, int S, } \ } -int cg_elements_general_write(int file_number, int B, int Z, int S, +/** + * \ingroup ElementConnectivity + * + * \brief Write element data for a fixed size element section + * + * \param[in] fn \FILE_fn + * \param[in] B \B_Base + * \param[in] Z \Z_Zone + * \param[in] S \CONN_S + * \param[in] start Index of first element in the section. + * \param[in] end Index of last element in the section. + * \param[in] m_type Data type of an array in memory. Admissible data types are Integer and LongInteger. + * \param[in] elements Element connectivity data. The element connectivity order is given in Element Numbering Conventions. + * \return \ier + * + */ +int cg_elements_general_write(int fn, int B, int Z, int S, cgsize_t start, cgsize_t end, const CGNS_ENUMT(DataType_t) m_type, const void *elements) { @@ -5318,7 +6621,7 @@ int cg_elements_general_write(int file_number, int B, int Z, int S, int ier = CG_OK; /* get file and check mode */ - cg = cgi_get_file(file_number); + cg = cgi_get_file(fn); if (cg == 0) return CG_ERROR; if (cgi_check_mode(cg->filename, cg->mode, CG_MODE_WRITE)) @@ -5601,11 +6904,27 @@ int cg_elements_general_write(int file_number, int B, int Z, int S, return CG_OK; } -int cg_poly_elements_partial_write(int file_number, int B, int Z, int S, +/** + * \ingroup ElementConnectivity + * + * \brief Write element data for an element section + * + * \param[in] fn \FILE_fn + * \param[in] B \B_Base + * \param[in] Z \Z_Zone + * \param[in] S \CONN_S + * \param[in] start Index of first element in the section. + * \param[in] end Index of last element in the section. + * \param[in] elements Element connectivity data. The element connectivity order is given in Element Numbering Conventions. + * \param[in] connect_offset Element connectivity offset data. This is required for NGON_n, NFACE_n and MIXED according to Elements_t Structure Definition. + * \return \ier + * + */ +int cg_poly_elements_partial_write(int fn, int B, int Z, int S, cgsize_t start, cgsize_t end, const cgsize_t *elements, const cgsize_t *connect_offset) { - if (cg_poly_elements_general_write(file_number, B, Z, S, + if (cg_poly_elements_general_write(fn, B, Z, S, start, end, cgi_datatype(CG_SIZE_DATATYPE), elements, connect_offset)) { return CG_ERROR; @@ -5613,7 +6932,24 @@ int cg_poly_elements_partial_write(int file_number, int B, int Z, int S, return CG_OK; } -int cg_poly_elements_general_write(int file_number, int B, int Z, int S, +/** + * \ingroup ElementConnectivity + * + * \brief Write element data for an element section + * + * \param[in] fn \FILE_fn + * \param[in] B \B_Base + * \param[in] Z \Z_Zone + * \param[in] S \CONN_S + * \param[in] start Index of first element in the section. + * \param[in] end Index of last element in the section. + * \param[in] m_type Data type of an array in memory. Admissible data types are Integer and LongInteger. + * \param[in] elements Element connectivity data. The element connectivity order is given in Element Numbering Conventions. + * \param[in] input_connect_offset Element connectivity offset data. This is required for NGON_n, NFACE_n and MIXED according to Elements_t Structure Definition. + * \return \ier + * + */ +int cg_poly_elements_general_write(int fn, int B, int Z, int S, cgsize_t start, cgsize_t end, const CGNS_ENUMT(DataType_t) m_type, const void *elements, const void *input_connect_offset) { @@ -5634,7 +6970,7 @@ int cg_poly_elements_general_write(int file_number, int B, int Z, int S, CGNS_ENUMT(DataType_t) s_type; /* get file and check mode */ - cg = cgi_get_file(file_number); + cg = cgi_get_file(fn); if (cg == 0) return CG_ERROR; if (cgi_check_mode(cg->filename, cg->mode, CG_MODE_WRITE)) @@ -6198,15 +7534,27 @@ int cg_poly_elements_general_write(int file_number, int B, int Z, int S, } /*----------------------------------------------------------------------*/ - -int cg_parent_data_write(int file_number, int B, int Z, int S, +/** + * \ingroup ElementConnectivity + * + * \brief Write parent info for an element section + * + * \param[in] fn \FILE_fn + * \param[in] B \B_Base + * \param[in] Z \Z_Zone + * \param[in] S \CONN_S + * \param[in] parent_data For boundary or interface elements, this array contains information on the cell(s) and cell face(s) sharing the element. If you do not need to read the ParentData when reading the ElementData, you may set the value to NULL. + * \return \ier + * + */ +int cg_parent_data_write(int fn, int B, int Z, int S, const cgsize_t * parent_data) { cgns_section *section; cgsize_t num; /* get file and check mode */ - cg = cgi_get_file(file_number); + cg = cgi_get_file(fn); if (cg == 0) return CG_ERROR; if (cgi_check_mode(cg->filename, cg->mode, CG_MODE_WRITE)) @@ -6289,9 +7637,22 @@ int cg_parent_data_write(int file_number, int B, int Z, int S, return CG_OK; } - - -int cg_parent_data_partial_write(int file_number, int B, int Z, int S, +/** + * \ingroup ElementConnectivity + * + * \brief Write subset of parent info for an element section + * + * \param[in] fn \FILE_fn + * \param[in] B \B_Base + * \param[in] Z \Z_Zone + * \param[in] S \CONN_S + * \param[in] start Index of first element in the section. + * \param[in] end Index of last element in the section. + * \param[in] parent_data For boundary or interface elements, this array contains information on the cell(s) and cell face(s) sharing the element. If you do not need to read the ParentData when reading the ElementData, you may set the value to NULL. + * \return \ier + * + */ +int cg_parent_data_partial_write(int fn, int B, int Z, int S, cgsize_t start, cgsize_t end, const cgsize_t *parent_data) { @@ -6299,7 +7660,7 @@ int cg_parent_data_partial_write(int file_number, int B, int Z, int S, cgsize_t size; /* get file and check mode */ - cg = cgi_get_file(file_number); + cg = cgi_get_file(fn); if (cg == 0) return CG_ERROR; if (cgi_check_mode(cg->filename, cg->mode, CG_MODE_WRITE)) return CG_ERROR; @@ -6414,11 +7775,23 @@ int cg_parent_data_partial_write(int file_number, int B, int Z, int S, * Read and Write FlowSolution_t Nodes \*****************************************************************************/ -int cg_nsols(int file_number, int B, int Z, int *nsols) +/** + * \ingroup FlowSolution + * + * \brief Get number of FlowSolution_t nodes + * + * \param[in] fn \FILE_fn + * \param[in] B \B_Base + * \param[in] Z \Z_Zone + * \param[out] nsols Number of flow solutions for zone Z. + * \return \ier + * + */ +int cg_nsols(int fn, int B, int Z, int *nsols) { cgns_zone *zone; - cg = cgi_get_file(file_number); + cg = cgi_get_file(fn); if (cg == 0) return CG_ERROR; if (cgi_check_mode(cg->filename, cg->mode, CG_MODE_READ)) return CG_ERROR; @@ -6430,12 +7803,26 @@ int cg_nsols(int file_number, int B, int Z, int *nsols) return CG_OK; } -int cg_sol_info(int file_number, int B, int Z, int S, char *solname, +/** + * \ingroup FlowSolution + * + * \brief Get information about a FlowSolution_t node + * + * \param[in] fn \FILE_fn + * \param[in] B \B_Base + * \param[in] Z \Z_Zone + * \param[in] S \SOL_S + * \param[out] solname Name of the flow solution. + * \param[out] location Grid location where the solution is recorded. The current admissible locations are Vertex, CellCenter, IFaceCenter, JFaceCenter, and KFaceCenter. + * \return \ier + * + */ +int cg_sol_info(int fn, int B, int Z, int S, char *solname, CGNS_ENUMT(GridLocation_t) *location) { cgns_sol *sol; - cg = cgi_get_file(file_number); + cg = cgi_get_file(fn); if (cg == 0) return CG_ERROR; if (cgi_check_mode(cg->filename, cg->mode, CG_MODE_READ)) return CG_ERROR; @@ -6448,11 +7835,11 @@ int cg_sol_info(int file_number, int B, int Z, int S, char *solname, return CG_OK; } -int cg_sol_id(int file_number, int B, int Z, int S, double *sol_id) +int cg_sol_id(int fn, int B, int Z, int S, double *sol_id) { cgns_sol *sol; - cg = cgi_get_file(file_number); + cg = cgi_get_file(fn); if (cg == 0) return CG_ERROR; if (cgi_check_mode(cg->filename, cg->mode, CG_MODE_READ)) return CG_ERROR; @@ -6464,7 +7851,21 @@ int cg_sol_id(int file_number, int B, int Z, int S, double *sol_id) return CG_OK; } -int cg_sol_write(int file_number, int B, int Z, const char * solname, +/** + * \ingroup FlowSolution + * + * \brief Create and/or write to a FlowSolution_t node + * + * \param[in] fn \FILE_fn + * \param[in] B \B_Base + * \param[in] Z \Z_Zone + * \param[in] solname Name of the flow solution. + * \param[in] location Grid location where the solution is recorded. The current admissible locations are Vertex, CellCenter, IFaceCenter, JFaceCenter, and KFaceCenter. + * \param[out] S \SOL_S + * \return \ier + * + */ +int cg_sol_write(int fn, int B, int Z, const char * solname, CGNS_ENUMT(GridLocation_t) location, int *S) { cgns_zone *zone; @@ -6487,7 +7888,7 @@ int cg_sol_write(int file_number, int B, int Z, const char * solname, } */ /* get memory address for FlowSolution node */ - cg = cgi_get_file(file_number); + cg = cgi_get_file(fn); if (cg == 0) return CG_ERROR; if (cgi_check_mode(cg->filename, cg->mode, CG_MODE_WRITE)) return CG_ERROR; @@ -6562,12 +7963,26 @@ int cg_sol_write(int file_number, int B, int Z, const char * solname, return CG_OK; } -int cg_sol_size(int file_number, int B, int Z, int S, +/** + * \ingroup FlowSolution + * + * \brief Get the dimensions of a FlowSolution_t node + * + * \param[in] fn \FILE_fn + * \param[in] B \B_Base + * \param[in] Z \Z_Zone + * \param[in] S \SOL_S + * \param[out] data_dim Number of dimensions defining the solution data. If a point set has been defined, this will be 1, otherwise this will be the current zone index dimension. + * \param[out] dim_vals The array of data_dim dimensions for the solution data. + * \return \ier + * + */ +int cg_sol_size(int fn, int B, int Z, int S, int *data_dim, cgsize_t *dim_vals) { cgns_sol *sol; - cg = cgi_get_file(file_number); + cg = cgi_get_file(fn); if (cg == 0) return CG_ERROR; if (cgi_check_mode(cg->filename, cg->mode, CG_MODE_READ)) return CG_ERROR; @@ -6589,7 +8004,20 @@ int cg_sol_size(int file_number, int B, int Z, int S, } /*----------------------------------------------------------------------*/ - +/** + * \ingroup FlowSolution + * + * \brief Get info about a point set FlowSolution_t node + * + * \param[in] fn \FILE_fn + * \param[in] B \B_Base + * \param[in] Z \Z_Zone + * \param[in] S \SOL_S + * \param[out] ptset_type Type of point set defining the interface in the current solution; either PointRange or PointList. + * \param[out] npnts Number of points defining the interface in the current solution. For a ptset_type of PointRange, npnts is always two. For a ptset_type of PointList, npnts is the number of points in the PointList. + * \return \ier + * + */ int cg_sol_ptset_info(int fn, int B, int Z, int S, CGNS_ENUMT(PointSetType_t) *ptset_type, cgsize_t *npnts) { @@ -6613,6 +8041,19 @@ int cg_sol_ptset_info(int fn, int B, int Z, int S, return CG_OK; } +/** + * \ingroup FlowSolution + * + * \brief Read a point set FlowSolution_t node + * + * \param[in] fn \FILE_fn + * \param[in] B \B_Base + * \param[in] Z \Z_Zone + * \param[in] S \SOL_S + * \param[out] pnts Array of points defining the interface in the current solution. + * \return \ier + * + */ int cg_sol_ptset_read(int fn, int B, int Z, int S, cgsize_t *pnts) { int dim = 0; @@ -6636,6 +8077,23 @@ int cg_sol_ptset_read(int fn, int B, int Z, int S, cgsize_t *pnts) return CG_OK; } +/** + * \ingroup FlowSolution + * + * \brief Create a point set FlowSolution_t node + * + * \param[in] fn \FILE_fn + * \param[in] B \B_Base + * \param[in] Z \Z_Zone + * \param[in] solname Name of the flow solution. + * \param[in] location Grid location where the solution is recorded. The current admissible locations are Vertex, CellCenter, IFaceCenter, JFaceCenter, and KFaceCenter. + * \param[in] ptset_type Type of point set defining the interface in the current solution; either PointRange or PointList. + * \param[in] npnts Number of points defining the interface in the current solution. For a ptset_type of PointRange, npnts is always two. For a ptset_type of PointList, npnts is the number of points in the PointList. + * \param[in] pnts Array of points defining the interface in the current solution. + * \param[out] S \SOL_S + * \return \ier + * + */ int cg_sol_ptset_write(int fn, int B, int Z, const char *solname, CGNS_ENUMT(GridLocation_t) location, CGNS_ENUMT(PointSetType_t) ptset_type, cgsize_t npnts, @@ -6696,12 +8154,24 @@ int cg_sol_ptset_write(int fn, int B, int Z, const char *solname, /*****************************************************************************\ * Read and Write flow field DataArray_t Nodes \*****************************************************************************/ - -int cg_nfields(int file_number, int B, int Z, int S, int *nfields) +/** + * \ingroup FlowSolutionData + * + * \brief Get number of flow solution arrays + * + * \param[in] fn \FILE_fn + * \param[in] B \B_Base + * \param[in] Z \Z_Zone + * \param[in] S \SOL_S + * \param[out] nfields Number of data arrays in flow solution S. + * \return \ier + * + */ +int cg_nfields(int fn, int B, int Z, int S, int *nfields) { cgns_sol *sol; - cg = cgi_get_file(file_number); + cg = cgi_get_file(fn); if (cg == 0) return CG_ERROR; if (cgi_check_mode(cg->filename, cg->mode, CG_MODE_READ)) return CG_ERROR; @@ -6713,12 +8183,27 @@ int cg_nfields(int file_number, int B, int Z, int S, int *nfields) return CG_OK; } -int cg_field_info(int file_number, int B, int Z, int S, int F, - CGNS_ENUMT(DataType_t) *type, char *fieldname) +/** + * \ingroup FlowSolutionData + * + * \brief Get info about a flow solution array + * + * \param[in] fn \FILE_fn + * \param[in] B \B_Base + * \param[in] Z \Z_Zone + * \param[in] S \SOL_S + * \param[in] F Solution array index number, where 1 ≤ F ≤ nfields. + * \param[out] datatype Data type of the solution array written to the file. Admissible data types for a solution array are Integer, LongInteger, RealSingle, and RealDouble. + * \param[out] fieldname Name of the solution array. It is strongly advised to use the SIDS nomenclature conventions when naming the solution arrays to insure file compatibility. + * \return \ier + * + */ +int cg_field_info(int fn, int B, int Z, int S, int F, + CGNS_ENUMT(DataType_t) *datatype, char *fieldname) { cgns_array *field; - cg = cgi_get_file(file_number); + cg = cgi_get_file(fn); if (cg == 0) return CG_ERROR; if (cgi_check_mode(cg->filename, cg->mode, CG_MODE_READ)) return CG_ERROR; @@ -6727,20 +8212,37 @@ int cg_field_info(int file_number, int B, int Z, int S, int F, if (field==0) return CG_ERROR; strcpy(fieldname, field->name); - *type = cgi_datatype(field->data_type); + *datatype = cgi_datatype(field->data_type); return CG_OK; } -int cg_field_read(int file_number, int B, int Z, int S, const char *fieldname, - CGNS_ENUMT(DataType_t) type, const cgsize_t *s_rmin, +/** + * \ingroup FlowSolutionData + * + * \brief Read flow solution + * + * \param[in] fn \FILE_fn + * \param[in] B \B_Base + * \param[in] Z \Z_Zone + * \param[in] S \SOL_S + * \param[in] fieldname Name of the solution array. It is strongly advised to use the SIDS nomenclature conventions when naming the solution arrays to insure file compatibility. + * \param[in] mem_datatype Data type of an array in memory. Admissible data types for a solution array are Integer, LongInteger, RealSingle, and RealDouble. + * \param[in] s_rmin Lower range index in file (eg., imin, jmin, kmin). + * \param[in] s_rmax Upper range index in file (eg., imax, jmax, kmax). + * \param[out] field_ptr Array of solution values. + * \return \ier + * + */ +int cg_field_read(int fn, int B, int Z, int S, const char *fieldname, + CGNS_ENUMT(DataType_t) mem_datatype, const cgsize_t *s_rmin, const cgsize_t *s_rmax, void *field_ptr) { cgns_sol *sol; int n, m_numdim; /* get memory addresses */ - cg = cgi_get_file(file_number); + cg = cgi_get_file(fn); if (cg == 0) return CG_ERROR; /* get memory address for solution */ @@ -6767,12 +8269,33 @@ int cg_field_read(int file_number, int B, int Z, int S, const char *fieldname, m_dimvals[n] = m_rmax[n]; } - return cg_field_general_read(file_number, B, Z, S, fieldname, - s_rmin, s_rmax, type, + return cg_field_general_read(fn, B, Z, S, fieldname, + s_rmin, s_rmax, mem_datatype, m_numdim, m_dimvals, m_rmin, m_rmax, field_ptr); } +/** + * \ingroup FlowSolutionData + * + * \brief Read subset of flow solution to a shaped array + * + * \param[in] fn \FILE_fn + * \param[in] B \B_Base + * \param[in] Z \Z_Zone + * \param[in] S \SOL_S + * \param[in] fieldname Name of the solution array. It is strongly advised to use the SIDS nomenclature conventions when naming the solution arrays to insure file compatibility. + * \param[in] s_rmin Lower range index in file (eg., imin, jmin, kmin). + * \param[in] s_rmax Upper range index in file (eg., imax, jmax, kmax). + * \param[in] m_type Data type of an array in memory. Admissible data types for a solution array are Integer, LongInteger, RealSingle, and RealDouble. + * \param[in] m_numdim Number of dimensions of array in memory. + * \param[in] m_dimvals Dimensions of array in memory. + * \param[in] m_rmin Lower range index in memory (eg., imin, jmin, kmin). + * \param[in] m_rmax Upper range index in memory (eg., imax, jmax, kmax). + * \param[out] field_ptr Array of solution values. + * \return \ier + * + */ int cg_field_general_read(int fn, int B, int Z, int S, const char *fieldname, const cgsize_t *s_rmin, const cgsize_t *s_rmax, CGNS_ENUMT(DataType_t) m_type, @@ -6826,11 +8349,11 @@ int cg_field_general_read(int fn, int B, int Z, int S, const char *fieldname, field_ptr); } -int cg_field_id(int file_number, int B, int Z, int S, int F, double *field_id) +int cg_field_id(int fn, int B, int Z, int S, int F, double *field_id) { cgns_array *field; - cg = cgi_get_file(file_number); + cg = cgi_get_file(fn); if (cg == 0) return CG_ERROR; if (cgi_check_mode(cg->filename, cg->mode, CG_MODE_READ)) return CG_ERROR; @@ -6842,7 +8365,23 @@ int cg_field_id(int file_number, int B, int Z, int S, int F, double *field_id) return CG_OK; } -int cg_field_write(int file_number, int B, int Z, int S, +/** + * \ingroup FlowSolutionData + * + * \brief Write flow solution + * + * \param[in] fn \FILE_fn + * \param[in] B \B_Base + * \param[in] Z \Z_Zone + * \param[in] S \SOL_S + * \param[in] fieldname Name of the solution array. It is strongly advised to use the SIDS nomenclature conventions when naming the solution arrays to insure file compatibility. + * \param[in] type Data type of the solution array written to the file. Admissible data types for a solution array are Integer, LongInteger, RealSingle, and RealDouble. + * \param[in] field_ptr Array of solution values. + * \param[out] F \SOL_F + * \return \ier + * + */ +int cg_field_write(int fn, int B, int Z, int S, CGNS_ENUMT(DataType_t) type, const char *fieldname, const void *field_ptr, int *F) { @@ -6862,7 +8401,7 @@ int cg_field_write(int file_number, int B, int Z, int S, } /* get memory addresses */ - cg = cgi_get_file(file_number); + cg = cgi_get_file(fn); if (cg == 0) return CG_ERROR; zone = cgi_get_zone(cg, B, Z); @@ -6900,13 +8439,31 @@ int cg_field_write(int file_number, int B, int Z, int S, m_rmax[n] = m_dimvals[n]; } - return cg_field_general_write(file_number, B, Z, S, fieldname, + return cg_field_general_write(fn, B, Z, S, fieldname, type, s_rmin, s_rmax, type, m_numdim, m_dimvals, m_rmin, m_rmax, field_ptr, F); } -int cg_field_partial_write(int file_number, int B, int Z, int S, +/** + * \ingroup FlowSolutionData + * + * \brief Write subset of flow solution + * + * \param[in] fn \FILE_fn + * \param[in] B \B_Base + * \param[in] Z \Z_Zone + * \param[in] S \SOL_S + * \param[in] fieldname Name of the solution array. It is strongly advised to use the SIDS nomenclature conventions when naming the solution arrays to insure file compatibility. + * \param[in] type Data type of the solution array written to the file. Admissible data types for a solution array are Integer, LongInteger, RealSingle, and RealDouble. + * \param[in] s_rmin Lower range index in file (eg., imin, jmin, kmin). + * \param[in] s_rmax Upper range index in file (eg., imax, jmax, kmax). + * \param[in] field_ptr Array of solution values. + * \param[out] F \SOL_F + * \return \ier + * + */ +int cg_field_partial_write(int fn, int B, int Z, int S, CGNS_ENUMT( DataType_t ) type, const char *fieldname, const cgsize_t *s_rmin, const cgsize_t *s_rmax, const void *field_ptr, int *F) @@ -6917,7 +8474,7 @@ int cg_field_partial_write(int file_number, int B, int Z, int S, int status; /* get memory addresses */ - cg = cgi_get_file(file_number); + cg = cgi_get_file(fn); if (cg == 0) return CG_ERROR; zone = cgi_get_zone(cg, B, Z); @@ -6948,7 +8505,7 @@ int cg_field_partial_write(int file_number, int B, int Z, int S, m_dimvals[n] = m_rmax[n]; } - status = cg_field_general_write(file_number, B, Z, S, fieldname, + status = cg_field_general_write(fn, B, Z, S, fieldname, type, s_rmin, s_rmax, type, m_numdim, m_dimvals, m_rmin, m_rmax, field_ptr, F); @@ -6958,6 +8515,30 @@ int cg_field_partial_write(int file_number, int B, int Z, int S, } +/** + * \ingroup FlowSolutionData + * + * \brief Write shaped array to a subset of flow solution + * + * \param[in] fn \FILE_fn + * \param[in] B \B_Base + * \param[in] Z \Z_Zone + * \param[in] S \SOL_S + * \param[in] fieldname Name of the solution array. It is strongly advised to use the SIDS nomenclature conventions when naming the solution arrays to insure file compatibility. + * \param[in] s_type Data type of the solution array written to the file. Admissible data types for a solution array are Integer, LongInteger, RealSingle, and RealDouble. + * \param[in] s_rmin Lower range index in file (eg., imin, jmin, kmin). + * \param[in] s_rmax Upper range index in file (eg., imax, jmax, kmax). + * + * \param[in] m_type Data type of an array in memory. Admissible data types for a solution array are Integer, LongInteger, RealSingle, and RealDouble. + * \param[in] m_numdim Number of dimensions of array in memory. + * \param[in] m_dimvals Dimensions of array in memory. + * \param[in] m_rmin Lower range index in memory (eg., imin, jmin, kmin). + * \param[in] m_rmax Upper range index in memory (eg., imax, jmax, kmax). + * \param[in] field_ptr Array of solution values. + * \param[out] F \SOL_F + * \return \ier + * + */ int cg_field_general_write(int fn, int B, int Z, int S, const char *fieldname, CGNS_ENUMT(DataType_t) s_type, const cgsize_t *s_rmin, const cgsize_t *s_rmax, @@ -7030,7 +8611,19 @@ int cg_field_general_write(int fn, int B, int Z, int S, const char *fieldname, * Read and write ZoneSubRegion_t Nodes * \*************************************************************************/ -int cg_nsubregs(int fn, int B, int Z, int *nsubreg) +/** + * \ingroup ZoneSubregions + * + * \brief Get number of ZoneSubRegion_t nodes + * + * \param[in] fn \FILE_fn + * \param[in] B \B_Base + * \param[in] Z \Z_Zone + * \param[out] nsubregs Number of ZoneSubRegion_t nodes under Zone Z. + * \return \ier + * + */ +int cg_nsubregs(int fn, int B, int Z, int *nsubregs) { cgns_zone *zone; @@ -7042,7 +8635,7 @@ int cg_nsubregs(int fn, int B, int Z, int *nsubreg) zone = cgi_get_zone(cg, B, Z); if (zone==0) return CG_ERROR; - (*nsubreg) = zone->nsubreg; + (*nsubregs) = zone->nsubreg; return CG_OK; } @@ -7056,7 +8649,26 @@ static cgns_subreg *cg_subreg_read(int fn, int B, int Z, int S) return cgi_get_subreg(cg, B, Z, S); } -int cg_subreg_info(int fn, int B, int Z, int S, char *name, int *dimension, +/** + * \ingroup ZoneSubregions + * + * \brief Get info about a ZoneSubRegion_t node + * + * \param[in] fn \FILE_fn + * \param[in] B \B_Base + * \param[in] Z \Z_Zone + * \param[in] S ZoneSubRegion index number, where 1 ≤ S ≤ nsubregs. + * \param[out] regname Name of the ZoneSubRegion_t node. + * \param[out] dimension Dimensionality of the subregion, 1 for lines, 2 for faces, 3 for volumes. + * \param[out] location Grid location used in the definition of the point set. The currently admissible locations are Vertex and CellCenter. + * \param[out] ptset_type Type of point set defining the interface for the subregion data; either PointRange or PointList. + * \param[out] npnts Number of points defining the interface for the subregion data. For a ptset_type of PointRange, npnts is always two. For a ptset_type of PointList, npnts is the number of points in the PointList. + * \param[out] bcname_len String length of bcname. + * \param[out] gcname_len String length of gcname. + * \return \ier + * + */ +int cg_subreg_info(int fn, int B, int Z, int S, char *regname, int *dimension, CGNS_ENUMT(GridLocation_t) *location, CGNS_ENUMT(PointSetType_t) *ptset_type, cgsize_t *npnts, int *bcname_len, int *gcname_len) @@ -7065,7 +8677,7 @@ int cg_subreg_info(int fn, int B, int Z, int S, char *name, int *dimension, if (subreg == NULL) return CG_ERROR; - strcpy(name,subreg->name); + strcpy(regname,subreg->name); *dimension = subreg->reg_dim; *location = subreg->location; if (subreg->ptset) { @@ -7088,6 +8700,19 @@ int cg_subreg_info(int fn, int B, int Z, int S, char *name, int *dimension, return CG_OK; } +/** + * \ingroup ZoneSubregions + * + * \brief Read point set data for a ZoneSubRegion_t node + * + * \param[in] fn \FILE_fn + * \param[in] B \B_Base + * \param[in] Z \Z_Zone + * \param[in] S ZoneSubRegion index number, where 1 ≤ S ≤ nsubregs. + * \param[out] pnts Array of points defining the interface for the subregion data. + * \return \ier + * + */ int cg_subreg_ptset_read(int fn, int B, int Z, int S, cgsize_t *pnts) { int dim = 0; @@ -7105,6 +8730,19 @@ int cg_subreg_ptset_read(int fn, int B, int Z, int S, cgsize_t *pnts) return CG_OK; } +/** + * \ingroup ZoneSubregions + * + * \brief Read the BC_t node name for a ZoneSubRegion_t node + * + * \param[in] fn \FILE_fn + * \param[in] B \B_Base + * \param[in] Z \Z_Zone + * \param[in] S ZoneSubRegion index number, where 1 ≤ S ≤ nsubregs. + * \param[out] bcname The name of a BC_t node which defines the subregion. + * \return \ier + * + */ int cg_subreg_bcname_read(int fn, int B, int Z, int S, char *bcname) { cgns_subreg *subreg = cg_subreg_read(fn, B, Z, S); @@ -7119,6 +8757,19 @@ int cg_subreg_bcname_read(int fn, int B, int Z, int S, char *bcname) return CG_OK; } +/** + * \ingroup ZoneSubregions + * + * \brief Read the GridConnectivity_t node name for a ZoneSubRegion_t node + * + * \param[in] fn \FILE_fn + * \param[in] B \B_Base + * \param[in] Z \Z_Zone + * \param[in] S ZoneSubRegion index number, where 1 ≤ S ≤ nsubregs. + * \param[out] gcname The name of a GridConnectivity_t or GridConnectivity1to1_t node which defines the subregion. + * \return \ier + * + */ int cg_subreg_gcname_read(int fn, int B, int Z, int S, char *gcname) { cgns_subreg *subreg = cg_subreg_read(fn, B, Z, S); @@ -7198,7 +8849,25 @@ static cgns_subreg *cg_subreg_write(int fn, int B, int Z, const char *name, return subreg; } -int cg_subreg_ptset_write(int fn, int B, int Z, const char *name, +/** + * \ingroup ZoneSubregions + * + * \brief Create a point set ZoneSubRegion_t node + * + * \param[in] fn \FILE_fn + * \param[in] B \B_Base + * \param[in] Z \Z_Zone + * \param[in] regname Name of the ZoneSubRegion_t node. + * \param[in] dimension Dimensionality of the subregion, 1 for lines, 2 for faces, 3 for volumes. + * \param[in] location Grid location used in the definition of the point set. The currently admissible locations are Vertex and CellCenter. + * \param[in] ptset_type Type of point set defining the interface for the subregion data; either PointRange or PointList. + * \param[in] npnts Number of points defining the interface for the subregion data. For a ptset_type of PointRange, npnts is always two. For a ptset_type of PointList, npnts is the number of points in the PointList. + * \param[in] pnts Array of points defining the interface for the subregion data. + * \param[out] S ZoneSubRegion index number, where 1 ≤ S ≤ nsubregs. + * \return \ier + * + */ +int cg_subreg_ptset_write(int fn, int B, int Z, const char *regname, int dimension, CGNS_ENUMT(GridLocation_t) location, CGNS_ENUMT(PointSetType_t) ptset_type, cgsize_t npnts, const cgsize_t *pnts, int *S) @@ -7221,7 +8890,7 @@ int cg_subreg_ptset_write(int fn, int B, int Z, const char *name, if (cgi_check_location(dimension+1, cg->base[B-1].zone[Z-1].type, location)) return CG_ERROR; - subreg = cg_subreg_write(fn, B, Z, name, dimension, S); + subreg = cg_subreg_write(fn, B, Z, regname, dimension, S); if (subreg == NULL) return CG_ERROR; subreg->location = location; @@ -7261,7 +8930,22 @@ int cg_subreg_ptset_write(int fn, int B, int Z, const char *name, return CG_OK; } -int cg_subreg_bcname_write(int fn, int B, int Z, const char *name, int dimension, +/** + * \ingroup ZoneSubregions + * + * \brief Create a ZoneSubRegion_t node that references a BC_t node + * + * \param[in] fn \FILE_fn + * \param[in] B \B_Base + * \param[in] Z \Z_Zone + * \param[in] regname Name of the ZoneSubRegion_t node. + * \param[in] dimension Dimensionality of the subregion, 1 for lines, 2 for faces, 3 for volumes. + * \param[in] bcname The name of a BC_t node which defines the subregion. + * \param[out] S ZoneSubRegion index number, where 1 ≤ S ≤ nsubregs. + * \return \ier + * + */ +int cg_subreg_bcname_write(int fn, int B, int Z, const char *regname, int dimension, const char *bcname, int *S) { cgsize_t dim_vals = 1; @@ -7273,7 +8957,7 @@ int cg_subreg_bcname_write(int fn, int B, int Z, const char *name, int dimension return CG_ERROR; } - subreg = cg_subreg_write(fn, B, Z, name, dimension, S); + subreg = cg_subreg_write(fn, B, Z, regname, dimension, S); if (subreg == NULL) return CG_ERROR; subreg->bcname = CGNS_NEW(cgns_descr, 1); @@ -7296,7 +8980,22 @@ int cg_subreg_bcname_write(int fn, int B, int Z, const char *name, int dimension return CG_OK; } -int cg_subreg_gcname_write(int fn, int B, int Z, const char *name, int dimension, +/** + * \ingroup ZoneSubregions + * + * \brief Create a ZoneSubRegion_t node that references a GridConnectivity_t node + * + * \param[in] fn \FILE_fn + * \param[in] B \B_Base + * \param[in] Z \Z_Zone + * \param[in] regname Name of the ZoneSubRegion_t node. + * \param[in] dimension Dimensionality of the subregion, 1 for lines, 2 for faces, 3 for volumes. + * \param[in] gcname The name of a GridConnectivity_t or GridConnectivity1to1_t node which defines the subregion. + * \param[out] S ZoneSubRegion index number, where 1 ≤ S ≤ nsubregs. + * \return \ier + * + */ +int cg_subreg_gcname_write(int fn, int B, int Z, const char *regname, int dimension, const char *gcname, int *S) { cgsize_t dim_vals = 1; @@ -7308,7 +9007,7 @@ int cg_subreg_gcname_write(int fn, int B, int Z, const char *name, int dimension return CG_ERROR; } - subreg = cg_subreg_write(fn, B, Z, name, dimension, S); + subreg = cg_subreg_write(fn, B, Z, regname, dimension, S); if (subreg == NULL) return CG_ERROR; subreg->gcname = CGNS_NEW(cgns_descr, 1); @@ -7335,6 +9034,18 @@ int cg_subreg_gcname_write(int fn, int B, int Z, const char *name, int dimension * Read and write ZoneGridConnectivity_t Nodes * \*************************************************************************/ +/** + * \ingroup ZoneGridConnectivity + * + * \brief Get number of ZoneGridConnectivity_t nodes + * + * \param[in] fn \FILE_fn + * \param[in] B \B_Base + * \param[in] Z \Z_Zone + * \param[out] nzconns Number of ZoneGridConnectivity_t nodes under Zone Z. + * \return \ier + * + */ int cg_nzconns(int fn, int B, int Z, int *nzconns) { cgns_zone *zone; @@ -7352,7 +9063,20 @@ int cg_nzconns(int fn, int B, int Z, int *nzconns) return CG_OK; } -int cg_zconn_read(int fn, int B, int Z, int C, char *name) +/** + * \ingroup ZoneGridConnectivity + * + * \brief Read ZoneGridConnectivity_t node + * + * \param[in] fn \FILE_fn + * \param[in] B \B_Base + * \param[in] Z \Z_Zone + * \param[in] ZC Zone grid connectivity index number, where 1 ≤ ZC ≤ nzconns. + * \param[out] zcname Name of the ZoneGridConnectivity_t node + * \return \ier + * + */ +int cg_zconn_read(int fn, int B, int Z, int ZC, char *zcname) { cgns_zconn *zconn; @@ -7363,22 +9087,35 @@ int cg_zconn_read(int fn, int B, int Z, int C, char *name) /* Get memory address for ZoneGridConnectivity_t node */ /* cgi_get_zconnZC() also sets active ZoneGridConnectivity_t node */ - zconn = cgi_get_zconnZC(cg, B, Z, C); + zconn = cgi_get_zconnZC(cg, B, Z, ZC); if (zconn==0) return CG_ERROR; /* Return name for the ZoneGridConnectivity_t node */ - strcpy(name,zconn->name); + strcpy(zcname,zconn->name); return CG_OK; } -int cg_zconn_write(int fn, int B, int Z, const char *name, int *C) +/** + * \ingroup ZoneGridConnectivity + * + * \brief Create ZoneGridConnectivity_t node + * + * \param[in] fn \FILE_fn + * \param[in] B \B_Base + * \param[in] Z \Z_Zone + * \param[in] zcname Name of the ZoneGridConnectivity_t node + * \param[out] ZC Zone grid connectivity index number, where 1 ≤ ZC ≤ nzconns. + * \return \ier + * + */ +int cg_zconn_write(int fn, int B, int Z, const char *zcname, int *ZC) { cgns_zone *zone; cgns_zconn *zconn = NULL; int index; /* verify input */ - if (cgi_check_strlen(name)) return CG_ERROR; + if (cgi_check_strlen(zcname)) return CG_ERROR; /* get memory address */ cg = cgi_get_file(fn); @@ -7391,11 +9128,11 @@ int cg_zconn_write(int fn, int B, int Z, const char *name, int *C) /* Overwrite a ZoneGridConnectivity_t Node: */ for (index = 0; index < zone->nzconn; index++) { - if (0 == strcmp(name, zone->zconn[index].name)) { + if (0 == strcmp(zcname, zone->zconn[index].name)) { /* in CG_MODE_WRITE, children names must be unique */ if (cg->mode == CG_MODE_WRITE) { - cgi_error("Duplicate child name found: %s",name); + cgi_error("Duplicate child name found: %s",zcname); return CG_ERROR; } @@ -7421,11 +9158,11 @@ int cg_zconn_write(int fn, int B, int Z, const char *name, int *C) zconn = &(zone->zconn[zone->nzconn]); zone->nzconn++; } - (*C) = index+1; - zone->active_zconn = *C; + (*ZC) = index+1; + zone->active_zconn = *ZC; memset(zconn, 0, sizeof(cgns_zconn)); - strcpy(zconn->name,name); + strcpy(zconn->name,zcname); /* save data in file */ if (cgi_new_node(zone->id, zconn->name, "ZoneGridConnectivity_t", @@ -7434,7 +9171,19 @@ int cg_zconn_write(int fn, int B, int Z, const char *name, int *C) return CG_OK; } -int cg_zconn_get(int fn, int B, int Z, int *C) +/** + * \ingroup ZoneGridConnectivity + * + * \brief Get the current ZoneGridConnectivity_t node + * + * \param[in] fn \FILE_fn + * \param[in] B \B_Base + * \param[in] Z \Z_Zone + * \param[out] ZC Zone grid connectivity index number, where 1 ≤ ZC ≤ nzconns. + * \return \ier + * + */ +int cg_zconn_get(int fn, int B, int Z, int *ZC) { cgns_zone *zone; @@ -7446,18 +9195,30 @@ int cg_zconn_get(int fn, int B, int Z, int *C) if (zone==0) return CG_ERROR; if (zone->nzconn <= 0) { - *C = 0; + *ZC = 0; cgi_error("no ZoneGridConnectivity_t node found."); return CG_NODE_NOT_FOUND; } if (zone->active_zconn <= 0 || zone->active_zconn > zone->nzconn) zone->active_zconn = 1; - *C = zone->active_zconn; + *ZC = zone->active_zconn; return CG_OK; } -int cg_zconn_set(int fn, int B, int Z, int C) +/** + * \ingroup ZoneGridConnectivity + * + * \brief Set the current ZoneGridConnectivity_t node + * + * \param[in] fn \FILE_fn + * \param[in] B \B_Base + * \param[in] Z \Z_Zone + * \param[in] ZC Zone grid connectivity index number, where 1 ≤ ZC ≤ nzconns. + * \return \ier + * + */ +int cg_zconn_set(int fn, int B, int Z, int ZC) { cgns_zconn *zconn; @@ -7466,7 +9227,7 @@ int cg_zconn_set(int fn, int B, int Z, int C) /* Get memory address for ZoneGridConnectivity_t node */ /* cgi_get_zconnZC() also sets active ZoneGridConnectivity_t node */ - zconn = cgi_get_zconnZC(cg, B, Z, C); + zconn = cgi_get_zconnZC(cg, B, Z, ZC); if (zconn==0) return CG_ERROR; return CG_OK; } @@ -7475,11 +9236,23 @@ int cg_zconn_set(int fn, int B, int Z, int C) * Read and Write OversetHoles_t Nodes \*****************************************************************************/ -int cg_nholes(int file_number, int B, int Z, int *nholes) +/** + * \ingroup OversetHoles + * + * \brief Get number of overset holes in a zone + * + * \param[in] fn \FILE_fn + * \param[in] B \B_Base + * \param[in] Z \Z_Zone + * \param[out] nholes Number of overset holes in zone Z. + * \return \ier + * + */ +int cg_nholes(int fn, int B, int Z, int *nholes) { cgns_zconn *zconn; - cg = cgi_get_file(file_number); + cg = cgi_get_file(fn); if (cg == 0) return CG_ERROR; if (cgi_check_mode(cg->filename, cg->mode, CG_MODE_READ)) return CG_ERROR; @@ -7490,14 +9263,31 @@ int cg_nholes(int file_number, int B, int Z, int *nholes) return CG_OK; } -int cg_hole_info(int file_number, int B, int Z, int J, char *holename, +/** + * \ingroup OversetHoles + * + * \brief Get info about an overset hole + * + * \param[in] fn \FILE_fn + * \param[in] B \B_Base + * \param[in] Z \Z_Zone + * \param[in] J Overset hole index number, where 1 ≤ J ≤ nholes. + * \param[out] holename Name of the overset hole. + * \param[out] location Grid location used in the definition of the point set. The currently admissible locations are Vertex and CellCenter. + * \param[out] ptset_type The extent of the overset hole may be defined using a range of points or cells, or using a discrete list of all points or cells in the overset hole. If a range of points or cells is used, ptset_type is set to PointRange. When a discrete list of points or cells is used, ptset_type equals PointList. + * \param[out] nptsets Number of point sets used to define the hole. If ptset_type is PointRange, several point sets may be used. If ptset_type is PointList, only one point set is allowed. + * \param[out] npnts Number of points (or cells) in the point set. For a ptset_type of PointRange, npnts is always two. For a ptset_type of PointList, npnts is the number of points or cells in the PointList. + * \return \ier + * + */ +int cg_hole_info(int fn, int B, int Z, int J, char *holename, CGNS_ENUMT(GridLocation_t) *location, CGNS_ENUMT(PointSetType_t) *ptset_type, int *nptsets, cgsize_t *npnts) { cgns_hole *hole; - cg = cgi_get_file(file_number); + cg = cgi_get_file(fn); if (cg == 0) return CG_ERROR; if (cgi_check_mode(cg->filename, cg->mode, CG_MODE_READ)) return CG_ERROR; @@ -7515,12 +9305,25 @@ int cg_hole_info(int file_number, int B, int Z, int J, char *holename, return CG_OK; } -int cg_hole_read(int file_number, int B, int Z, int J, cgsize_t *pnts) +/** + * \ingroup OversetHoles + * + * \brief Read overset hole data + * + * \param[in] fn \FILE_fn + * \param[in] B \B_Base + * \param[in] Z \Z_Zone + * \param[in] J Overset hole index number, where 1 ≤ J ≤ nholes. + * \param[out] pnts Array of points or cells in the point set. + * \return \ier + * + */ +int cg_hole_read(int fn, int B, int Z, int J, cgsize_t *pnts) { cgns_hole *hole; int set, index_dim; - cg = cgi_get_file(file_number); + cg = cgi_get_file(fn); if (cg == 0) return CG_ERROR; if (cgi_check_mode(cg->filename, cg->mode, CG_MODE_READ)) return CG_ERROR; @@ -7561,11 +9364,11 @@ int cg_hole_read(int file_number, int B, int Z, int J, cgsize_t *pnts) return CG_OK; } -int cg_hole_id(int file_number, int B, int Z, int J, double *hole_id) +int cg_hole_id(int fn, int B, int Z, int J, double *hole_id) { cgns_hole *hole; - cg = cgi_get_file(file_number); + cg = cgi_get_file(fn); if (cg == 0) return CG_ERROR; if (cgi_check_mode(cg->filename, cg->mode, CG_MODE_READ)) return CG_ERROR; @@ -7577,7 +9380,25 @@ int cg_hole_id(int file_number, int B, int Z, int J, double *hole_id) return CG_OK; } -int cg_hole_write(int file_number, int B, int Z, const char * holename, +/** + * \ingroup OversetHoles + * + * \brief Write overset hole data + * + * \param[in] fn \FILE_fn + * \param[in] B \B_Base + * \param[in] Z \Z_Zone + * \param[in] holename Name of the overset hole. + * \param[in] location Grid location used in the definition of the point set. The currently admissible locations are Vertex and CellCenter. + * \param[in] ptset_type The extent of the overset hole may be defined using a range of points or cells, or using a discrete list of all points or cells in the overset hole. If a range of points or cells is used, ptset_type is set to PointRange. When a discrete list of points or cells is used, ptset_type equals PointList. + * \param[in] nptsets Number of point sets used to define the hole. If ptset_type is PointRange, several point sets may be used. If ptset_type is PointList, only one point set is allowed. + * \param[in] npnts Number of points (or cells) in the point set. For a ptset_type of PointRange, npnts is always two. For a ptset_type of PointList, npnts is the number of points or cells in the PointList. + * \param[in] pnts Array of points or cells in the point set. + * \param[out] J Overset hole index number, where 1 ≤ J ≤ nholes. + * \return \ier + * + */ +int cg_hole_write(int fn, int B, int Z, const char * holename, CGNS_ENUMT(GridLocation_t) location, CGNS_ENUMT(PointSetType_t) ptset_type, int nptsets, cgsize_t npnts, const cgsize_t * pnts, int *J) @@ -7611,7 +9432,7 @@ int cg_hole_write(int file_number, int B, int Z, const char * holename, return CG_ERROR; } /* get memory address for file */ - cg = cgi_get_file(file_number); + cg = cgi_get_file(fn); if (cg == 0) return CG_ERROR; if (cgi_check_mode(cg->filename, cg->mode, CG_MODE_WRITE)) return CG_ERROR; @@ -7740,11 +9561,23 @@ int cg_hole_write(int file_number, int B, int Z, const char * holename, * Read and Write GridConnectivity_t Nodes \*****************************************************************************/ -int cg_nconns(int file_number, int B, int Z, int *nconns) +/** + * \ingroup GeneralizedConnectivity + * + * \brief Get number of generalized connectivity interfaces in a zone + * + * \param[in] fn \FILE_fn + * \param[in] B \B_Base + * \param[in] Z \Z_Zone + * \param[out] nconns Number of interfaces for zone Z. + * \return \ier + * + */ +int cg_nconns(int fn, int B, int Z, int *nconns) { cgns_zconn *zconn; - cg = cgi_get_file(file_number); + cg = cgi_get_file(fn); if (cg == 0) return CG_ERROR; if (cgi_check_mode(cg->filename, cg->mode, CG_MODE_READ)) return CG_ERROR; @@ -7755,21 +9588,46 @@ int cg_nconns(int file_number, int B, int Z, int *nconns) return CG_OK; } -/* in cg_conn_info, donor_datatype is useless starting with version 1.27, because - it's always I4. However this arg. is left for backward compatibility of API - and to be able to read old files */ -int cg_conn_info(int file_number, int B, int Z, int J, char *connectname, +/** + * \ingroup GeneralizedConnectivity + * + * \brief Get info about a generalized connectivity interface + * + * \param[in] fn \FILE_fn + * \param[in] B \B_Base + * \param[in] Z \Z_Zone + * \param[in] J Interface index number, where 1 ≤ J ≤ nconns. + * \param[out] connectname Name of the interface. + * \param[out] location Grid location used in the definition of the point set. The currently admissible locations are Vertex and CellCenter. + * \param[out] connect_type Type of interface being defined. The admissible types are Overset, Abutting, and Abutting1to1. + * \param[out] ptset_type Type of point set defining the interface in the current zone; either PointRange or PointList. + * \param[out] npnts Number of points defining the interface in the current zone. For a ptset_type of PointRange, npnts is always two. For a ptset_type of PointList, npnts is the number of points in the PointList. + * \param[out] donorname Name of the zone interfacing with the current zone. + * \param[out] donor_zonetype Type of the donor zone. The admissible types are Structured and Unstructured. + * \param[out] donor_ptset_type Type of point set defining the interface in the donor zone; either PointListDonor or CellListDonor. + * \param[out] donor_datatype Data type in which the donor points are stored in the file. As of Version 3.0, this value is ignored when writing, and on reading it will return either Integer or LongInteger depending on whether the file was written using 32 or 64-bit. The donor_datatype argument was left in these functions only for backward compatibility. The donor data is always read as cgsize_t. + * \param[out] ndata_donor Number of points or cells in the current zone. These are paired with points, cells, or fractions thereof in the donor zone. + * \return \ier + * + * \details In cg_conn_info, donor_datatype is useless starting with version 1.27, because + * it's always I4. However this arg. is left for backward compatibility of API + * and to be able to read old files + * + */ +int cg_conn_info(int fn, int B, int Z, int J, char *connectname, CGNS_ENUMT(GridLocation_t) *location, - CGNS_ENUMT(GridConnectivityType_t) *type, + CGNS_ENUMT(GridConnectivityType_t) *connect_type, CGNS_ENUMT(PointSetType_t) *ptset_type, cgsize_t *npnts, char *donorname, CGNS_ENUMT(ZoneType_t) *donor_zonetype, CGNS_ENUMT(PointSetType_t) *donor_ptset_type, CGNS_ENUMT(DataType_t) *donor_datatype, cgsize_t *ndata_donor) { - int dZ; + int dZ, dB; cgns_conn *conn; + char_33 basedonorname, zonedonorname; + char *separator; - cg = cgi_get_file(file_number); + cg = cgi_get_file(fn); if (cg == 0) return CG_ERROR; if (cgi_check_mode(cg->filename, cg->mode, CG_MODE_READ)) return CG_ERROR; @@ -7778,7 +9636,7 @@ int cg_conn_info(int file_number, int B, int Z, int J, char *connectname, if (conn==0) return CG_ERROR; strcpy(connectname, conn->name); - *type = conn->type; + *connect_type = conn->type; *location = conn->location; *ptset_type = conn->ptset.type; *npnts = conn->ptset.npts; @@ -7789,12 +9647,34 @@ int cg_conn_info(int file_number, int B, int Z, int J, char *connectname, *ndata_donor = conn->dptset.npts; *donor_ptset_type = conn->dptset.type; + /* Split donorname into BaseName + zoneName */ + separator = strchr(donorname, '/'); + if (separator != NULL) { + /* get ending zoneName */ + strcpy(zonedonorname, separator + sizeof(char)); + /* get base but do not use path syntax */ + memcpy(basedonorname, donorname, (separator - donorname)*sizeof(char)); + basedonorname[separator - donorname] = '\0'; + /* Find donor base index */ + for (dB=0;dBnbases; dB++) { + if (strcmp(cg->base[dB].name,basedonorname)==0) { + break; + } + } + } + else { + /* zoneName is in current base */ + strcpy(basedonorname, cg->base[B-1].name); + strcpy(zonedonorname, donorname); + dB = B-1; + } + /* Find ZoneType_t of DonorZone given its name */ *donor_zonetype = CGNS_ENUMV( ZoneTypeNull ); - for (dZ=0; dZbase[B-1].nzones; dZ++) { - if (strcmp(cg->base[B-1].zone[dZ].name,donorname)==0) { - *donor_zonetype = cg->base[B-1].zone[dZ].type; + for (dZ=0; dZbase[dB].nzones; dZ++) { + if (strcmp(cg->base[dB].zone[dZ].name,zonedonorname)==0) { + *donor_zonetype = cg->base[dB].zone[dZ].type; break; } } @@ -7805,10 +9685,25 @@ int cg_conn_info(int file_number, int B, int Z, int J, char *connectname, return CG_OK; } -/* in cg_conn_read, donor_datatype is useless starting with version 1.27, because - it's always I4. However this arg. is left for backward compatibility of API - and to be able to read old files */ -int cg_conn_read(int file_number, int B, int Z, int J, cgsize_t *pnts, +/** + * \ingroup GeneralizedConnectivity + * + * \brief Read generalized connectivity data + * + * \param[in] fn \FILE_fn + * \param[in] B \B_Base + * \param[in] Z \Z_Zone + * \param[in] J Interface index number, where 1 ≤ J ≤ nconns. + * \param[out] pnts Array of points defining the interface in the current zone. + * \param[out] donor_datatype Data type in which the donor points are stored in the file. As of Version 3.0, this value is ignored when writing, and on reading it will return either Integer or LongInteger depending on whether the file was written using 32 or 64-bit. The donor_datatype argument was left in these functions only for backward compatibility. The donor data is always read as cgsize_t. + * \param[out] donor_data Array of donor points or cells corresponding to ndata_donor. Note that it is possible that the same donor point or cell may be used multiple times. + * \return \ier + * + * \details in cg_conn_read, donor_datatype is useless starting with version 1.27, because + * it's always I4. However this arg. is left for backward compatibility of API + * and to be able to read old files + */ +int cg_conn_read(int fn, int B, int Z, int J, cgsize_t *pnts, CGNS_ENUMT(DataType_t) donor_datatype, cgsize_t *donor_data) { cgns_conn *conn; @@ -7824,7 +9719,7 @@ int cg_conn_read(int file_number, int B, int Z, int J, cgsize_t *pnts, #endif /* Find address */ - cg = cgi_get_file(file_number); + cg = cgi_get_file(fn); if (cg == 0) return CG_ERROR; if (cgi_check_mode(cg->filename, cg->mode, CG_MODE_READ)) return CG_ERROR; @@ -7872,16 +9767,29 @@ int cg_conn_read(int file_number, int B, int Z, int J, cgsize_t *pnts, return CG_OK; } -int cg_conn_read_short(int file_number, int B, int Z, int J, cgsize_t *pnts) +/** + * \ingroup GeneralizedConnectivity + * + * \brief Read generalized connectivity data without donor information + * + * \param[in] fn \FILE_fn + * \param[in] B \B_Base + * \param[in] Z \Z_Zone + * \param[in] J Interface index number, where 1 ≤ J ≤ nconns. + * \param[out] pnts Array of points defining the interface in the current zone. + * \return \ier + * + */ +int cg_conn_read_short(int fn, int B, int Z, int J, cgsize_t *pnts) { - return cg_conn_read(file_number, B, Z, J, pnts, CGNS_ENUMV(DataTypeNull), NULL); + return cg_conn_read(fn, B, Z, J, pnts, CGNS_ENUMV(DataTypeNull), NULL); } -int cg_conn_id(int file_number, int B, int Z, int J, double *conn_id) +int cg_conn_id(int fn, int B, int Z, int J, double *conn_id) { cgns_conn *conn; - cg = cgi_get_file(file_number); + cg = cgi_get_file(fn); if (cg == 0) return CG_ERROR; if (cgi_check_mode(cg->filename, cg->mode, CG_MODE_READ)) return CG_ERROR; @@ -7893,9 +9801,33 @@ int cg_conn_id(int file_number, int B, int Z, int J, double *conn_id) return CG_OK; } -int cg_conn_write(int file_number, int B, int Z, const char * connectname, +/** + * \ingroup GeneralizedConnectivity + * + * \brief Write generalized connectivity data + * + * \param[in] fn \FILE_fn + * \param[in] B \B_Base + * \param[in] Z \Z_Zone + * \param[in] connectname Name of the interface. + * \param[in] location Grid location used in the definition of the point set. The currently admissible locations are Vertex and CellCenter. + * \param[in] connect_type Type of interface being defined. The admissible types are Overset, Abutting, and Abutting1to1. + * \param[in] ptset_type Type of point set defining the interface in the current zone; either PointRange or PointList. + * \param[in] npnts Number of points defining the interface in the current zone. For a ptset_type of PointRange, npnts is always two. For a ptset_type of PointList, npnts is the number of points in the PointList. + * \param[in] pnts Array of points defining the interface in the current zone. + * \param[in] donorname Name of the zone interfacing with the current zone. + * \param[in] donor_zonetype Type of the donor zone. The admissible types are Structured and Unstructured. + * \param[in] donor_ptset_type Type of point set defining the interface in the donor zone; either PointListDonor or CellListDonor. + * \param[in] donor_datatype Data type in which the donor points are stored in the file. As of Version 3.0, this value is ignored when writing, and on reading it will return either Integer or LongInteger depending on whether the file was written using 32 or 64-bit. The donor_datatype argument was left in these functions only for backward compatibility. The donor data is always read as cgsize_t. + * \param[in] ndata_donor Number of points or cells in the current zone. These are paired with points, cells, or fractions thereof in the donor zone. + * \param[in] donor_data Array of donor points or cells corresponding to ndata_donor. Note that it is possible that the same donor point or cell may be used multiple times. + * \param[out] J Interface index number, where 1 ≤ J ≤ nconns. + * \return \ier + * + */ +int cg_conn_write(int fn, int B, int Z, const char * connectname, CGNS_ENUMT(GridLocation_t) location, - CGNS_ENUMT(GridConnectivityType_t) type, + CGNS_ENUMT(GridConnectivityType_t) connect_type, CGNS_ENUMT(PointSetType_t) ptset_type, cgsize_t npnts, const cgsize_t * pnts, const char * donorname, CGNS_ENUMT(ZoneType_t) donor_zonetype, @@ -7917,8 +9849,8 @@ int cg_conn_write(int file_number, int B, int Z, const char * connectname, /* verify input */ if (cgi_check_strlen(connectname)) return CG_ERROR; if (cgi_check_strlen(donorname)) return CG_ERROR; - if (INVALID_ENUM(type,NofValidGridConnectivityTypes)) { - cgi_error("Invalid input: GridConnectivityType=%d ?",type); + if (INVALID_ENUM(connect_type,NofValidGridConnectivityTypes)) { + cgi_error("Invalid input: GridConnectivityType=%d ?",connect_type); return CG_ERROR; } if (location != CGNS_ENUMV(Vertex) && @@ -7930,7 +9862,7 @@ int cg_conn_write(int file_number, int B, int Z, const char * connectname, cgi_error("Invalid input: GridLocation=%d ?",location); return CG_ERROR; } - if (type == CGNS_ENUMV(Overset) && + if (connect_type == CGNS_ENUMV(Overset) && location != CGNS_ENUMV(Vertex) && location != CGNS_ENUMV(CellCenter)) { cgi_error("GridLocation must be Vertex or CellCenter for Overset"); @@ -7986,7 +9918,7 @@ int cg_conn_write(int file_number, int B, int Z, const char * connectname, } /* get memory address of file */ - cg = cgi_get_file(file_number); + cg = cgi_get_file(fn); if (cg == 0) return CG_ERROR; if (cgi_check_mode(cg->filename, cg->mode, CG_MODE_WRITE)) return CG_ERROR; @@ -8060,7 +9992,7 @@ int cg_conn_write(int file_number, int B, int Z, const char * connectname, } } else PointListSize=npnts; - if (ndata_donor && type == CGNS_ENUMV(Abutting1to1) && PointListSize != ndata_donor) { + if (ndata_donor && connect_type == CGNS_ENUMV(Abutting1to1) && PointListSize != ndata_donor) { cgi_error("Invalid input for ndata_donor in cg_conn_write"); return CG_ERROR; } @@ -8100,7 +10032,7 @@ int cg_conn_write(int file_number, int B, int Z, const char * connectname, /* write conn info to internal memory */ memset(conn, 0, sizeof(cgns_conn)); strcpy(conn->name,connectname); - conn->type = type; + conn->type = connect_type; conn->location = location; conn->ptset.id = 0; conn->ptset.link = 0; @@ -8180,15 +10112,34 @@ int cg_conn_write(int file_number, int B, int Z, const char * connectname, return CG_OK; } -int cg_conn_write_short(int file_number, int B, int Z, const char * connectname, +/** + * \ingroup GeneralizedConnectivity + * + * \brief Write generalized connectivity data without donor information + * + * \param[in] fn \FILE_fn + * \param[in] B \B_Base + * \param[in] Z \Z_Zone + * \param[in] connectname Name of the interface. + * \param[in] location Grid location used in the definition of the point set. The currently admissible locations are Vertex and CellCenter. + * \param[in] connect_type Type of interface being defined. The admissible types are Overset, Abutting, and Abutting1to1. + * \param[in] ptset_type Type of point set defining the interface in the current zone; either PointRange or PointList. + * \param[in] npnts Number of points defining the interface in the current zone. For a ptset_type of PointRange, npnts is always two. For a ptset_type of PointList, npnts is the number of points in the PointList. + * \param[in] pnts Array of points defining the interface in the current zone. + * \param[in] donorname Name of the zone interfacing with the current zone. + * \param[out] J Interface index number, where 1 ≤ J ≤ nconns. + * \return \ier + * + */ +int cg_conn_write_short(int fn, int B, int Z, const char * connectname, CGNS_ENUMT(GridLocation_t) location, - CGNS_ENUMT(GridConnectivityType_t) type, + CGNS_ENUMT(GridConnectivityType_t) connect_type, CGNS_ENUMT(PointSetType_t) ptset_type, cgsize_t npnts, const cgsize_t * pnts, const char * donorname, int *J) { - return cg_conn_write (file_number, B, Z, connectname, location, - type, ptset_type, npnts, pnts, donorname, + return cg_conn_write (fn, B, Z, connectname, location, + connect_type, ptset_type, npnts, pnts, donorname, CGNS_ENUMV(ZoneTypeNull), CGNS_ENUMV(PointSetTypeNull), CGNS_ENUMV(DataTypeNull), 0, NULL, J); } @@ -8197,11 +10148,23 @@ int cg_conn_write_short(int file_number, int B, int Z, const char * connectname * Read and write GridConnectivity1to1_t Nodes \*****************************************************************************/ -int cg_n1to1(int file_number, int B, int Z, int *n1to1) +/** + * \ingroup OneToOneConnectivity + * + * \brief Get number of 1-to-1 interfaces in a zone + * + * \param[in] fn \FILE_fn + * \param[in] B \B_Base + * \param[in] Z \Z_Zone + * \param[out] n1to1 Number of one-to-one interfaces in zone Z, stored under GridConnectivity1to1_t nodes. (I.e., this does not include one-to-one interfaces that may be stored under GridConnectivity_t nodes, used for generalized zone interfaces.) + * \return \ier + * + */ +int cg_n1to1(int fn, int B, int Z, int *n1to1) { cgns_zconn *zconn; - cg = cgi_get_file(file_number); + cg = cgi_get_file(fn); if (cg == 0) return CG_ERROR; if (cgi_check_mode(cg->filename, cg->mode, CG_MODE_READ)) return CG_ERROR; @@ -8212,7 +10175,18 @@ int cg_n1to1(int file_number, int B, int Z, int *n1to1) return CG_OK; } -int cg_n1to1_global(int file_number, int B, int *n1to1_global) +/** + * \ingroup OneToOneConnectivity + * + * \brief Get total number of 1-to-1 interfaces in a database + * + * \param[in] fn \FILE_fn + * \param[in] B \B_Base + * \param[in] n1to1_global Total number of one-to-one interfaces in base B, stored under GridConnectivity1to1_t nodes. (I.e., this does not include one-to-one interfaces that may be stored under GridConnectivity_t nodes, used for generalized zone interfaces.) Note that the function cg_n1to1 (described below) may be used to get the number of one-to-one interfaces in a specific zone. + * \return \ier + * + */ +int cg_n1to1_global(int fn, int B, int *n1to1_global) { cgns_base *base; cgns_zone *zone; @@ -8227,7 +10201,7 @@ int cg_n1to1_global(int file_number, int B, int *n1to1_global) cgsize6_t *Drange = 0, *Ddonor_range = 0; int index_dim; - cg = cgi_get_file(file_number); + cg = cgi_get_file(fn); if (cg == 0) return CG_ERROR; if (cgi_check_mode(cg->filename, cg->mode, CG_MODE_READ)) return CG_ERROR; @@ -8244,7 +10218,7 @@ int cg_n1to1_global(int file_number, int B, int *n1to1_global) if (zconn==0) continue; /* if ZoneGridConnectivity_t is undefined */ if (zconn->n1to1 ==0) continue; for (J=1; J<=zconn->n1to1; J++) { - if (cg_1to1_read(file_number, B, Z, J, connectname, donorname, + if (cg_1to1_read(fn, B, Z, J, connectname, donorname, range, donor_range, transform)) return CG_ERROR; if (cgi_zone_no(base, donorname, &D)) return CG_ERROR; @@ -8268,7 +10242,24 @@ int cg_n1to1_global(int file_number, int B, int *n1to1_global) return CG_OK; } -int cg_1to1_read(int file_number, int B, int Z, int J, char *connectname, +/** + * \ingroup OneToOneConnectivity + * + * \brief Read 1-to-1 connectivity data for a zone + * + * \param[in] fn \FILE_fn + * \param[in] B \B_Base + * \param[in] Z \Z_Zone + * \param[in] J Interface index number, where 1 ≤ J ≤ n1to1. + * \param[out] connectname Name of the interface. + * \param[out] donorname Name of the zone interfacing with the current zone. + * \param[out] range Range of points for the current zone. + * \param[out] donor_range Range of points for the donor zone. + * \param[out] transform Short hand notation for the transformation matrix defining the relative orientation of the two zones. + * \return \ier + * + */ +int cg_1to1_read(int fn, int B, int Z, int J, char *connectname, char *donorname, cgsize_t *range, cgsize_t *donor_range, int *transform) { @@ -8280,7 +10271,7 @@ int cg_1to1_read(int file_number, int B, int Z, int J, char *connectname, in 3D, range[0], range[1], range[2] = imin, jmin, kmin range[3], range[4], range[5] = imax, jmax, kmax */ - cg = cgi_get_file(file_number); + cg = cgi_get_file(fn); if (cg == 0) return CG_ERROR; if (cgi_check_mode(cg->filename, cg->mode, CG_MODE_READ)) return CG_ERROR; @@ -8315,7 +10306,23 @@ int cg_1to1_read(int file_number, int B, int Z, int J, char *connectname, return CG_OK; } -int cg_1to1_read_global(int file_number, int B, char **connectname, char **zonename, +/** + * \ingroup OneToOneConnectivity + * + * \brief Read data for all 1-to-1 interfaces in a database + * + * \param[in] fn \FILE_fn + * \param[in] B \B_Base + * \param[out] connectname Name of the interface. + * \param[out] zonename Name of the first zone, for all one-to-one interfaces in base B. + * \param[out] donorname Name of the second zone, for all one-to-one interfaces in base B. + * \param[out] range Range of points for the first zone, for all one-to-one interfaces in base B. + * \param[out] donor_range Range of points for the current zone, for all one-to-one interfaces in base B. + * \param[out] transform Short hand notation for the transformation matrix defining the relative orientation of the two zones. This transformation is given for all one-to-one interfaces in base B. + * \return \ier + * + */ +int cg_1to1_read_global(int fn, int B, char **connectname, char **zonename, char **donorname, cgsize_t **range, cgsize_t **donor_range, int **transform) { @@ -8331,7 +10338,7 @@ int cg_1to1_read_global(int file_number, int B, char **connectname, char **zonen char_33 *Dzonename = 0; cgsize6_t *Drange = 0, *Ddonor_range = 0; - cg = cgi_get_file(file_number); + cg = cgi_get_file(fn); if (cg == 0) return CG_ERROR; if (cgi_check_mode(cg->filename, cg->mode, CG_MODE_READ)) return CG_ERROR; @@ -8350,7 +10357,7 @@ int cg_1to1_read_global(int file_number, int B, char **connectname, char **zonen if (zconn==0) continue; /* if ZoneGridConnectivity_t is undefined */ if (zconn->n1to1 ==0) continue; for (J=1; J<=zconn->n1to1; J++) { - if (cg_1to1_read(file_number, B, Z, J, connect, donor, rang, + if (cg_1to1_read(fn, B, Z, J, connect, donor, rang, drang, trans)) return CG_ERROR; if (cgi_zone_no(base, donor, &D)) return CG_ERROR; /* count each interface only once */ @@ -8376,11 +10383,11 @@ int cg_1to1_read_global(int file_number, int B, char **connectname, char **zonen return CG_OK; } -int cg_1to1_id(int file_number, int B, int Z, int J, double *one21_id) +int cg_1to1_id(int fn, int B, int Z, int J, double *one21_id) { cgns_1to1 *one21; - cg = cgi_get_file(file_number); + cg = cgi_get_file(fn); if (cg == 0) return CG_ERROR; if (cgi_check_mode(cg->filename, cg->mode, CG_MODE_READ)) return CG_ERROR; @@ -8392,7 +10399,24 @@ int cg_1to1_id(int file_number, int B, int Z, int J, double *one21_id) return CG_OK; } -int cg_1to1_write(int file_number, int B, int Z, const char * connectname, +/** + * \ingroup OneToOneConnectivity + * + * \brief Write 1-to-1 connectivity data for a zone + * + * \param[in] fn \FILE_fn + * \param[in] B \B_Base + * \param[in] Z \Z_Zone + * \param[in] connectname Name of the interface. + * \param[in] donorname Name of the zone interfacing with the current zone. + * \param[in] range Range of points for the current zone. + * \param[in] donor_range Range of points for the donor zone. + * \param[in] transform Short hand notation for the transformation matrix defining the relative orientation of the two zones. + * \param[out] J Interface index number, where 1 ≤ J ≤ n1to1. + * \return \ier + * + */ +int cg_1to1_write(int fn, int B, int Z, const char * connectname, const char * donorname, const cgsize_t * range, const cgsize_t * donor_range, const int * transform, int *J) { @@ -8412,7 +10436,7 @@ int cg_1to1_write(int file_number, int B, int Z, const char * connectname, #endif /* get memory address of file */ - cg = cgi_get_file(file_number); + cg = cgi_get_file(fn); if (cg == 0) return CG_ERROR; if (cgi_check_mode(cg->filename, cg->mode, CG_MODE_WRITE)) return CG_ERROR; @@ -8554,12 +10578,23 @@ int cg_1to1_write(int file_number, int B, int Z, const char * connectname, /*****************************************************************************\ * Read and write BC_t Nodes \*****************************************************************************/ - -int cg_nbocos(int file_number, int B, int Z, int *nbocos) +/** + * \ingroup BoundaryConditionType + * + * \brief Get number of boundary condition in zone + * + * \param[in] fn \FILE_fn + * \param[in] B \B_Base + * \param[in] Z \Z_Zone + * \param[out] nbocos Number of boundary conditions in zone Z. + * \return \ier + * + */ +int cg_nbocos(int fn, int B, int Z, int *nbocos) { cgns_zboco *zboco; - cg = cgi_get_file(file_number); + cg = cgi_get_file(fn); if (cg == 0) return CG_ERROR; if (cgi_check_mode(cg->filename, cg->mode, CG_MODE_READ)) return CG_ERROR; @@ -8570,7 +10605,27 @@ int cg_nbocos(int file_number, int B, int Z, int *nbocos) return CG_OK; } -int cg_boco_info(int file_number, int B, int Z, int BC, char *boconame, +/** + * \ingroup BoundaryConditionType + * + * \brief Get boundary condition info + * + * \param[in] fn \FILE_fn + * \param[in] B \B_Base + * \param[in] Z \Z_Zone + * \param[in] BC Boundary condition index number, where 1 ≤ BC ≤ nbocos. + * \param[out] boconame Name of the boundary condition. + * \param[out] bocotype Type of boundary condition defined. See the eligible types for BCType_t in the Typedefs section. Note that if bocotype is FamilySpecified the boundary condition type is being specified for the family to which the boundary belongs. The boundary condition type for the family may be read and written using cg_fambc_read and cg_fambc_write. + * \param[out] ptset_type The extent of the boundary condition may be defined using a range of points or elements using PointRange, or using a discrete list of all points or elements at which the boundary condition is applied using PointList. When the boundary condition is to be applied anywhere other than points, then GridLocation_t under the BC_t node must be used to indicate this. The value of GridLocation_t may be read or written by cg_boco_gridlocation_read and cg_boco_gridlocation_write. As in previous versions of the library, this may also be done by first using cg_goto to access the BC_t node, then using cg_gridlocation_read or cg_gridlocation_write. + * \param[out] npnts Number of points or elements defining the boundary condition region. For a ptset_type of PointRange, npnts is always two. For a ptset_type of PointList, npnts is the number of points or elements in the list. + * \param[out] NormalIndex Index vector indicating the computational coordinate direction of the boundary condition patch normal. + * \param[out] NormalListSize If the normals are defined in NormalList, NormalListSize is the number of points in the patch times phys_dim, the number of coordinates required to define a vector in the field. If the normals are not defined in NormalList, NormalListSize is 0. + * \param[out] NormalDataType Data type used in the definition of the normals. Admissible data types for the normals are RealSingle and RealDouble. + * \param[out] ndataset Number of boundary condition datasets for the current boundary condition. + * \return \ier + * + */ +int cg_boco_info(int fn, int B, int Z, int BC, char *boconame, CGNS_ENUMT(BCType_t) *bocotype, CGNS_ENUMT(PointSetType_t) *ptset_type, cgsize_t *npnts, int *NormalIndex, cgsize_t *NormalListSize, CGNS_ENUMT(DataType_t) *NormalDataType, int *ndataset) @@ -8578,7 +10633,7 @@ int cg_boco_info(int file_number, int B, int Z, int BC, char *boconame, cgns_boco *boco; int n, index_dim; - cg = cgi_get_file(file_number); + cg = cgi_get_file(fn); if (cg == 0) return CG_ERROR; if (cgi_check_mode(cg->filename, cg->mode, CG_MODE_READ)) return CG_ERROR; @@ -8619,12 +10674,26 @@ int cg_boco_info(int file_number, int B, int Z, int BC, char *boconame, return CG_OK; } -int cg_boco_read(int file_number, int B, int Z, int BC, cgsize_t *pnts, void *NormalList) +/** + * \ingroup BoundaryConditionType + * + * \brief Read boundary condition data and normals + * + * \param[in] fn \FILE_fn + * \param[in] B \B_Base + * \param[in] Z \Z_Zone + * \param[in] BC Boundary condition index number, where 1 ≤ BC ≤ nbocos. + * \param[out] pnts Array of point or element indices defining the boundary condition region. There should be npnts values, each of dimension IndexDimension (i.e., 1 for unstructured grids, and 2 or 3 for structured grids with 2-D or 3-D elements, respectively). + * \param[out] NormalList List of vectors normal to the boundary condition patch pointing into the interior of the zone. + * \return \ier + * + */ +int cg_boco_read(int fn, int B, int Z, int BC, cgsize_t *pnts, void *NormalList) { cgns_boco *boco; int dim = 0; - cg = cgi_get_file(file_number); + cg = cgi_get_file(fn); if (cg == 0) return CG_ERROR; if (cgi_check_mode(cg->filename, cg->mode, CG_MODE_READ)) return CG_ERROR; @@ -8634,7 +10703,7 @@ int cg_boco_read(int file_number, int B, int Z, int BC, cgsize_t *pnts, void *No /* Read point-set directly from ADF-file */ if (boco->ptset && boco->ptset->npts > 0) { - cg_index_dim(file_number, B, Z, &dim); + cg_index_dim(fn, B, Z, &dim); if (cgi_read_int_data(boco->ptset->id, boco->ptset->data_type, boco->ptset->npts * dim, pnts)) return CG_ERROR; } else { @@ -8652,11 +10721,11 @@ int cg_boco_read(int file_number, int B, int Z, int BC, cgsize_t *pnts, void *No return CG_OK; } -int cg_boco_id(int file_number, int B, int Z, int BC, double *boco_id) +int cg_boco_id(int fn, int B, int Z, int BC, double *boco_id) { cgns_boco *boco; - cg = cgi_get_file(file_number); + cg = cgi_get_file(fn); if (cg == 0) return CG_ERROR; if (cgi_check_mode(cg->filename, cg->mode, CG_MODE_READ)) return CG_ERROR; @@ -8668,12 +10737,25 @@ int cg_boco_id(int file_number, int B, int Z, int BC, double *boco_id) return CG_OK; } -int cg_boco_gridlocation_read(int file_number, int B, int Z, +/** + * \ingroup BoundaryConditionType + * + * \brief Read boundary condition location + * + * \param[in] fn \FILE_fn + * \param[in] B \B_Base + * \param[in] Z \Z_Zone + * \param[in] BC Boundary condition index number, where 1 ≤ BC ≤ nbocos. + * \param[out] location Grid location used in the definition of the point set. The currently admissible locations are Vertex (the default if not given), and CellCenter. Interpretation of CellCenter, and additional allowable values of grid location depends on the base cell dimension. For CellDim=1, CellCenter refers to line elements. For CellDim=2, CellCenter refers to area elements, and the additional value EdgeCenter is allowed. For CellDim=3, CellCenter refers to volume elements, and in addition to EdgeCenter, the values of FaceCenter, IFaceCenter, JFaceCenter, and KFaceCenter may be used. + * \return \ier + * + */ +int cg_boco_gridlocation_read(int fn, int B, int Z, int BC, CGNS_ENUMT(GridLocation_t) *location) { cgns_boco *boco; - cg = cgi_get_file(file_number); + cg = cgi_get_file(fn); if (cg == 0) return CG_ERROR; if (cgi_check_mode(cg->filename, cg->mode, CG_MODE_READ)) return CG_ERROR; @@ -8685,7 +10767,24 @@ int cg_boco_gridlocation_read(int file_number, int B, int Z, return CG_OK; } -int cg_boco_write(int file_number, int B, int Z, const char * boconame, +/** + * \ingroup BoundaryConditionType + * + * \brief Write boundary condition type and data + * + * \param[in] fn \FILE_fn + * \param[in] B \B_Base + * \param[in] Z \Z_Zone + * \param[in] boconame Name of the boundary condition. + * \param[in] bocotype Type of boundary condition defined. See the eligible types for BCType_t in the Typedefs section. Note that if bocotype is FamilySpecified the boundary condition type is being specified for the family to which the boundary belongs. The boundary condition type for the family may be read and written using cg_fambc_read and cg_fambc_write. + * \param[in] ptset_type The extent of the boundary condition may be defined using a range of points or elements using PointRange, or using a discrete list of all points or elements at which the boundary condition is applied using PointList. When the boundary condition is to be applied anywhere other than points, then GridLocation_t under the BC_t node must be used to indicate this. The value of GridLocation_t may be read or written by cg_boco_gridlocation_read and cg_boco_gridlocation_write. As in previous versions of the library, this may also be done by first using cg_goto to access the BC_t node, then using cg_gridlocation_read or cg_gridlocation_write. + * \param[in] npnts Number of points or elements defining the boundary condition region. For a ptset_type of PointRange, npnts is always two. For a ptset_type of PointList, npnts is the number of points or elements in the list. + * \param[in] pnts Array of point or element indices defining the boundary condition region. There should be npnts values, each of dimension IndexDimension (i.e., 1 for unstructured grids, and 2 or 3 for structured grids with 2-D or 3-D elements, respectively). + * \param[out] BC Boundary condition index number, where 1 ≤ BC ≤ nbocos. + * \return \ier + * + */ +int cg_boco_write(int fn, int B, int Z, const char * boconame, CGNS_ENUMT(BCType_t) bocotype, CGNS_ENUMT(PointSetType_t) ptset_type, cgsize_t npnts, const cgsize_t * pnts, int *BC) @@ -8699,7 +10798,7 @@ int cg_boco_write(int file_number, int B, int Z, const char * boconame, cgsize_t length; /* get memory address of file */ - cg = cgi_get_file(file_number); + cg = cgi_get_file(fn); if (cg == 0) return CG_ERROR; if (cgi_check_mode(cg->filename, cg->mode, CG_MODE_WRITE)) @@ -8804,6 +10903,7 @@ int cg_boco_write(int file_number, int B, int Z, const char * boconame, boco->location = location; boco->ptset = CGNS_NEW(cgns_ptset,1); boco->ptset->type = ptype; + strcpy(boco->ptset->name, PointSetTypeName[boco->ptset->type]); strcpy(boco->ptset->data_type,CG_SIZE_DATATYPE); boco->ptset->npts = npnts; @@ -8844,9 +10944,7 @@ int cg_boco_write(int file_number, int B, int Z, const char * boconame, /* Save Point-Set on Disk */ if (npnts > 0) { - char_33 PointSetName; - strcpy(PointSetName, PointSetTypeName[boco->ptset->type]); - if (cgi_write_ptset(boco->id, PointSetName, boco->ptset, index_dim, + if (cgi_write_ptset(boco->id, boco->ptset->name, boco->ptset, index_dim, (void *)pnts)) return CG_ERROR; } if (boco->location != CGNS_ENUMV(Vertex)) { @@ -8860,14 +10958,27 @@ int cg_boco_write(int file_number, int B, int Z, const char * boconame, return CG_OK; } -int cg_boco_gridlocation_write(int file_number, int B, int Z, +/** + * \ingroup BoundaryConditionType + * + * \brief Write boundary condition location + * + * \param[in] fn \FILE_fn + * \param[in] B \B_Base + * \param[in] Z \Z_Zone + * \param[in] BC Boundary condition index number, where 1 ≤ BC ≤ nbocos. + * \param[in] location Grid location used in the definition of the point set. The currently admissible locations are Vertex (the default if not given), and CellCenter. Interpretation of CellCenter, and additional allowable values of grid location depends on the base cell dimension. For CellDim=1, CellCenter refers to line elements. For CellDim=2, CellCenter refers to area elements, and the additional value EdgeCenter is allowed. For CellDim=3, CellCenter refers to volume elements, and in addition to EdgeCenter, the values of FaceCenter, IFaceCenter, JFaceCenter, and KFaceCenter may be used. + * \return \ier + * + */ +int cg_boco_gridlocation_write(int fn, int B, int Z, int BC, CGNS_ENUMT(GridLocation_t) location) { cgns_boco *boco; cgsize_t dim_vals; double dummy_id; - cg = cgi_get_file(file_number); + cg = cgi_get_file(fn); if (cg == 0) return CG_ERROR; if (cgi_check_mode(cg->filename, cg->mode, CG_MODE_WRITE)) return CG_ERROR; @@ -8892,7 +11003,23 @@ int cg_boco_gridlocation_write(int file_number, int B, int Z, return CG_OK; } -int cg_boco_normal_write(int file_number, int B, int Z, int BC, const int * NormalIndex, +/** + * \ingroup BoundaryConditionType + * + * \brief Write boundary condition normals + * + * \param[in] fn \FILE_fn + * \param[in] B \B_Base + * \param[in] Z \Z_Zone + * \param[in] BC Boundary condition index number, where 1 ≤ BC ≤ nbocos. + * \param[in] NormalIndex Index vector indicating the computational coordinate direction of the boundary condition patch normal. + * \param[in] NormalListFlag Flag indicating if the normals are defined in NormalList and are to be written out; 1 if they are defined, 0 if they're not. + * \param[in] NormalDataType Data type used in the definition of the normals. Admissible data types for the normals are RealSingle and RealDouble. + * \param[in] NormalList List of vectors normal to the boundary condition patch pointing into the interior of the zone. + * \return \ier + * + */ +int cg_boco_normal_write(int fn, int B, int Z, int BC, const int * NormalIndex, int NormalListFlag, CGNS_ENUMT(DataType_t) NormalDataType, const void * NormalList) { @@ -8901,7 +11028,7 @@ int cg_boco_normal_write(int file_number, int B, int Z, int BC, const int * Norm cgsize_t npnts, index_dim; /* get memory address of file */ - cg = cgi_get_file(file_number); + cg = cgi_get_file(fn); if (cg == 0) return CG_ERROR; if (cgi_check_mode(cg->filename, cg->mode, CG_MODE_WRITE)) return CG_ERROR; @@ -8975,13 +11102,30 @@ int cg_boco_normal_write(int file_number, int B, int Z, int BC, const int * Norm * Read and write BCDataSet_t Nodes \*****************************************************************************/ -int cg_dataset_read(int file_number, int B, int Z, int BC, int DSet, char *name, +/** + * \ingroup BCDataset + * + * \brief Read boundary condition dataset info + * + * \param[in] fn \FILE_fn + * \param[in] B \B_Base + * \param[in] Z \Z_Zone + * \param[in] BC Boundary condition index number, where 1 ≤ BC ≤ nbocos. + * \param[in] DSet Dataset index number, where 1 ≤ Dset ≤ ndataset. + * \param[out] DatasetName Name of dataset. + * \param[out] BCType Simple boundary condition type for the dataset. The supported types are listed in the table of Simple Boundary Condition Types in the SIDS manual, but note that FamilySpecified does not apply here. + * \param[out] DirichletFlag Flag indicating if the dataset contains Dirichlet data. + * \param[out] NeumannFlag Flag indicating if the dataset contains Neumann data. + * \return \ier + * + */ +int cg_dataset_read(int fn, int B, int Z, int BC, int DSet, char *DatasetName, CGNS_ENUMT(BCType_t) *BCType, int *DirichletFlag, int *NeumannFlag) { cgns_dataset *dataset; - cg = cgi_get_file(file_number); + cg = cgi_get_file(fn); if (cg == 0) return CG_ERROR; if (cgi_check_mode(cg->filename, cg->mode, CG_MODE_READ)) return CG_ERROR; @@ -8989,7 +11133,7 @@ int cg_dataset_read(int file_number, int B, int Z, int BC, int DSet, char *name, dataset = cgi_get_dataset(cg, B, Z, BC, DSet); if (dataset==0) return CG_ERROR; - strcpy(name, dataset->name); + strcpy(DatasetName, dataset->name); *BCType = dataset->type; if (dataset->dirichlet) *DirichletFlag=1; else *DirichletFlag=0; @@ -8999,7 +11143,22 @@ int cg_dataset_read(int file_number, int B, int Z, int BC, int DSet, char *name, return CG_OK; } -int cg_dataset_write(int file_number, int B, int Z, int BC, const char * name, +/** + * \ingroup BCDataset + * + * \brief Write boundary condition dataset info + * + * \param[in] fn \FILE_fn + * \param[in] B \B_Base + * \param[in] Z \Z_Zone + * \param[in] BC Boundary condition index number, where 1 ≤ BC ≤ nbocos. + * \param[in] DatasetName Name of dataset. + * \param[in] BCType Simple boundary condition type for the dataset. The supported types are listed in the table of Simple Boundary Condition Types in the SIDS manual, but note that FamilySpecified does not apply here. + * \param[out] Dset Dataset index number, where 1 ≤ Dset ≤ ndataset. + * \return \ier + * + */ +int cg_dataset_write(int fn, int B, int Z, int BC, const char * DatasetName, CGNS_ENUMT( BCType_t ) BCType, int *Dset) { cgns_boco *boco; @@ -9012,10 +11171,10 @@ int cg_dataset_write(int file_number, int B, int Z, int BC, const char * name, cgi_error("Invalid BCType: %d",BCType); return CG_ERROR; } - if (cgi_check_strlen(name)) return CG_ERROR; + if (cgi_check_strlen(DatasetName)) return CG_ERROR; /* get memory address of file */ - cg = cgi_get_file(file_number); + cg = cgi_get_file(fn); if (cg == 0) return CG_ERROR; if (cgi_check_mode(cg->filename, cg->mode, CG_MODE_WRITE)) return CG_ERROR; @@ -9025,11 +11184,11 @@ int cg_dataset_write(int file_number, int B, int Z, int BC, const char * name, /* Overwrite a BCDataSet_t node : */ for (index=0; indexndataset; index++) { - if (strcmp(name, boco->dataset[index].name)==0) { + if (strcmp(DatasetName, boco->dataset[index].name)==0) { /* in CG_MODE_WRITE, children names must be unique */ if (cg->mode==CG_MODE_WRITE) { - cgi_error("Duplicate child name found: %s",name); + cgi_error("Duplicate child name found: %s",DatasetName); return CG_ERROR; } @@ -9058,7 +11217,7 @@ int cg_dataset_write(int file_number, int B, int Z, int BC, const char * name, /* save data in memory */ memset(dataset, 0, sizeof(cgns_dataset)); dataset->type = BCType; - strcpy(dataset->name, name); + strcpy(dataset->name, DatasetName); dataset->location = CGNS_ENUMV(Vertex); /* save data in file */ @@ -9072,7 +11231,23 @@ int cg_dataset_write(int file_number, int B, int Z, int BC, const char * name, * write BCdata_t Nodes \*****************************************************************************/ -int cg_bcdata_write(int file_number, int B, int Z, int BC, int Dset, +/** + * \ingroup BCData + * + * \brief Write boundary condition data + * + * \param[in] fn \FILE_fn + * \param[in] B \B_Base + * \param[in] Z \Z_Zone + * \param[in] BC Boundary condition index number, where 1 ≤ BC ≤ nbocos. + * \param[in] Dset Dataset index number, where 1 ≤ Dset ≤ ndataset. + * \param[in] BCDataType Type of boundary condition in the dataset. Admissible boundary condition types are Dirichlet and Neumann. + * \return \ier + * + * \details To write the boundary condition data itself, after creating the BCData_t node using the function cg_bcdata_write, use cg_goto to access the node, then cg_array_write to write the data. Note that when using cg_goto to access a BCData_t node, the node index should be specified as either Dirichlet or Neumann, depending on the type of boundary condition. See the description of cg_goto for details. + * + */ +int cg_bcdata_write(int fn, int B, int Z, int BC, int Dset, CGNS_ENUMT(BCDataType_t) BCDataType) { cgns_dataset *dataset; @@ -9085,7 +11260,7 @@ int cg_bcdata_write(int file_number, int B, int Z, int BC, int Dset, } /* get memory address of file */ - cg = cgi_get_file(file_number); + cg = cgi_get_file(fn); if (cg == 0) return CG_ERROR; if (cgi_check_mode(cg->filename, cg->mode, CG_MODE_WRITE)) return CG_ERROR; @@ -9136,11 +11311,23 @@ int cg_bcdata_write(int file_number, int B, int Z, int BC, int Dset, * Read and write RigidGridMotion_t Nodes \*****************************************************************************/ -int cg_n_rigid_motions(int file_number, int B, int Z, int *n_rigid_motions) +/** + * \ingroup RigidGridMotion + * + * \brief Get number of RigidGridMotion_t nodes + * + * \param[in] fn \FILE_fn + * \param[in] B \B_Base + * \param[in] Z \Z_Zone + * \param[out] n_rigid_motions Number of RigidGridMotion_t nodes under zone Z. + * \return \ier + * + */ +int cg_n_rigid_motions(int fn, int B, int Z, int *n_rigid_motions) { cgns_zone *zone; - cg = cgi_get_file(file_number); + cg = cgi_get_file(fn); if (cg == 0) return CG_ERROR; if (cgi_check_mode(cg->filename, cg->mode, CG_MODE_READ)) return CG_ERROR; @@ -9153,13 +11340,27 @@ int cg_n_rigid_motions(int file_number, int B, int Z, int *n_rigid_motions) return CG_OK; } -int cg_rigid_motion_read(int file_number, int B, int Z, int R, char *name, +/** + * \ingroup RigidGridMotion + * + * \brief Read RigidGridMotion_t node + * + * \param[in] fn \FILE_fn + * \param[in] B \B_Base + * \param[in] Z \Z_Zone + * \param[in] R Rigid rotation index number, where 1 ≤ R ≤ n_rigid_motions. + * \param[out] name Name of the RigidGridMotion_t node. + * \param[out] type Type of rigid grid motion. The admissible types are CG_Null, CG_UserDefined, ConstantRate, and VariableRate. + * \return \ier + * + */ +int cg_rigid_motion_read(int fn, int B, int Z, int R, char *name, CGNS_ENUMT(RigidGridMotionType_t) *type) { cgns_rmotion *rmotion; - cg = cgi_get_file(file_number); + cg = cgi_get_file(fn); if (cg == 0) return CG_ERROR; if (cgi_check_mode(cg->filename, cg->mode, CG_MODE_READ)) return CG_ERROR; @@ -9173,7 +11374,21 @@ int cg_rigid_motion_read(int file_number, int B, int Z, int R, char *name, return CG_OK; } -int cg_rigid_motion_write(int file_number, int B, int Z, const char * rmotionname, +/** + * \ingroup RigidGridMotion + * + * \brief Create RigidGridMotion_t node + * + * \param[in] fn \FILE_fn + * \param[in] B \B_Base + * \param[in] Z \Z_Zone + * \param[in] rmotionname Name of the RigidGridMotion_t node. + * \param[in] type Type of rigid grid motion. The admissible types are CG_Null, CG_UserDefined, ConstantRate, and VariableRate. + * \param[out] R Rigid rotation index number, where 1 ≤ R ≤ n_rigid_motions. + * \return \ier + * + */ +int cg_rigid_motion_write(int fn, int B, int Z, const char * rmotionname, CGNS_ENUMT(RigidGridMotionType_t) type, int *R) { cgns_zone *zone; @@ -9190,7 +11405,7 @@ int cg_rigid_motion_write(int file_number, int B, int Z, const char * rmotionnam } /* get memory address for RigidGridMotion_t node */ - cg = cgi_get_file(file_number); + cg = cgi_get_file(fn); if (cg == 0) return CG_ERROR; if (cgi_check_mode(cg->filename, cg->mode, CG_MODE_WRITE)) return CG_ERROR; @@ -9248,11 +11463,23 @@ int cg_rigid_motion_write(int file_number, int B, int Z, const char * rmotionnam * Read and write ArbitraryGridMotion_t Nodes \*****************************************************************************/ -int cg_n_arbitrary_motions(int file_number, int B, int Z, int *n_arbitrary_motions) +/** + * \ingroup ArbitraryGridMotion + * + * \brief Get number of ArbitraryGridMotion_t nodes + * + * \param[in] fn \FILE_fn + * \param[in] B \B_Base + * \param[in] Z \Z_Zone + * \param[out] n_arbitrary_motions Number of ArbitraryGridMotion_t nodes under zone Z. + * \return \ier + * + */ +int cg_n_arbitrary_motions(int fn, int B, int Z, int *n_arbitrary_motions) { cgns_zone *zone; - cg = cgi_get_file(file_number); + cg = cgi_get_file(fn); if (cg == 0) return CG_ERROR; if (cgi_check_mode(cg->filename, cg->mode, CG_MODE_READ)) return CG_ERROR; @@ -9265,13 +11492,27 @@ int cg_n_arbitrary_motions(int file_number, int B, int Z, int *n_arbitrary_motio return CG_OK; } -int cg_arbitrary_motion_read(int file_number, int B, int Z, int A, char *name, +/** + * \ingroup ArbitraryGridMotion + * + * \brief Read ArbitraryGridMotion_t node + * + * \param[in] fn \FILE_fn + * \param[in] B \B_Base + * \param[in] Z \Z_Zone + * \param[in] A Arbitrary grid motion index number, where 1 ≤ A ≤ n_arbitrary_motions. + * \param[out] name Name of the ArbitraryGridMotion_t node. + * \param[out] type Type of arbitrary grid motion. The admissible types are CG_Null, CG_UserDefined, NonDeformingGrid, and DeformingGrid. + * \return \ier + * + */ +int cg_arbitrary_motion_read(int fn, int B, int Z, int A, char *name, CGNS_ENUMT(ArbitraryGridMotionType_t) *type) { cgns_amotion *amotion; - cg = cgi_get_file(file_number); + cg = cgi_get_file(fn); if (cg == 0) return CG_ERROR; if (cgi_check_mode(cg->filename, cg->mode, CG_MODE_READ)) return CG_ERROR; @@ -9285,7 +11526,21 @@ int cg_arbitrary_motion_read(int file_number, int B, int Z, int A, char *name, return CG_OK; } -int cg_arbitrary_motion_write(int file_number, int B, int Z, const char * amotionname, +/** + * \ingroup ArbitraryGridMotion + * + * \brief Write ArbitraryGridMotion_t node + * + * \param[in] fn \FILE_fn + * \param[in] B \B_Base + * \param[in] Z \Z_Zone + * \param[in] amotionname Name of the ArbitraryGridMotion_t node. + * \param[in] type Type of arbitrary grid motion. The admissible types are CG_Null, CG_UserDefined, NonDeformingGrid, and DeformingGrid. + * \param[out] A Arbitrary grid motion index number, where 1 ≤ A ≤ n_arbitrary_motions. + * \return \ier + * + */ +int cg_arbitrary_motion_write(int fn, int B, int Z, const char * amotionname, CGNS_ENUMT(ArbitraryGridMotionType_t) type, int *A) { cgns_zone *zone; @@ -9302,7 +11557,7 @@ int cg_arbitrary_motion_write(int file_number, int B, int Z, const char * amotio } /* get memory address for ArbitraryGridMotion_t node */ - cg = cgi_get_file(file_number); + cg = cgi_get_file(fn); if (cg == 0) return CG_ERROR; if (cgi_check_mode(cg->filename, cg->mode, CG_MODE_WRITE)) return CG_ERROR; @@ -9360,11 +11615,22 @@ int cg_arbitrary_motion_write(int file_number, int B, int Z, const char * amotio * Read and write SimulationType_t Node \*****************************************************************************/ -int cg_simulation_type_read(int file_number, int B, CGNS_ENUMT(SimulationType_t) *type) +/** + * \ingroup SimulationType + * + * \brief Read simulation type + * + * \param[in] fn \FILE_fn + * \param[in] B \B_Base + * \param[out] SimulationType Type of simulation. Valid types are CG_Null, CG_UserDefined, TimeAccurate, and NonTimeAccurate. + * \return \ier + * + */ +int cg_simulation_type_read(int fn, int B, CGNS_ENUMT(SimulationType_t) *SimulationType) { cgns_base *base; - cg = cgi_get_file(file_number); + cg = cgi_get_file(fn); if (cg == 0) return CG_ERROR; if (cgi_check_mode(cg->filename, cg->mode, CG_MODE_READ)) return CG_ERROR; @@ -9372,24 +11638,35 @@ int cg_simulation_type_read(int file_number, int B, CGNS_ENUMT(SimulationType_t) base = cgi_get_base(cg, B); if (base==0) return CG_ERROR; - *type = base->type; + *SimulationType = base->type; return CG_OK; } -int cg_simulation_type_write(int file_number, int B, CGNS_ENUMT(SimulationType_t) type) +/** + * \ingroup SimulationType + * + * \brief Write simulation type + * + * \param[in] fn \FILE_fn + * \param[in] B \B_Base + * \param[in] SimulationType Type of simulation. Valid types are CG_Null, CG_UserDefined, TimeAccurate, and NonTimeAccurate. + * \return \ier + * + */ +int cg_simulation_type_write(int fn, int B, CGNS_ENUMT(SimulationType_t) SimulationType) { cgns_base *base; cgsize_t length; /* check input */ - if (INVALID_ENUM(type,NofValidSimulationTypes)) { - cgi_error("Invalid input: SimulationType=%d ?",type); + if (INVALID_ENUM(SimulationType,NofValidSimulationTypes)) { + cgi_error("Invalid input: SimulationType=%d ?", SimulationType); return CG_ERROR; } /* get memory address for file */ - cg = cgi_get_file(file_number); + cg = cgi_get_file(fn); if (cg == 0) return CG_ERROR; if (cgi_check_mode(cg->filename, cg->mode, CG_MODE_WRITE)) return CG_ERROR; @@ -9408,13 +11685,13 @@ int cg_simulation_type_write(int file_number, int B, CGNS_ENUMT(SimulationType_t if (cgi_delete_node(base->id, base->type_id)) return CG_ERROR; } - base->type = type; + base->type = SimulationType; base->type_id = 0; /* save data in file */ - length = (cgsize_t)strlen(SimulationTypeName[type]); + length = (cgsize_t)strlen(SimulationTypeName[SimulationType]); if (cgi_new_node(base->id, "SimulationType", "SimulationType_t", &base->type_id, - "C1", 1, &length, (void *)SimulationTypeName[type])) return CG_ERROR; + "C1", 1, &length, (void *)SimulationTypeName[SimulationType])) return CG_ERROR; return CG_OK; } @@ -9423,11 +11700,23 @@ int cg_simulation_type_write(int file_number, int B, CGNS_ENUMT(SimulationType_t * read and write BaseIterativeData_t Node \*****************************************************************************/ -int cg_biter_read(int file_number, int B, char *bitername, int *nsteps) +/** + * \ingroup BaseIterativeData + * + * \brief Read BaseIterativeData_t node + * + * \param[in] fn \FILE_fn + * \param[in] B \B_Base + * \param[out] bitername Name of the BaseIterativeData_t node. + * \param[out] nsteps Number of time steps or iterations. + * \return \ier + * + */ +int cg_biter_read(int fn, int B, char *bitername, int *nsteps) { cgns_biter *biter; - cg = cgi_get_file(file_number); + cg = cgi_get_file(fn); if (cg == 0) return CG_ERROR; if (cgi_check_mode(cg->filename, cg->mode, CG_MODE_READ)) return CG_ERROR; @@ -9441,7 +11730,19 @@ int cg_biter_read(int file_number, int B, char *bitername, int *nsteps) return CG_OK; } -int cg_biter_write(int file_number, int B, const char * bitername, int nsteps) +/** + * \ingroup BaseIterativeData + * + * \brief Write BaseIterativeData_t node + * + * \param[in] fn \FILE_fn + * \param[in] B \B_Base + * \param[in] bitername Name of the BaseIterativeData_t node. + * \param[in] nsteps Number of time steps or iterations. + * \return \ier + * + */ +int cg_biter_write(int fn, int B, const char * bitername, int nsteps) { cgns_base *base; cgns_biter *biter; @@ -9454,7 +11755,7 @@ int cg_biter_write(int file_number, int B, const char * bitername, int nsteps) } /* get memory address for BaseIterativeData_t node */ - cg = cgi_get_file(file_number); + cg = cgi_get_file(fn); if (cg == 0) return CG_ERROR; if (cgi_check_mode(cg->filename, cg->mode, CG_MODE_WRITE)) return CG_ERROR; @@ -9498,11 +11799,23 @@ int cg_biter_write(int file_number, int B, const char * bitername, int nsteps) * read and write ZoneIterativeData_t Node \*****************************************************************************/ -int cg_ziter_read(int file_number, int B, int Z, char *zitername) +/** + * \ingroup ZoneIterativeData + * + * \brief Read ZontIterativeData_t node + * + * \param[in] fn \FILE_fn + * \param[in] B \B_Base + * \param[in] Z \Z_Zone + * \param[out] zitername Name of the ZoneIterativeData_t node. + * \return \ier + * + */ +int cg_ziter_read(int fn, int B, int Z, char *zitername) { cgns_ziter *ziter; - cg = cgi_get_file(file_number); + cg = cgi_get_file(fn); if (cg == 0) return CG_ERROR; if (cgi_check_mode(cg->filename, cg->mode, CG_MODE_READ)) return CG_ERROR; @@ -9515,7 +11828,19 @@ int cg_ziter_read(int file_number, int B, int Z, char *zitername) return CG_OK; } -int cg_ziter_write(int file_number, int B, int Z, const char * zitername) +/** + * \ingroup ZoneIterativeData + * + * \brief Write ZontIterativeData_t node + * + * \param[in] fn \FILE_fn + * \param[in] B \B_Base + * \param[in] Z \Z_Zone + * \param[in] zitername Name of the ZoneIterativeData_t node. + * \return \ier + * + */ +int cg_ziter_write(int fn, int B, int Z, const char * zitername) { cgns_zone *zone; cgns_ziter *ziter; @@ -9524,7 +11849,7 @@ int cg_ziter_write(int file_number, int B, int Z, const char * zitername) if (cgi_check_strlen(zitername)) return CG_ERROR; /* get memory address for ZoneIterativeData_t node */ - cg = cgi_get_file(file_number); + cg = cgi_get_file(fn); if (cg == 0) return CG_ERROR; if (cgi_check_mode(cg->filename, cg->mode, CG_MODE_WRITE)) return CG_ERROR; @@ -9565,13 +11890,24 @@ int cg_ziter_write(int file_number, int B, int Z, const char * zitername) * read and write Gravity_t Node \*****************************************************************************/ -int cg_gravity_read(int file_number, int B, float *gravity_vector) +/** + * \ingroup Gravity + * + * \brief Read Gravity_t node + * + * \param[in] fn \FILE_fn + * \param[in] B \B_Base + * \param[in] gravity_vector Components of the gravity vector. The number of components must equal PhysicalDimension. (In Fortran, this is an array of Real*4 values.) + * \return \ier + * + */ +int cg_gravity_read(int fn, int B, float *gravity_vector) { cgns_base *base; cgns_gravity *gravity; /* get memory address for file */ - cg = cgi_get_file(file_number); + cg = cgi_get_file(fn); if (cg == 0) return CG_ERROR; if (cgi_check_mode(cg->filename, cg->mode, CG_MODE_READ)) return CG_ERROR; @@ -9588,13 +11924,24 @@ int cg_gravity_read(int file_number, int B, float *gravity_vector) return CG_OK; } -int cg_gravity_write(int file_number, int B, float const *gravity_vector) +/** + * \ingroup Gravity + * + * \brief Write Gravity_t node + * + * \param[in] fn \FILE_fn + * \param[in] B \B_Base + * \param[in] gravity_vector Components of the gravity vector. The number of components must equal PhysicalDimension. (In Fortran, this is an array of Real*4 values.) + * \return \ier + * + */ +int cg_gravity_write(int fn, int B, float const *gravity_vector) { cgns_base *base; cgns_gravity *gravity; /* get memory address for file */ - cg = cgi_get_file(file_number); + cg = cgi_get_file(fn); if (cg == 0) return CG_ERROR; if (cgi_check_mode(cg->filename, cg->mode, CG_MODE_WRITE)) return CG_ERROR; @@ -9644,14 +11991,28 @@ int cg_gravity_write(int file_number, int B, float const *gravity_vector) * read and write Axisymmetry_t Node \*****************************************************************************/ -int cg_axisym_read(int file_number, int B, float *ref_point, float *axis) +/** + * \ingroup Axisymmetry + * + * \brief Read Axisymmetry_t node + * + * \param[in] fn \FILE_fn + * \param[in] B \B_Base + * \param[out] ref_point Origin used for defining the axis of rotation. (In Fortran, this is an array of Real*4 values.) + * \param[out] axis Direction cosines of the axis of rotation, through the reference point. (In Fortran, this is an array of Real*4 values.) + * \return \ier + * + * \details This node can only be used for a bi-dimensional model, i.e., PhysicalDimension must equal two. + * + */ +int cg_axisym_read(int fn, int B, float *ref_point, float *axis) { int n; cgns_base *base; cgns_axisym *axisym; /* get memory address for file */ - cg = cgi_get_file(file_number); + cg = cgi_get_file(fn); if (cg == 0) return CG_ERROR; if (cgi_check_mode(cg->filename, cg->mode, CG_MODE_READ)) return CG_ERROR; @@ -9673,14 +12034,28 @@ int cg_axisym_read(int file_number, int B, float *ref_point, float *axis) return CG_OK; } -int cg_axisym_write(int file_number, int B, float const *ref_point, float const *axis) +/** + * \ingroup Axisymmetry + * + * \brief Create axisymmetry data + * + * \param[in] fn \FILE_fn + * \param[in] B \B_Base + * \param[in] ref_point Origin used for defining the axis of rotation. (In Fortran, this is an array of Real*4 values.) + * \param[in] axis Direction cosines of the axis of rotation, through the reference point. (In Fortran, this is an array of Real*4 values.) + * \return \ier + * + * \details Axisymmetry_t node can only be used for a bi-dimensional model, i.e., PhysicalDimension must equal two. + * + */ +int cg_axisym_write(int fn, int B, float const *ref_point, float const *axis) { int n; cgns_base *base; cgns_axisym *axisym; /* get memory address for file */ - cg = cgi_get_file(file_number); + cg = cgi_get_file(fn); if (cg == 0) return CG_ERROR; if (cgi_check_mode(cg->filename, cg->mode, CG_MODE_WRITE)) return CG_ERROR; @@ -9739,14 +12114,28 @@ int cg_axisym_write(int file_number, int B, float const *ref_point, float const /*****************************************************************************\ * read and write BCProperty_t Node \*****************************************************************************/ - -int cg_bc_wallfunction_read(int file_number, int B, int Z, int BC, +/** + * \ingroup SpecialBoundaryConditionProperty + * + * \brief Read wall function data + * + * \param[in] fn \FILE_fn + * \param[in] B \B_Base + * \param[in] Z \Z_Zone + * \param[in] BC Boundary condition index number, where 1 ≤ BC ≤ nbocos. + * \param[out] WallFunctionType The wall function type. Valid types are CG_Null, CG_UserDefined, and Generic. + * \return \ier + * + * \details The "read" functions will return with ier = 2 = CG_NODE_NOT_FOUND if the requested boundary condition property, or the BCProperty_t node itself, doesn't exist. + * + */ +int cg_bc_wallfunction_read(int fn, int B, int Z, int BC, CGNS_ENUMT(WallFunctionType_t) *WallFunctionType) { cgns_bprop *bprop; /* get memory address for file */ - cg = cgi_get_file(file_number); + cg = cgi_get_file(fn); if (cg == 0) return CG_ERROR; if (cgi_check_mode(cg->filename, cg->mode, CG_MODE_READ)) return CG_ERROR; @@ -9764,7 +12153,22 @@ int cg_bc_wallfunction_read(int file_number, int B, int Z, int BC, return CG_OK; } -int cg_bc_wallfunction_write(int file_number, int B, int Z, int BC, +/** + * \ingroup SpecialBoundaryConditionProperty + * + * \brief Write wall function data + * + * \param[in] fn \FILE_fn + * \param[in] B \B_Base + * \param[in] Z \Z_Zone + * \param[in] BC Boundary condition index number, where 1 ≤ BC ≤ nbocos. + * \param[in] WallFunctionType The wall function type. Valid types are CG_Null, CG_UserDefined, and Generic. + * \return \ier + * + * \details The "write" functions will create the BCProperty_t node if it doesn't already exist, then add the appropriate boundary condition property. Multiple boundary condition properties may be recorded under the same BCProperty_t node. + * + */ +int cg_bc_wallfunction_write(int fn, int B, int Z, int BC, CGNS_ENUMT(WallFunctionType_t) WallFunctionType) { cgns_bprop *bprop; @@ -9780,7 +12184,7 @@ int cg_bc_wallfunction_write(int file_number, int B, int Z, int BC, } /* get memory address of file */ - cg = cgi_get_file(file_number); + cg = cgi_get_file(fn); if (cg == 0) return CG_ERROR; if (cgi_check_mode(cg->filename, cg->mode, CG_MODE_WRITE)) return CG_ERROR; @@ -9853,8 +12257,24 @@ int cg_bc_wallfunction_write(int file_number, int B, int Z, int BC, } /*----------------------------------------------------------------------*/ - -int cg_bc_area_read(int file_number, int B, int Z, int BC, +/** + * \ingroup SpecialBoundaryConditionProperty + * + * \brief Read area related data + * + * \param[in] fn \FILE_fn + * \param[in] B \B_Base + * \param[in] Z \Z_Zone + * \param[in] BC Boundary condition index number, where 1 ≤ BC ≤ nbocos. + * \param[out] AreaType The type of area. Valid types are CG_Null, CG_UserDefined, BleedArea, and CaptureArea. + * \param[out] SurfaceArea The size of the area. (In Fortran, this is a Real*4 value.) + * \param[out] RegionName The name of the region, 32 characters max. + * \return \ier + * + * \details The "read" functions will return with ier = 2 = CG_NODE_NOT_FOUND if the requested boundary condition property, or the BCProperty_t node itself, doesn't exist. + * + */ +int cg_bc_area_read(int fn, int B, int Z, int BC, CGNS_ENUMT(AreaType_t) *AreaType, float *SurfaceArea, char *RegionName) { @@ -9862,7 +12282,7 @@ int cg_bc_area_read(int file_number, int B, int Z, int BC, cgns_bprop *bprop; /* get memory address for file */ - cg = cgi_get_file(file_number); + cg = cgi_get_file(fn); if (cg == 0) return CG_ERROR; if (cgi_check_mode(cg->filename, cg->mode, CG_MODE_READ)) return CG_ERROR; @@ -9888,7 +12308,24 @@ int cg_bc_area_read(int file_number, int B, int Z, int BC, return CG_OK; } -int cg_bc_area_write(int file_number, int B, int Z, int BC, +/** + * \ingroup SpecialBoundaryConditionProperty + * + * \brief Write area related data + * + * \param[in] fn \FILE_fn + * \param[in] B \B_Base + * \param[in] Z \Z_Zone + * \param[in] BC Boundary condition index number, where 1 ≤ BC ≤ nbocos. + * \param[in] AreaType The type of area. Valid types are CG_Null, CG_UserDefined, BleedArea, and CaptureArea. + * \param[in] SurfaceArea The size of the area. (In Fortran, this is a Real*4 value.) + * \param[in] RegionName The name of the region, 32 characters max. + * \return \ier + * + * \details The "write" functions will create the BCProperty_t node if it doesn't already exist, then add the appropriate boundary condition property. Multiple boundary condition properties may be recorded under the same BCProperty_t node. + * + */ +int cg_bc_area_write(int fn, int B, int Z, int BC, CGNS_ENUMT( AreaType_t ) AreaType, float SurfaceArea, const char *RegionName) { @@ -9907,7 +12344,7 @@ int cg_bc_area_write(int file_number, int B, int Z, int BC, } /* get memory address of file */ - cg = cgi_get_file(file_number); + cg = cgi_get_file(fn); if (cg == 0) return CG_ERROR; if (cgi_check_mode(cg->filename, cg->mode, CG_MODE_WRITE)) return CG_ERROR; @@ -10018,8 +12455,24 @@ int cg_bc_area_write(int file_number, int B, int Z, int BC, /*****************************************************************************\ * read and write GridConnectivityProperty_t Node \*****************************************************************************/ - -int cg_conn_periodic_read(int file_number, int B, int Z, int J, +/** + * \ingroup SpecialGridConnectivityProperty + * + * \brief Read data for periodic interface + * + * \param[in] fn \FILE_fn + * \param[in] B \B_Base + * \param[in] Z \Z_Zone + * \param[in] J Grid connectivity index number, where 1 ≤ J ≤ nconns for the "cg_conn" functions, and 1 ≤ J ≤ n1to1 for the "cg_1to1" functions. + * \param[out] RotationCenter An array of size phys_dim defining the coordinates of the origin for defining the rotation angle between the periodic interfaces. (phys_dim is the number of coordinates required to define a vector in the field.) (In Fortran, this is an array of Real*4 values.) + * \param[out] RotationAngle An array of size phys_dim defining the rotation angle from the current interface to the connecting interface. If rotating about more than one axis, the rotation is performed first about the x-axis, then the y-axis, then the z-axis. (In Fortran, this is an array of Real*4 values.) + * \param[out] Translation An array of size phys_dim defining the translation from the current interface to the connecting interface. (In Fortran, this is an array of Real*4 values.) + * \return \ier + * + * \details The "read" functions will return with ier = 2 = CG_NODE_NOT_FOUND if the requested connectivity property, or the GridConnectivityProperty_t node itself, doesn't exist. + * + */ +int cg_conn_periodic_read(int fn, int B, int Z, int J, float *RotationCenter, float *RotationAngle, float *Translation) { @@ -10029,7 +12482,7 @@ int cg_conn_periodic_read(int file_number, int B, int Z, int J, cgns_cperio *cperio; /* get memory address for file */ - cg = cgi_get_file(file_number); + cg = cgi_get_file(fn); if (cg == 0) return CG_ERROR; if (cgi_check_mode(cg->filename, cg->mode, CG_MODE_READ)) return CG_ERROR; @@ -10061,7 +12514,24 @@ int cg_conn_periodic_read(int file_number, int B, int Z, int J, return CG_OK; } -int cg_conn_periodic_write(int file_number, int B, int Z, int J, +/** + * \ingroup SpecialGridConnectivityProperty + * + * \brief Write data for periodic interface + * + * \param[in] fn \FILE_fn + * \param[in] B \B_Base + * \param[in] Z \Z_Zone + * \param[in] J Grid connectivity index number, where 1 ≤ J ≤ nconns for the "cg_conn" functions, and 1 ≤ J ≤ n1to1 for the "cg_1to1" functions. + * \param[in] RotationCenter An array of size phys_dim defining the coordinates of the origin for defining the rotation angle between the periodic interfaces. (phys_dim is the number of coordinates required to define a vector in the field.) (In Fortran, this is an array of Real*4 values.) + * \param[in] RotationAngle An array of size phys_dim defining the rotation angle from the current interface to the connecting interface. If rotating about more than one axis, the rotation is performed first about the x-axis, then the y-axis, then the z-axis. (In Fortran, this is an array of Real*4 values.) + * \param[in] Translation An array of size phys_dim defining the translation from the current interface to the connecting interface. (In Fortran, this is an array of Real*4 values.) + * \return \ier + * + * \details The "write" functions will create the GridConnectivityProperty_t node if it doesn't already exist, then add the appropriate connectivity property. Multiple grid connectivity properties may be recorded under the same GridConnectivityProperty_t node. + * + */ +int cg_conn_periodic_write(int fn, int B, int Z, int J, float const *RotationCenter, float const *RotationAngle, float const *Translation) { @@ -10072,7 +12542,7 @@ int cg_conn_periodic_write(int file_number, int B, int Z, int J, int n; /* get memory address of file */ - cg = cgi_get_file(file_number); + cg = cgi_get_file(fn); if (cg == 0) return CG_ERROR; if (cgi_check_mode(cg->filename, cg->mode, CG_MODE_WRITE)) return CG_ERROR; @@ -10166,14 +12636,28 @@ int cg_conn_periodic_write(int file_number, int B, int Z, int J, } /*----------------------------------------------------------------------*/ - -int cg_conn_average_read(int file_number, int B, int Z, int J, +/** + * \ingroup SpecialGridConnectivityProperty + * + * \brief Read data for averaging interface + * + * \param[in] fn \FILE_fn + * \param[in] B \B_Base + * \param[in] Z \Z_Zone + * \param[in] J Grid connectivity index number, where 1 ≤ J ≤ nconns for the "cg_conn" functions, and 1 ≤ J ≤ n1to1 for the "cg_1to1" functions. + * \param[out] AverageInterfaceType The type of averaging to be done. Valid types are CG_Null, CG_UserDefined, AverageAll, AverageCircumferential, AverageRadial, AverageI, AverageJ, and AverageK. + * \return \ier + * + * \details The "read" functions will return with ier = 2 = CG_NODE_NOT_FOUND if the requested connectivity property, or the GridConnectivityProperty_t node itself, doesn't exist. + * + */ +int cg_conn_average_read(int fn, int B, int Z, int J, CGNS_ENUMT(AverageInterfaceType_t) *AverageInterfaceType) { cgns_cprop *cprop; /* get memory address for file */ - cg = cgi_get_file(file_number); + cg = cgi_get_file(fn); if (cg == 0) return CG_ERROR; if (cgi_check_mode(cg->filename, cg->mode, CG_MODE_READ)) return CG_ERROR; @@ -10191,7 +12675,22 @@ int cg_conn_average_read(int file_number, int B, int Z, int J, return CG_OK; } -int cg_conn_average_write(int file_number, int B, int Z, int J, +/** + * \ingroup SpecialGridConnectivityProperty + * + * \brief Write data for averaging interface + * + * \param[in] fn \FILE_fn + * \param[in] B \B_Base + * \param[in] Z \Z_Zone + * \param[in] J Grid connectivity index number, where 1 ≤ J ≤ nconns for the "cg_conn" functions, and 1 ≤ J ≤ n1to1 for the "cg_1to1" functions. + * \param[in] AverageInterfaceType The type of averaging to be done. Valid types are CG_Null, CG_UserDefined, AverageAll, AverageCircumferential, AverageRadial, AverageI, AverageJ, and AverageK. + * \return \ier + * + * \details The "write" functions will create the GridConnectivityProperty_t node if it doesn't already exist, then add the appropriate connectivity property. Multiple grid connectivity properties may be recorded under the same GridConnectivityProperty_t node. + * + */ +int cg_conn_average_write(int fn, int B, int Z, int J, CGNS_ENUMT(AverageInterfaceType_t) AverageInterfaceType) { cgns_cprop *cprop; @@ -10207,7 +12706,7 @@ int cg_conn_average_write(int file_number, int B, int Z, int J, } /* get memory address of file */ - cg = cgi_get_file(file_number); + cg = cgi_get_file(fn); if (cg == 0) return CG_ERROR; if (cgi_check_mode(cg->filename, cg->mode, CG_MODE_WRITE)) return CG_ERROR; @@ -10278,8 +12777,24 @@ int cg_conn_average_write(int file_number, int B, int Z, int J, } /*----------------------------------------------------------------------*/ - -int cg_1to1_periodic_read(int file_number, int B, int Z, int J, +/** + * \ingroup SpecialGridConnectivityProperty + * + * \brief Read data for periodic interface + * + * \param[in] fn \FILE_fn + * \param[in] B \B_Base + * \param[in] Z \Z_Zone + * \param[in] J Grid connectivity index number, where 1 ≤ J ≤ nconns for the "cg_conn" functions, and 1 ≤ J ≤ n1to1 for the "cg_1to1" functions. + * \param[out] RotationCenter An array of size phys_dim defining the coordinates of the origin for defining the rotation angle between the periodic interfaces. (phys_dim is the number of coordinates required to define a vector in the field.) (In Fortran, this is an array of Real*4 values.) + * \param[out] RotationAngle An array of size phys_dim defining the rotation angle from the current interface to the connecting interface. If rotating about more than one axis, the rotation is performed first about the x-axis, then the y-axis, then the z-axis. (In Fortran, this is an array of Real*4 values.) + * \param[out] Translation An array of size phys_dim defining the translation from the current interface to the connecting interface. (In Fortran, this is an array of Real*4 values.) + * \return \ier + * + * \details The "read" functions will return with ier = 2 = CG_NODE_NOT_FOUND if the requested connectivity property, or the GridConnectivityProperty_t node itself, doesn't exist. + * + */ +int cg_1to1_periodic_read(int fn, int B, int Z, int J, float *RotationCenter, float *RotationAngle, float *Translation) { @@ -10290,7 +12805,7 @@ int cg_1to1_periodic_read(int file_number, int B, int Z, int J, cgns_1to1 *one21; /* get memory address for file */ - cg = cgi_get_file(file_number); + cg = cgi_get_file(fn); if (cg == 0) return CG_ERROR; if (cgi_check_mode(cg->filename, cg->mode, CG_MODE_READ)) return CG_ERROR; @@ -10324,7 +12839,24 @@ int cg_1to1_periodic_read(int file_number, int B, int Z, int J, return CG_OK; } -int cg_1to1_periodic_write(int file_number, int B, int Z, int J, +/** + * \ingroup SpecialGridConnectivityProperty + * + * \brief Write data for periodic interface + * + * \param[in] fn \FILE_fn + * \param[in] B \B_Base + * \param[in] Z \Z_Zone + * \param[in] J Grid connectivity index number, where 1 ≤ J ≤ nconns for the "cg_conn" functions, and 1 ≤ J ≤ n1to1 for the "cg_1to1" functions. + * \param[in] RotationCenter An array of size phys_dim defining the coordinates of the origin for defining the rotation angle between the periodic interfaces. (phys_dim is the number of coordinates required to define a vector in the field.) (In Fortran, this is an array of Real*4 values.) + * \param[in] RotationAngle An array of size phys_dim defining the rotation angle from the current interface to the connecting interface. If rotating about more than one axis, the rotation is performed first about the x-axis, then the y-axis, then the z-axis. (In Fortran, this is an array of Real*4 values.) + * \param[in] Translation An array of size phys_dim defining the translation from the current interface to the connecting interface. (In Fortran, this is an array of Real*4 values.) + * \return \ier + * + * \details The "write" functions will create the GridConnectivityProperty_t node if it doesn't already exist, then add the appropriate connectivity property. Multiple grid connectivity properties may be recorded under the same GridConnectivityProperty_t node. + * + */ +int cg_1to1_periodic_write(int fn, int B, int Z, int J, float const *RotationCenter, float const *RotationAngle, float const *Translation) @@ -10336,7 +12868,7 @@ int cg_1to1_periodic_write(int file_number, int B, int Z, int J, int n; /* get memory address of file */ - cg = cgi_get_file(file_number); + cg = cgi_get_file(fn); if (cg == 0) return CG_ERROR; if (cgi_check_mode(cg->filename, cg->mode, CG_MODE_WRITE)) return CG_ERROR; @@ -10432,15 +12964,29 @@ int cg_1to1_periodic_write(int file_number, int B, int Z, int J, } /*----------------------------------------------------------------------*/ - -int cg_1to1_average_read(int file_number, int B, int Z, int J, +/** + * \ingroup SpecialGridConnectivityProperty + * + * \brief Read data for averaging interface + * + * \param[in] fn \FILE_fn + * \param[in] B \B_Base + * \param[in] Z \Z_Zone + * \param[in] J Grid connectivity index number, where 1 ≤ J ≤ nconns for the "cg_conn" functions, and 1 ≤ J ≤ n1to1 for the "cg_1to1" functions. + * \param[out] AverageInterfaceType The type of averaging to be done. Valid types are CG_Null, CG_UserDefined, AverageAll, AverageCircumferential, AverageRadial, AverageI, AverageJ, and AverageK. + * \return \ier + * + * \details The "read" functions will return with ier = 2 = CG_NODE_NOT_FOUND if the requested connectivity property, or the GridConnectivityProperty_t node itself, doesn't exist. + * + */ +int cg_1to1_average_read(int fn, int B, int Z, int J, CGNS_ENUMT(AverageInterfaceType_t) *AverageInterfaceType) { cgns_cprop *cprop; cgns_1to1 *one21; /* get memory address for file */ - cg = cgi_get_file(file_number); + cg = cgi_get_file(fn); if (cg == 0) return CG_ERROR; if (cgi_check_mode(cg->filename, cg->mode, CG_MODE_READ)) return CG_ERROR; @@ -10460,7 +13006,22 @@ int cg_1to1_average_read(int file_number, int B, int Z, int J, return CG_OK; } -int cg_1to1_average_write(int file_number, int B, int Z, int J, +/** + * \ingroup SpecialGridConnectivityProperty + * + * \brief Write data for averaging interface + * + * \param[in] fn \FILE_fn + * \param[in] B \B_Base + * \param[in] Z \Z_Zone + * \param[in] J Grid connectivity index number, where 1 ≤ J ≤ nconns for the "cg_conn" functions, and 1 ≤ J ≤ n1to1 for the "cg_1to1" functions. + * \param[in] AverageInterfaceType The type of averaging to be done. Valid types are CG_Null, CG_UserDefined, AverageAll, AverageCircumferential, AverageRadial, AverageI, AverageJ, and AverageK. + * \return \ier + * + * \details The "write" functions will create the GridConnectivityProperty_t node if it doesn't already exist, then add the appropriate connectivity property. Multiple grid connectivity properties may be recorded under the same GridConnectivityProperty_t node. + * + */ +int cg_1to1_average_write(int fn, int B, int Z, int J, CGNS_ENUMT(AverageInterfaceType_t) AverageInterfaceType) { cgns_cprop *cprop; @@ -10476,7 +13037,7 @@ int cg_1to1_average_write(int file_number, int B, int Z, int J, } /* get memory address of file */ - cg = cgi_get_file(file_number); + cg = cgi_get_file(fn); if (cg == 0) return CG_ERROR; if (cgi_check_mode(cg->filename, cg->mode, CG_MODE_WRITE)) return CG_ERROR; @@ -10555,7 +13116,7 @@ int cg_1to1_average_write(int file_number, int B, int Z, int J, * Go - To Function \*****************************************************************************/ -int vcg_goto(int file_number, int B, va_list ap) +int vcg_goto(int fn, int B, va_list ap) { int n; int index[CG_MAX_GOTO_DEPTH]; @@ -10565,7 +13126,7 @@ int vcg_goto(int file_number, int B, va_list ap) posit = 0; /* set global variable cg */ - cg = cgi_get_file(file_number); + cg = cgi_get_file(fn); if (cg == 0) return CG_ERROR; /* read variable argument list */ @@ -10575,15 +13136,41 @@ int vcg_goto(int file_number, int B, va_list ap) if (strcmp("end",label[n])==0 || strcmp("END",label[n])==0) break; index[n] = va_arg(ap, int); } - return cgi_set_posit(file_number, B, n, index, label); + return cgi_set_posit(fn, B, n, index, label); } -int cg_goto(int file_number, int B, ...) +/** + * \ingroup AccessingANode + * + * \brief Access a node via label/name, index pairs + * + * \param[in] fn \FILE_fn + * \param[in] B \B_Base + * \param[in] ... Variable argument list used to specify the path to a node. It is composed of an unlimited list of pair-arguments identifying each node in the path. Nodes may be identified by their label or name. Thus, a pair-argument may be of the form + + "CGNS_NodeLabel", NodeIndex + +where CGNS_NodeLabel is the node label and NodeIndex is the node index, or + + "CGNS_NodeName", 0 + +where CGNS_NodeName is the node name. The 0 in the second form is required, to indicate that a node name is being specified rather than a node label. In addition, a pair-argument may be specified as + + "..", 0 + +indicating the parent of the current node. The different pair-argument forms may be intermixed in the same function call. + +There is one exception to this rule. When accessing a BCData_t node, the index must be set to either Dirichlet or Neumann since only these two types are allowed. (Note that Dirichlet and Neumann are defined in the include files cgnslib.h and cgnslib_f.h). Since "Dirichlet" and "Neuman" are also the names for these nodes, you may also use the "Dirichlet", 0 or "Neuman", 0 to access the node. See the example below. + * \return \ier + * + * \details The character string "end" (or 'end' for the Fortran function) must be the last argument. It is used to indicate the end of the argument list. You may also use the empty string, "" ('' for Fortran), or the NULL string in C, to terminate the list. + */ +int cg_goto(int fn, int B, ...) { va_list ap; int status; va_start(ap, B); - status = vcg_goto(file_number, B, ap); + status = vcg_goto(fn, B, ap); va_end(ap); return status; } @@ -10599,7 +13186,7 @@ int cg_goto(int file_number, int B, ...) * */ -int cg_goto_f08(int file_number, int B, ...) +int cg_goto_f08(int fn, int B, ...) { int n; @@ -10611,7 +13198,7 @@ int cg_goto_f08(int file_number, int B, ...) posit = 0; /* set global variable cg */ - cg = cgi_get_file(file_number); + cg = cgi_get_file(fn); if (cg == 0) return CG_ERROR; va_start(ap, B); @@ -10625,12 +13212,12 @@ int cg_goto_f08(int file_number, int B, ...) } va_end(ap); - return cgi_set_posit(file_number, B, n, index, label); + return cgi_set_posit(fn, B, n, index, label); } /*-----------------------------------------------------------------------*/ -int vcg_gorel(int file_number, va_list ap) +int vcg_gorel(int fn, va_list ap) { int n = 0; int index[CG_MAX_GOTO_DEPTH]; @@ -10640,7 +13227,7 @@ int vcg_gorel(int file_number, va_list ap) cgi_error ("position not set with cg_goto"); return CG_ERROR; } - if (file_number != posit_file) { + if (fn != posit_file) { cgi_error("current position is in the wrong file"); return CG_ERROR; } @@ -10655,12 +13242,37 @@ int vcg_gorel(int file_number, va_list ap) return cgi_update_posit(n, index, label); } -int cg_gorel(int file_number, ...) +/** + * \ingroup AccessingANode + * + * \brief Access a node via relative path + * + * \param[in] fn \FILE_fn + * \param[in] ... Variable argument list used to specify the path to a node. It is composed of an unlimited list of pair-arguments identifying each node in the path. Nodes may be identified by their label or name. Thus, a pair-argument may be of the form + + "CGNS_NodeLabel", NodeIndex + +where CGNS_NodeLabel is the node label and NodeIndex is the node index, or + + "CGNS_NodeName", 0 + +where CGNS_NodeName is the node name. The 0 in the second form is required, to indicate that a node name is being specified rather than a node label. In addition, a pair-argument may be specified as + + "..", 0 + +indicating the parent of the current node. The different pair-argument forms may be intermixed in the same function call. + +There is one exception to this rule. When accessing a BCData_t node, the index must be set to either Dirichlet or Neumann since only these two types are allowed. (Note that Dirichlet and Neumann are defined in the include files cgnslib.h and cgnslib_f.h). Since "Dirichlet" and "Neuman" are also the names for these nodes, you may also use the "Dirichlet", 0 or "Neuman", 0 to access the node. See the example below. + * \return \ier + * + * \details The character string "end" (or 'end' for the Fortran function) must be the last argument. It is used to indicate the end of the argument list. You may also use the empty string, "" ('' for Fortran), or the NULL string in C, to terminate the list. + */ +int cg_gorel(int fn, ...) { va_list ap; int status; - va_start (ap, file_number); - status = vcg_gorel(file_number, ap); + va_start (ap, fn); + status = vcg_gorel(fn, ap); va_end(ap); return status; } @@ -10675,7 +13287,7 @@ int cg_gorel(int file_number, ...) * directly callable from FORTRAN. * */ -int cg_gorel_f08(int file_number, ...) +int cg_gorel_f08(int fn, ...) { int n = 0; int index[CG_MAX_GOTO_DEPTH]; @@ -10686,12 +13298,12 @@ int cg_gorel_f08(int file_number, ...) cgi_error ("position not set with cg_goto"); return CG_ERROR; } - if (file_number != posit_file) { + if (fn != posit_file) { cgi_error("current position is in the wrong file"); return CG_ERROR; } - va_start (ap, file_number); + va_start (ap, fn); for (n = 0; n < CG_MAX_GOTO_DEPTH; n++) { label[n] = va_arg(ap, char *); if (label[n] == NULL || label[n][0] == 0) break; @@ -10704,8 +13316,18 @@ int cg_gorel_f08(int file_number, ...) } /*-----------------------------------------------------------------------*/ +/** + * \ingroup AccessingANode + * + * \brief Access a node via pathname + * + * \param[in] fn \FILE_fn + * \param[in] path The pathname for the node to go to. If a position has been already set, this may be a relative path, otherwise it is an absolute path name, starting with "/Basename", where Basename is the base under which you wish to move. -int cg_gopath(int file_number, const char *path) + * \return \ier + * + */ +int cg_gopath(int fn, const char *path) { int n, len; const char *p = path, *s; @@ -10742,7 +13364,7 @@ int cg_gopath(int file_number, const char *path) strncpy(label[0], p, len); label[0][len] = 0; - cg = cgi_get_file(file_number); + cg = cgi_get_file(fn); if (cg == 0) return CG_ERROR; for (n = 0; n < cg->nbases; n++) { @@ -10755,7 +13377,7 @@ int cg_gopath(int file_number, const char *path) cgi_error("base '%s' not found", label[0]); return CG_ERROR; } - ierr = cgi_set_posit(file_number, B, 0, index, lab); + ierr = cgi_set_posit(fn, B, 0, index, lab); if (ierr != CG_OK) return ierr; if (s == 0) return CG_OK; p = s; @@ -10768,7 +13390,7 @@ int cg_gopath(int file_number, const char *path) cgi_error("position not set with cg_goto"); return CG_ERROR; } - if (file_number != posit_file) { + if (fn != posit_file) { cgi_error("current position is in the wrong file"); return CG_ERROR; } @@ -10804,19 +13426,43 @@ int cg_gopath(int file_number, const char *path) } /*-----------------------------------------------------------------------*/ - -int cg_golist(int file_number, int B, int depth, char **label, int *index) +/** + * \ingroup AccessingANode + * + * \brief Access a node via arrays of labels and indices + * + * \param[in] fn \FILE_fn + * \param[in] B \B_Base + * \param[in] depth Depth of the path list. The maximum depth is defined in cgnslib.h by CG_MAX_GOTO_DEPTH, and is currently equal to 20. + * \param[in] label Array of node labels for the path. This argument may be passed as NULL to cg_where(), otherwise it must be dimensioned by the calling program. The maximum size required is label[MAX_GO_TO_DEPTH][33]. You may call cg_where() with both label and index set to NULL in order to get the current depth, then dimension to that value. + * \param[in] index Array of node indices for the path. This argument may be passed as NULL to cg_where(), otherwise it must be dimensioned by the calling program. The maximum size required is index[MAX_GO_TO_DEPTH]. You may call cg_where() with both label and index set to NULL in order to get the current depth, then dimension to that value. + * \return \ier + * + */ +int cg_golist(int fn, int B, int depth, char **label, int *index) { if (depth >= CG_MAX_GOTO_DEPTH) { cgi_error("path is too deep"); return CG_ERROR; } - return cgi_set_posit(file_number, B, depth, index, label); + return cgi_set_posit(fn, B, depth, index, label); } /*-----------------------------------------------------------------------*/ - -int cg_where(int *file_number, int *B, int *depth, char **label, int *num) +/** + * \ingroup AccessingANode + * + * \brief Get path to current node + * + * \param[out] fn \FILE_fn + * \param[out] B \B_Base + * \param[out] depth Depth of the path list. The maximum depth is defined in cgnslib.h by CG_MAX_GOTO_DEPTH, and is currently equal to 20. + * \param[out] label Array of node labels for the path. This argument may be passed as NULL to cg_where(), otherwise it must be dimensioned by the calling program. The maximum size required is label[MAX_GO_TO_DEPTH][33]. You may call cg_where() with both label and index set to NULL in order to get the current depth, then dimension to that value. + * \param[out] num Array of node indices for the path. This argument may be passed as NULL to cg_where(), otherwise it must be dimensioned by the calling program. The maximum size required is index[MAX_GO_TO_DEPTH]. You may call cg_where() with both label and index set to NULL in order to get the current depth, then dimension to that value. + * \return \ier + * + */ +int cg_where(int *fn, int *B, int *depth, char **label, int *num) { int n; @@ -10824,7 +13470,7 @@ int cg_where(int *file_number, int *B, int *depth, char **label, int *num) cgi_error ("position not set with cg_goto"); return CG_ERROR; } - *file_number = posit_file; + *fn = posit_file; *B = posit_base; /* first entry is base */ *depth = posit_depth > 1 ? posit_depth - 1 : 0; @@ -10843,6 +13489,15 @@ int cg_where(int *file_number, int *B, int *depth, char **label, int *num) * Read and write Multiple path nodes \*****************************************************************************/ +/** + * \ingroup FamilyName + * + * \brief Read family name + * + * \param[out] family_name Family name. + * \return \ier + * + */ int cg_famname_read(char *family_name) { char *famname; @@ -10861,6 +13516,15 @@ int cg_famname_read(char *family_name) return CG_OK; } +/** + * \ingroup FamilyName + * + * \brief Write family name + * + * \param[in] family_name Family name. + * \return \ier + * + */ int cg_famname_write(const char * family_name) { char *famname; @@ -10891,7 +13555,15 @@ int cg_famname_write(const char * family_name) } /*----------------------------------------------------------------------*/ - +/** + * \ingroup FamilyName + * + * \brief Get Number of family names + * + * \param[out] nfams Number of additional family names. + * \return \ier + * + */ int cg_nmultifam(int *nfams) { CHECK_FILE_OPEN @@ -10922,6 +13594,17 @@ int cg_nmultifam(int *nfams) return CG_OK; } +/** + * \ingroup FamilyName + * + * \brief Read multiple family names + * + * \param[in] N Family name index number, where 1 ≤ N ≤ nNames. + * \param[out] name Node name. + * \param[out] family Family name + * \return \ier + * + */ int cg_multifam_read(int N, char *name, char *family) { cgns_famname *famname; @@ -10940,6 +13623,17 @@ int cg_multifam_read(int N, char *name, char *family) return CG_OK; } +/** + * \ingroup FamilyName + * + * \brief Write multiple family names + * + * \param[in] name Node name. + * \param[in] family Family name + * \return \ier + * + * \details The additional family names written with cg_multifam_write are stored in AdditionalFamilyName_t nodes. + */ int cg_multifam_write(const char *name, const char *family) { cgns_famname *famname; @@ -10975,7 +13669,18 @@ int cg_multifam_write(const char *name, const char *family) } /*----------------------------------------------------------------------*/ - +/** + * \ingroup ConvergenceHistory + * + * \brief Read ConvergenceHistory_t node + * + * \param[out] iterations Number of iterations for which convergence information is recorded. + * \param[out] NormDefinitions Description of the convergence information recorded in the data arrays. + * \return \ier + * + * \details The function cg_convergence_read reads a ConvergenceHistory_t node. If NormDefinitions is not defined in the CGNS database, this function returns a null string. If NormDefinitions exists, the library will allocate the space to store the description string, and return the description string to the application. It is the responsibility of the application to free this space when it is no longer needed by a call to cg_free(NormDefinitions). + * + */ int cg_convergence_read(int *iterations, char **NormDefinitions) { cgns_converg *converg; @@ -11002,6 +13707,18 @@ int cg_convergence_read(int *iterations, char **NormDefinitions) return CG_OK; } +/** + * \ingroup ConvergenceHistory + * + * \brief Write ConvergenceHistory_t node + * + * \param[in] iterations Number of iterations for which convergence information is recorded. + * \param[in] NormDefinitions Description of the convergence information recorded in the data arrays. + * \return \ier + * + * \details The function cg_convergence_write creates a ConvergenceHistory_t node. It must be the first one called when recording convergence history data. The NormDefinitions may be left undefined (i.e., a blank string). After creation of this node, the descriptors, data arrays, data class, and dimensional units characterizing the ConvergenceHistory_t data structure may be added. + * + */ int cg_convergence_write(int iterations, const char * NormDefinitions) { cgns_converg *converg; @@ -11052,7 +13769,17 @@ int cg_convergence_write(int iterations, const char * NormDefinitions) } /*----------------------------------------------------------------------*/ - +/** + * \ingroup ReferenceState + * + * \brief Read text description of reference state. + * + * \param[in] StateDescription Text description of reference state. + * \return \ier + * + * \details The function cg_state_read reads the StateDescription of the local ReferenceState_t node. If StateDescription is undefined in the CGNS database, this function returns a null string. If StateDescription exists, the library will allocate the space to store the description string, and return the description string to the application. It is the responsibility of the application to free this space when it is no longer needed by a call to cg_free(StateDescription). + * + */ int cg_state_read(char **StateDescription) { cgns_state *state; @@ -11078,6 +13805,17 @@ int cg_state_read(char **StateDescription) return CG_OK; } +/** + * \ingroup ReferenceState + * + * \brief Create ReferenceState_t node + * + * \param[in] StateDescription Text description of reference state. + * \return \ier + * + * \details The function cg_state_write creates the ReferenceState_t node and must be called even if StateDescription is undefined (i.e., a blank string). The descriptors, data arrays, data class, and dimensional units characterizing the ReferenceState_t data structure may be added to this data structure after its creation. + * + */ int cg_state_write(const char * StateDescription) { cgns_state *state; @@ -11127,7 +13865,21 @@ int cg_state_write(const char * StateDescription) } /*----------------------------------------------------------------------*/ - +/** + * \ingroup FlowEquationSet + * + * \brief Read Flow equation set info + * + * \param[out] EquationDimension Dimensionality of the governing equations; it is the number of spatial variables describing the flow. + * \param[out] GoverningEquationsFlag Flag indicating whether or not this FlowEquationSet_t node includes the definition of the governing equations; 0 if it doesn't, 1 if it does. + * \param[out] GasModelFlag Flag indicating whether or not this FlowEquationSet_t node includes the definition of a gas model; 0 if it doesn't, 1 if it does. + * \param[out] ViscosityModelFlag Flag indicating whether or not this FlowEquationSet_t node includes the definition of a viscosity model; 0 if it doesn't, 1 if it does. + * \param[out] ThermalConductivityModelFlag Flag indicating whether or not this FlowEquationSet_t node includes the definition of a thermal conductivity model; 0 if it doesn't, 1 if it does. + * \param[out] TurbulenceClosureFlag Flag indicating whether or not this FlowEquationSet_t node includes the definition of the turbulence closure; 0 if it doesn't, 1 if it does. + * \param[out] TurbulenceModelFlag Flag indicating whether or not this FlowEquationSet_t node includes the definition of a turbulence model; 0 if it doesn't, 1 if it does. + * \return \ier + * + */ int cg_equationset_read(int *EquationDimension, int *GoverningEquationsFlag, int *GasModelFlag, int *ViscosityModelFlag, int *ThermalConductivityModelFlag, @@ -11169,6 +13921,16 @@ int cg_equationset_read(int *EquationDimension, return CG_OK; } +/** + * \ingroup FlowEquationSet + * + * \brief Read chemistry equation set info + * + * \param[out] ThermalRelaxationFlag Flag indicating whether or not this FlowEquationSet_t node includes the definition of a thermal relaxation model; 0 if it doesn't, 1 if it does. + * \param[out] ChemicalKineticsFlag Flag indicating whether or not this FlowEquationSet_t node includes the definition of a chemical kinetics model; 0 if it doesn't, 1 if it does. + * \return \ier + * + */ int cg_equationset_chemistry_read(int *ThermalRelaxationFlag, int *ChemicalKineticsFlag) { @@ -11192,6 +13954,17 @@ int cg_equationset_chemistry_read(int *ThermalRelaxationFlag, return CG_OK; } +/** + * \ingroup FlowEquationSet + * + * \brief Read electromagnetic equation set info + * + * \param[out] ElecFldModelFlag Flag indicating whether or not this FlowEquationSet_t node includes the definition of an electric field model for electromagnetic flows;; 0 if it doesn't, 1 if it does. + * \param[out] MagnFldModelFlag Flag indicating whether or not this FlowEquationSet_t node includes the definition of a magnetic field model for electromagnetic flows;; 0 if it doesn't, 1 if it does. + * \param[out] ConductivityModelFlag Flag indicating whether or not this FlowEquationSet_t node includes the definition of a conductivity model for electromagnetic flows; 0 if it doesn't, 1 if it does. + * \return \ier + * + */ int cg_equationset_elecmagn_read(int *ElecFldModelFlag, int *MagnFldModelFlag, int *ConductivityModelFlag) { @@ -11218,6 +13991,15 @@ int cg_equationset_elecmagn_read(int *ElecFldModelFlag, int *MagnFldModelFlag, return CG_OK; } +/** + * \ingroup FlowEquationSet + * + * \brief Write dimensionality of flow equations + * + * \param[in] EquationDimension Dimensionality of the governing equations; it is the number of spatial variables describing the flow. + * \return \ier + * + */ int cg_equationset_write(int EquationDimension) { cgns_equations *equations; @@ -11263,6 +14045,15 @@ int cg_equationset_write(int EquationDimension) /*----------------------------------------------------------------------*/ +/** + * \ingroup GoverningEquations + * + * \brief Read type of governing equation + * + * \param[out] EquationsType Type of governing equations. The admissible types are CG_Null, CG_UserDefined, FullPotential, Euler, NSLaminar, NSTurbulent, NSLaminarIncompressible, and NSTurbulentIncompressible. + * \return \ier + * + */ int cg_governing_read(CGNS_ENUMT(GoverningEquationsType_t) *EquationsType) { cgns_governing *governing; @@ -11280,6 +14071,16 @@ int cg_governing_read(CGNS_ENUMT(GoverningEquationsType_t) *EquationsType) return CG_OK; } + +/** + * \ingroup GoverningEquations + * + * \brief Write type of governing equation + * + * \param[in] Equationstype Type of governing equations. The admissible types are CG_Null, CG_UserDefined, FullPotential, Euler, NSLaminar, NSTurbulent, NSLaminarIncompressible, and NSTurbulentIncompressible. + * \return \ier + * + */ int cg_governing_write(CGNS_ENUMT(GoverningEquationsType_t) Equationstype) { cgns_governing *governing; @@ -11336,6 +14137,15 @@ int cg_governing_write(CGNS_ENUMT(GoverningEquationsType_t) Equationstype) /*----------------------------------------------------------------------*/ +/** + * \ingroup GoverningEquations + * + * \brief Read flags for diffusion terms + * + * \param[out] diffusion_model Flags defining which diffusion terms are included in the governing equations. This is only applicable to the Navier-Stokes equations with structured grids. See the discussion in the SIDS manual for details. + * \return \ier + * + */ int cg_diffusion_read(int *diffusion_model) { int n, ndata, ier=0; @@ -11373,6 +14183,15 @@ int cg_diffusion_read(int *diffusion_model) return CG_OK; } +/** + * \ingroup GoverningEquations + * + * \brief Write flags for diffusion terms + * + * \param[in] diffusion_model Flags defining which diffusion terms are included in the governing equations. This is only applicable to the Navier-Stokes equations with structured grids. See the discussion in the SIDS manual for details. + * \return \ier + * + */ int cg_diffusion_write(const int * diffusion_model) { int *diffusion; @@ -11421,6 +14240,36 @@ int cg_diffusion_write(const int * diffusion_model) /*----------------------------------------------------------------------*/ +/** + * \ingroup AuxiliaryModel + * + * \brief Read auxiliary model types + * + * \param[out] ModelLabel The CGNS label for the model being defined. The models supported by CGNS are: + * - GasModel_t + * - ViscosityModel_t + * - ThermalConductivityModel_t + * - TurbulenceClosure_t + * - TurbulenceModel_t + * - ThermalRelaxationModel_t + * - ChemicalKineticsModel_t + * - EMElectricFieldModel_t + * - EMMagneticFieldModel_t + * - EMConductivityModel_t + * \param[out] ModelType One of the model types (listed below) allowed for the ModelLabel selected. + * The types allowed for the various models are: + * GasModel_t CG_Null, CG_UserDefined, Ideal, VanderWaals, CaloricallyPerfect, ThermallyPerfect, ConstantDensity, RedlichKwong + * ViscosityModel_t CG_Null, CG_UserDefined, Constant, PowerLaw, SutherlandLaw + * ThermalConductivityModel_t CG_Null, CG_UserDefined, PowerLaw, SutherlandLaw, ConstantPrandtl + * TurbulenceModel_t CG_Null, CG_UserDefined, Algebraic_BaldwinLomax, Algebraic_CebeciSmith, HalfEquation_JohnsonKing, OneEquation_BaldwinBarth, OneEquation_SpalartAllmaras, TwoEquation_JonesLaunder, TwoEquation_MenterSST, TwoEquation_Wilcox + * TurbulenceClosure_t CG_Null, CG_UserDefined, EddyViscosity, ReynoldsStress, ReynoldsStressAlgebraic + * ThermalRelaxationModel_t CG_Null, CG_UserDefined, Frozen, ThermalEquilib, ThermalNonequilib + * ChemicalKineticsModel_t CG_Null, CG_UserDefined, Frozen, ChemicalEquilibCurveFit, ChemicalEquilibMinimization, ChemicalNonequilib + * EMElectricFieldModel_t CG_Null, CG_UserDefined, Constant, Frozen, Interpolated, Voltage + * EMMagneticFieldModel_t CG_Null, CG_UserDefined, Constant, Frozen, Interpolated + * EMConductivityModel_t CG_Null, CG_UserDefined, Constant, Frozen, Equilibrium_LinRessler, Chemistry_LinRessler + * \return \ier + */ int cg_model_read(const char *ModelLabel, CGNS_ENUMT(ModelType_t) *ModelType) { cgns_model *model; @@ -11439,6 +14288,36 @@ int cg_model_read(const char *ModelLabel, CGNS_ENUMT(ModelType_t) *ModelType) return CG_OK; } +/** + * \ingroup AuxiliaryModel + * + * \brief Write auxiliary model types + * + * \param[in] ModelLabel The CGNS label for the model being defined. The models supported by CGNS are: + * - GasModel_t + * - ViscosityModel_t + * - ThermalConductivityModel_t + * - TurbulenceClosure_t + * - TurbulenceModel_t + * - ThermalRelaxationModel_t + * - ChemicalKineticsModel_t + * - EMElectricFieldModel_t + * - EMMagneticFieldModel_t + * - EMConductivityModel_t + * \param[in] ModelType One of the model types (listed below) allowed for the ModelLabel selected. + * The types allowed for the various models are: + * GasModel_t CG_Null, CG_UserDefined, Ideal, VanderWaals, CaloricallyPerfect, ThermallyPerfect, ConstantDensity, RedlichKwong + * ViscosityModel_t CG_Null, CG_UserDefined, Constant, PowerLaw, SutherlandLaw + * ThermalConductivityModel_t CG_Null, CG_UserDefined, PowerLaw, SutherlandLaw, ConstantPrandtl + * TurbulenceModel_t CG_Null, CG_UserDefined, Algebraic_BaldwinLomax, Algebraic_CebeciSmith, HalfEquation_JohnsonKing, OneEquation_BaldwinBarth, OneEquation_SpalartAllmaras, TwoEquation_JonesLaunder, TwoEquation_MenterSST, TwoEquation_Wilcox + * TurbulenceClosure_t CG_Null, CG_UserDefined, EddyViscosity, ReynoldsStress, ReynoldsStressAlgebraic + * ThermalRelaxationModel_t CG_Null, CG_UserDefined, Frozen, ThermalEquilib, ThermalNonequilib + * ChemicalKineticsModel_t CG_Null, CG_UserDefined, Frozen, ChemicalEquilibCurveFit, ChemicalEquilibMinimization, ChemicalNonequilib + * EMElectricFieldModel_t CG_Null, CG_UserDefined, Constant, Frozen, Interpolated, Voltage + * EMMagneticFieldModel_t CG_Null, CG_UserDefined, Constant, Frozen, Interpolated + * EMConductivityModel_t CG_Null, CG_UserDefined, Constant, Frozen, Equilibrium_LinRessler, Chemistry_LinRessler + * \return \ier + */ int cg_model_write(const char * ModelLabel, CGNS_ENUMT(ModelType_t) ModelType) { cgns_model *model; @@ -11604,7 +14483,15 @@ int cg_model_write(const char * ModelLabel, CGNS_ENUMT(ModelType_t) ModelType) } /*----------------------------------------------------------------------*/ - +/** + * \ingroup DataArrays + * + * \brief Get number of data arrays under current node + * + * \param[out] narrays Number of DataArray_t nodes under the current node. + * + * \return \ier + */ int cg_narrays(int *narrays) { @@ -11731,6 +14618,19 @@ int cg_narrays(int *narrays) return CG_OK; } +/** + * \ingroup DataArrays + * + * \brief Get data array info + * + * \param[in] A Data array index, where 1 ≤ A ≤ narrays. + * \param[out] ArrayName Name of the DataArray_t node. + * \param[out] DataType Type of data held in the DataArray_t node. The admissible types are Integer, LongInteger, RealSingle, RealDouble, and Character. + * \param[out] DataDimension Number of dimensions of array in file (max 12). See Node Management Routines in CGIO User's Guide. + * \param[out] DimensionVector Dimensions of array in file. + * + * \return \ier + */ int cg_array_info(int A, char *ArrayName, CGNS_ENUMT(DataType_t) *DataType, int *DataDimension, cgsize_t *DimensionVector) { @@ -11754,6 +14654,16 @@ int cg_array_info(int A, char *ArrayName, CGNS_ENUMT(DataType_t) *DataType, return CG_OK; } +/** + * \ingroup DataArrays + * + * \brief Read data array + * + * \param[in] A Data array index, where 1 ≤ A ≤ narrays. + * \param[out] Data The data array in memory. + * + * \return \ier + */ int cg_array_read(int A, void *Data) { cgns_array *array; @@ -11783,6 +14693,18 @@ int cg_array_read(int A, void *Data) return CG_OK; } + +/** + * \ingroup DataArrays + * + * \brief Read data array as a certain type + * + * \param[in] A Data array index, where 1 ≤ A ≤ narrays. + * \param[in] type Type of data held in the DataArray_t node. The admissible types are Integer, LongInteger, RealSingle, RealDouble, and Character. + * \param[out] Data The data array in memory. + * + * \return \ier + */ int cg_array_read_as(int A, CGNS_ENUMT(DataType_t) type, void *Data) { cgns_array *array; @@ -11843,6 +14765,27 @@ int cg_array_read_as(int A, CGNS_ENUMT(DataType_t) type, void *Data) return ier ? CG_ERROR : CG_OK; } + +/** + * \ingroup DataArrays + * + * \brief Read subset of data array to a shaped memory + * + * \param[in] A Data array index, where 1 ≤ A ≤ narrays. + * \param[in] s_rmin Lower range index in file (eg., imin, jmin, kmin). + * \param[in] s_rmax Upper range index in file (eg., imax, jmax, kmax). + * \param[in] m_type The type of data held in memory. The admissible types are Integer, LongInteger, RealSingle, RealDouble, and Character. + * \param[in] m_numdim Number of dimensions of array in memory (max 12). + * \param[in] m_dimvals Dimensions of array in memory. + * \param[in] m_rmin Lower range index in memory (eg., imin, jmin, kmin). + * \param[in] m_rmax Upper range index in memory (eg., imax, jmax, kmax). + * \param[out] data The data array in memory. + * + * \return \ier + * + * \details The functions cg_array_general_read allow for type conversion when reading from the file. + * When using cg_array_general_read, the lower core elements in the file have index 1 for defining range_min and range_max; whereas for the array in memory, defined by mem_rank and mem_dimensions, the lower array elements in memory have index 1 for defining mem_range_min and mem_range_max. The actual lower and upper bounds of the array in memory can be anything. For example, to fully read a two-dimensional 6 × 6 data array with 1 rind plane on each side in the file to an 8 × 8 array in memory (mem_rank = 2 and mem_dimensions = (8,8)), set range_min and range_max to (0,0) and (7,7), and set mem_range_min and mem_range_max to (1,1) and (8,8). + */ int cg_array_general_read(int A, const cgsize_t *s_rmin, const cgsize_t *s_rmax, CGNS_ENUMT(DataType_t) m_type, @@ -11883,6 +14826,19 @@ int cg_array_general_read(int A, data); } +/** + * \ingroup DataArrays + * + * \brief Write data array + * + * \param[in] ArrayName Name of the DataArray_t node. + * \param[in] DataType Type of data held in the DataArray_t node. The admissible types are Integer, LongInteger, RealSingle, RealDouble, and Character. + * \param[in] DataDimension Number of dimensions of array in file (max 12). See Node Management Routines in CGIO User's Guide. + * \param[in] DimensionVector Dimensions of array in file. + * \param[in] Data The data array in memory. + * + * \return \ier + */ int cg_array_write(const char * ArrayName, CGNS_ENUMT(DataType_t) DataType, int DataDimension, const cgsize_t * DimensionVector, const void * Data) @@ -11948,6 +14904,30 @@ int cg_array_write(const char * ArrayName, CGNS_ENUMT(DataType_t) DataType, return CG_OK; } +/** + * \ingroup DataArrays + * + * \brief Write shaped array to a subset of data array + * + * \param[in] arrayname Name of the DataArray_t node. + * \param[in] s_type Type of data held in the DataArray_t node. The admissible types are Integer, LongInteger, RealSingle, RealDouble, and Character. + * \param[in] s_numdim Number of dimensions of array in file (max 12). See Node Management Routines in CGIO User's Guide. + * \param[in] s_dimvals Dimensions of array in file. + * \param[in] s_rmin Lower range index in file (eg., imin, jmin, kmin). + * \param[in] s_rmax Upper range index in file (eg., imax, jmax, kmax). + * \param[in] m_type The type of data held in memory. The admissible types are Integer, LongInteger, RealSingle, RealDouble, and Character. + * \param[in] m_numdim Number of dimensions of array in memory (max 12). + * \param[in] m_dimvals Dimensions of array in memory. + * \param[in] m_rmin Lower range index in memory (eg., imin, jmin, kmin). + * \param[in] m_rmax Upper range index in memory (eg., imax, jmax, kmax). + * \param[in] data The data array in memory. + * + * \return \ier + * + * \details The function cg_array_general_write may be used to write from a subset of the array in memory to a subset of the array in the file. When using the partial write, any existing data from range_min to range_max will be overwritten by the new values. All other values will not be affected. + * The functions cg_array_general_write allow for type conversion when reading to the file. + * When using cg_array_general_write, the lower core elements in the file have index 1 for defining range_min and range_max; whereas for the array in memory, defined by mem_rank and mem_dimensions, the lower array elements in memory have index 1 for defining mem_range_min and mem_range_max. The actual lower and upper bounds of the array in memory can be anything. For example, to fully read a two-dimensional 6 × 6 data array with 1 rind plane on each side in the file to an 8 × 8 array in memory (mem_rank = 2 and mem_dimensions = (8,8)), set range_min and range_max to (0,0) and (7,7), and set mem_range_min and mem_range_max to (1,1) and (8,8). + */ int cg_array_general_write(const char *arrayname, CGNS_ENUMT(DataType_t) s_type, int s_numdim, const cgsize_t *s_dimvals, @@ -12013,7 +14993,15 @@ int cg_array_general_write(const char *arrayname, } /*----------------------------------------------------------------------*/ - +/** + * \ingroup IntegralData + * + * \brief Get number of IntegralData_t nodes + * + * \param[out] nintegrals Number of IntegralData_t nodes under current node. + * + * \return \ier + */ int cg_nintegrals(int *nintegrals) { CHECK_FILE_OPEN @@ -12043,6 +15031,16 @@ int cg_nintegrals(int *nintegrals) return CG_OK; } +/** + * \ingroup IntegralData + * + * \brief Get name of an IntegralData_t node + * + * \param[in] IntegralDataIndex Integral data index number, where 1 ≤ IntegralDataIndex ≤ nintegrals. + * \param[out] IntegralDataName Name of the IntegralData_t data structure. + * + * \return \ier + */ int cg_integral_read(int IntegralDataIndex, char *IntegralDataName) { int ier=0; @@ -12061,6 +15059,15 @@ int cg_integral_read(int IntegralDataIndex, char *IntegralDataName) return CG_OK; } +/** + * \ingroup IntegralData + * + * \brief Create IntegralData_t node + * + * \param[in] IntegralDataName Name of the IntegralData_t data structure. + * + * \return \ier + */ int cg_integral_write(const char * IntegralDataName) { cgns_integral *integral; @@ -12095,7 +15102,15 @@ int cg_integral_write(const char * IntegralDataName) } /*----------------------------------------------------------------------*/ - +/** + * \ingroup RindLayers + * + * \brief Read number of rind layers + * + * \param[out] RindData Number of rind layers for each computational direction (structured grid) or number of rind points or elements (unstructured grid). For structured grids, the low/high sides have unit stride in the array (e.g., [NRindLowI, NRindHighI, NRindLowJ, NRindHighJ, NRindLowK, NRindHighK]). + * + * \return \ier + */ int cg_rind_read(int *RindData) { int n, ier=0; @@ -12120,6 +15135,17 @@ int cg_rind_read(int *RindData) return CG_OK; } +/** + * \ingroup RindLayers + * + * \brief Write number of rind layers + * + * \param[in] RindData Number of rind layers for each computational direction (structured grid) or number of rind points or elements (unstructured grid). For structured grids, the low/high sides have unit stride in the array (e.g., [NRindLowI, NRindHighI, NRindLowJ, NRindHighJ, NRindLowK, NRindHighK]). + * + * \return \ier + * + * \details When writing rind data for elements, cg_section_write must be called first, followed by cg_goto to access the Elements_t node, and then cg_rind_write. + */ int cg_rind_write(const int * RindData) { int n, ier=0; @@ -12160,7 +15186,15 @@ int cg_rind_write(const int * RindData) } /*----------------------------------------------------------------------*/ - +/** + * \ingroup DescriptiveText + * + * \brief Get number of descriptors in file + * + * \param[out] ndescriptors Number of Descriptor_t nodes under the current node. + * \return \ier + * + */ int cg_ndescriptors(int *ndescriptors) { @@ -12287,6 +15321,20 @@ int cg_ndescriptors(int *ndescriptors) return CG_OK; } +/** + * \ingroup DescriptiveText + * + * \brief Read descriptive text + * + * \param[in] descr_no Descriptor index number, where 1 ≤ descr_no ≤ ndescriptors. + * \param[out] descr_name Name of the Descriptor_t node. + * \param[out] descr_text Description held in the Descriptor_t node. + * \return \ier + * + * + * \details Note that with cg_descriptor_read the memory for the descriptor character string, text, will be allocated by the Mid-Level Library. The application code is responsible for releasing this memory when it is no longer needed by calling cg_free(text). + * + */ int cg_descriptor_read(int descr_no, char *descr_name, char **descr_text) { cgns_descr *descr; @@ -12309,6 +15357,15 @@ int cg_descriptor_read(int descr_no, char *descr_name, char **descr_text) return CG_OK; } +/** + * \ingroup DescriptiveText + * + * \brief Write descriptive text + * + * \param[in] descr_name Name of the Descriptor_t node. + * \param[in] descr_text Description held in the Descriptor_t node. + * \return \ier + */ int cg_descriptor_write(const char * descr_name, const char * descr_text) { cgns_descr *descr; @@ -12343,7 +15400,14 @@ int cg_descriptor_write(const char * descr_name, const char * descr_text) } /*----------------------------------------------------------------------*/ - +/** + * \ingroup DimensionalUnits + * + * \brief Get number of dimensional units + * + * \param[out] nunits Number of units used in the file (i.e., either 5 or 8). + * \return \ier + */ int cg_nunits(int *nunits) { cgns_units *units; @@ -12361,6 +15425,19 @@ int cg_nunits(int *nunits) return CG_OK; } +/** + * \ingroup DimensionalUnits + * + * \brief Read first five dimensional units + * + * \param[out] mass Mass units. Admissible values are CG_Null, CG_UserDefined, Kilogram, Gram, Slug, and PoundMass. + * \param[out] length Length units. Admissible values are CG_Null, CG_UserDefined, Meter, Centimeter, Millimeter, Foot, and Inch. + * \param[out] time Time units. Admissible values are CG_Null, CG_UserDefined, and Second. + * \param[out] temperature Temperature units. Admissible values are CG_Null, CG_UserDefined, Kelvin, Celsius, Rankine, and Fahrenheit. + * \param[out] angle Angle units. Admissible values are CG_Null, CG_UserDefined, Degree, and Radian. + * + * \return \ier + */ int cg_units_read(CGNS_ENUMT(MassUnits_t) *mass, CGNS_ENUMT(LengthUnits_t) *length, CGNS_ENUMT(TimeUnits_t) *time, @@ -12386,6 +15463,19 @@ int cg_units_read(CGNS_ENUMT(MassUnits_t) *mass, return CG_OK; } +/** + * \ingroup DimensionalUnits + * + * \brief Write first five dimensional units + * + * \param[in] mass Mass units. Admissible values are CG_Null, CG_UserDefined, Kilogram, Gram, Slug, and PoundMass. + * \param[in] length Length units. Admissible values are CG_Null, CG_UserDefined, Meter, Centimeter, Millimeter, Foot, and Inch. + * \param[in] time Time units. Admissible values are CG_Null, CG_UserDefined, and Second. + * \param[in] temperature Temperature units. Admissible values are CG_Null, CG_UserDefined, Kelvin, Celsius, Rankine, and Fahrenheit. + * \param[in] angle Angle units. Admissible values are CG_Null, CG_UserDefined, Degree, and Radian. + * + * \return \ier + */ int cg_units_write(CGNS_ENUMT(MassUnits_t) mass, CGNS_ENUMT(LengthUnits_t) length, CGNS_ENUMT(TimeUnits_t) time, @@ -12444,6 +15534,21 @@ int cg_units_write(CGNS_ENUMT(MassUnits_t) mass, return CG_OK; } +/** + * \ingroup DimensionalUnits + * + * \brief Read all eight dimensional units + * + * \param[out] mass Mass units. Admissible values are CG_Null, CG_UserDefined, Kilogram, Gram, Slug, and PoundMass. + * \param[out] length Length units. Admissible values are CG_Null, CG_UserDefined, Meter, Centimeter, Millimeter, Foot, and Inch. + * \param[out] time Time units. Admissible values are CG_Null, CG_UserDefined, and Second. + * \param[out] temperature Temperature units. Admissible values are CG_Null, CG_UserDefined, Kelvin, Celsius, Rankine, and Fahrenheit. + * \param[out] angle Angle units. Admissible values are CG_Null, CG_UserDefined, Degree, and Radian. + * \param[out] current Electric current units. Admissible values are CG_Null, CG_UserDefined, Ampere, Abampere, Statampere, Edison, and auCurrent. + * \param[out] amount Substance amount units. Admissible values are CG_Null, CG_UserDefined, Mole, Entities, StandardCubicFoot, and StandardCubicMeter. + * \param[out] intensity Luminous intensity units. Admissible values are CG_Null, CG_UserDefined, Candela, Candle, Carcel, Hefner, and Violle. + * \return \ier + */ int cg_unitsfull_read(CGNS_ENUMT(MassUnits_t) *mass, CGNS_ENUMT(LengthUnits_t) *length, CGNS_ENUMT(TimeUnits_t) *time, @@ -12475,6 +15580,22 @@ int cg_unitsfull_read(CGNS_ENUMT(MassUnits_t) *mass, return CG_OK; } +/** + * \ingroup DimensionalUnits + * + * \brief Write all eight dimensional units + * + * \param[in] mass Mass units. Admissible values are CG_Null, CG_UserDefined, Kilogram, Gram, Slug, and PoundMass. + * \param[in] length Length units. Admissible values are CG_Null, CG_UserDefined, Meter, Centimeter, Millimeter, Foot, and Inch. + * \param[in] time Time units. Admissible values are CG_Null, CG_UserDefined, and Second. + * \param[in] temperature Temperature units. Admissible values are CG_Null, CG_UserDefined, Kelvin, Celsius, Rankine, and Fahrenheit. + * \param[in] angle Angle units. Admissible values are CG_Null, CG_UserDefined, Degree, and Radian. + * \param[in] current Electric current units. Admissible values are CG_Null, CG_UserDefined, Ampere, Abampere, Statampere, Edison, and auCurrent. + * \param[in] amount Substance amount units. Admissible values are CG_Null, CG_UserDefined, Mole, Entities, StandardCubicFoot, and StandardCubicMeter. + * \param[in] intensity Luminous intensity units. Admissible values are CG_Null, CG_UserDefined, Candela, Candle, Carcel, Hefner, and Violle. + * + * \return \ier + */ int cg_unitsfull_write(CGNS_ENUMT(MassUnits_t) mass, CGNS_ENUMT(LengthUnits_t) length, CGNS_ENUMT(TimeUnits_t) time, @@ -12553,6 +15674,13 @@ int cg_unitsfull_write(CGNS_ENUMT(MassUnits_t) mass, /*----------------------------------------------------------------------*/ +/** + * \ingroup DimensionalExponents + * + * \brief Get exponent data type + * \param[out] DataType Data type in which the exponents are recorded. Admissible data types for the exponents are RealSingle and RealDouble. + * \return \ier + */ int cg_exponents_info(CGNS_ENUMT(DataType_t) *DataType) { cgns_exponent *exponent; @@ -12570,6 +15698,13 @@ int cg_exponents_info(CGNS_ENUMT(DataType_t) *DataType) return CG_OK; } +/** + * \ingroup DimensionalExponents + * + * \brief Get number of dimensional exponents + * \param[out] numexp Number of exponents used in the file (i.e., either 5 or 8). + * \return \ier + */ int cg_nexponents(int *numexp) { cgns_exponent *exponent; @@ -12587,6 +15722,15 @@ int cg_nexponents(int *numexp) return CG_OK; } +/** + * \ingroup DimensionalExponents + * + * \brief Read first five dimensional exponents + * \param[out] exponents Exponents for the dimensional units for mass, length, time, temperature, angle, electric current, substance amount, and luminous intensity, in that order. + * \return \ier + * + * \details When reading exponent data, either cg_exponents_read or cg_expfull_read may be used, regardless of the number of exponents used in the file. If cg_exponents_read is used, but all eight exponents are used in the file, only the first five exponents are returned. If cg_expfull_read is used, but only five exponents are used in the file, the returned values of the exponents for electric current, substance amount, and luminous intensity will be zero. + */ int cg_exponents_read(void *exponents) { cgns_exponent *exponent; @@ -12617,6 +15761,15 @@ int cg_exponents_read(void *exponents) return CG_OK; } + +/** + * \ingroup DimensionalExponents + * + * \brief Write first five dimensional exponents + * \param[in] DataType Data type in which the exponents are recorded. Admissible data types for the exponents are RealSingle and RealDouble. + * \param[in] exponents Exponents for the dimensional units for mass, length, time, temperature, angle, electric current, substance amount, and luminous intensity, in that order. + * \return \ier + */ int cg_exponents_write(CGNS_ENUMT(DataType_t) DataType, const void * exponents) { cgns_exponent *exponent; @@ -12666,6 +15819,15 @@ int cg_exponents_write(CGNS_ENUMT(DataType_t) DataType, const void * exponents) return CG_OK; } +/** + * \ingroup DimensionalExponents + * + * \brief Read all eight dimensional exponents + * \param[out] exponents Exponents for the dimensional units for mass, length, time, temperature, angle, electric current, substance amount, and luminous intensity, in that order. + * \return \ier + * + * \details When reading exponent data, either cg_exponents_read or cg_expfull_read may be used, regardless of the number of exponents used in the file. If cg_exponents_read is used, but all eight exponents are used in the file, only the first five exponents are returned. If cg_expfull_read is used, but only five exponents are used in the file, the returned values of the exponents for electric current, substance amount, and luminous intensity will be zero. + */ int cg_expfull_read(void *exponents) { cgns_exponent *exponent; @@ -12723,6 +15885,14 @@ int cg_expfull_read(void *exponents) return CG_OK; } +/** + * \ingroup DimensionalExponents + * + * \brief Write all eight dimensional exponents + * \param[in] DataType Data type in which the exponents are recorded. Admissible data types for the exponents are RealSingle and RealDouble. + * \param[in] exponents Exponents for the dimensional units for mass, length, time, temperature, angle, electric current, substance amount, and luminous intensity, in that order. + * \return \ier + */ int cg_expfull_write(CGNS_ENUMT(DataType_t) DataType, const void * exponents) { cgns_exponent *exponent; @@ -12779,7 +15949,13 @@ int cg_expfull_write(CGNS_ENUMT(DataType_t) DataType, const void * exponents) } /*----------------------------------------------------------------------*/ - +/** + * \ingroup DataConversionFactors + * + * \brief Get conversion factors data type + * \param[out] DataType Data type in which the conversion factors are recorded. Admissible data types for the exponents are RealSingle and RealDouble. + * \return \ier + */ int cg_conversion_info(CGNS_ENUMT(DataType_t) *DataType) { cgns_conversion *conversion; @@ -12797,6 +15973,20 @@ int cg_conversion_info(CGNS_ENUMT(DataType_t) *DataType) return CG_OK; } +/** + * \ingroup DataConversionFactors + * + * \brief Read conversion factors + * \param[out] ConversionFactors Two-element array containing the scaling and offset factors. + * \return \ier + * + * \details The DataConversion_t data structure contains factors to convert the nondimensional data to "raw" dimensional data. The scaling and offset factors are contained in the two-element array ConversionFactors. In pseudo-Fortran, the conversion process is as follows: + + ConversionScale = ConversionFactors(1) + ConversionOffset = ConversionFactors(2) + Data(raw) = Data(nondimensional)*ConversionScale + ConversionOffset + + */ int cg_conversion_read(void *ConversionFactors) { cgns_conversion *conversion; @@ -12821,6 +16011,14 @@ int cg_conversion_read(void *ConversionFactors) return CG_OK; } +/** + * \ingroup DataConversionFactors + * + * \brief Write conversion factors + * \param[in] DataType Data type in which the conversion factors are recorded. Admissible data types for the exponents are RealSingle and RealDouble. + * \param[in] ConversionFactors Two-element array containing the scaling and offset factors. + * \return \ier + */ int cg_conversion_write(CGNS_ENUMT(DataType_t) DataType, const void * ConversionFactors) { @@ -12868,7 +16066,23 @@ int cg_conversion_write(CGNS_ENUMT(DataType_t) DataType, } /*----------------------------------------------------------------------*/ +/** + * \ingroup DataClass + * + * \brief Read data class + * \param[out] dataclass Data class for the nodes at this level. See below for the data classes currently supported in CGNS. + * \return \ier + * + * \details The data classes currently supported in CGNS are: + + Dimensional Regular dimensional data. + NormalizedByDimensional Nondimensional data that is normalized by dimensional reference quantities. + NormalizedByUnknownDimensional All fields and reference data are nondimensional. + NondimensionalParameter Nondimensional parameters such as Mach number and lift coefficient. + DimensionlessConstant Constant such as π. +These classes are declared within typedef DataClass_t in cgnslib.h, and as parameters in cgnslib_f.h. + */ int cg_dataclass_read(CGNS_ENUMT(DataClass_t) *dataclass) { CGNS_ENUMT(DataClass_t) *DataClass; @@ -12887,6 +16101,23 @@ int cg_dataclass_read(CGNS_ENUMT(DataClass_t) *dataclass) return CG_OK; } +/** + * \ingroup DataClass + * + * \brief Write data class + * \param[in] dataclass Data class for the nodes at this level. See below for the data classes currently supported in CGNS. + * \return \ier + * + * \details The data classes currently supported in CGNS are: + + Dimensional Regular dimensional data. + NormalizedByDimensional Nondimensional data that is normalized by dimensional reference quantities. + NormalizedByUnknownDimensional All fields and reference data are nondimensional. + NondimensionalParameter Nondimensional parameters such as Mach number and lift coefficient. + DimensionlessConstant Constant such as π. + +These classes are declared within typedef DataClass_t in cgnslib.h, and as parameters in cgnslib_f.h. + */ int cg_dataclass_write(CGNS_ENUMT(DataClass_t) dataclass) { CGNS_ENUMT(DataClass_t) *DataClass; @@ -12910,7 +16141,14 @@ int cg_dataclass_write(CGNS_ENUMT(DataClass_t) dataclass) } /*----------------------------------------------------------------------*/ - +/** + * \ingroup GridLocation + * + * \brief Read grid location + * \param[out] GridLocation Location in the grid. The admissible locations are CG_Null, CG_UserDefined, Vertex, CellCenter, FaceCenter, IFaceCenter, JFaceCenter, KFaceCenter, and EdgeCenter. + * \return \ier + * + */ int cg_gridlocation_read(CGNS_ENUMT(GridLocation_t) *GridLocation) { CGNS_ENUMT(GridLocation_t) *location; @@ -12940,6 +16178,14 @@ int cg_gridlocation_read(CGNS_ENUMT(GridLocation_t) *GridLocation) return CG_OK; } +/** + * \ingroup GridLocation + * + * \brief Write grid location + * \param[in] GridLocation Location in the grid. The admissible locations are CG_Null, CG_UserDefined, Vertex, CellCenter, FaceCenter, IFaceCenter, JFaceCenter, KFaceCenter, and EdgeCenter. + * \return \ier + * + */ int cg_gridlocation_write(CGNS_ENUMT(GridLocation_t) GridLocation) { CGNS_ENUMT(GridLocation_t) *location; @@ -13023,6 +16269,14 @@ int cg_gridlocation_write(CGNS_ENUMT(GridLocation_t) GridLocation) /*----------------------------------------------------------------------*/ +/** + * \ingroup OrdinalValue + * + * \brief Read ordinal value + * \param[out] Ordinal Any integer value. + * \return \ier + * + */ int cg_ordinal_read(int *Ordinal) { int *ordinal; @@ -13040,6 +16294,14 @@ int cg_ordinal_read(int *Ordinal) return CG_OK; } +/** + * \ingroup OrdinalValue + * + * \brief Write ordinal value + * \param[in] Ordinal Any integer value. + * \return \ier + * + */ int cg_ordinal_write(int Ordinal) { int *ordinal; @@ -13063,7 +16325,14 @@ int cg_ordinal_write(int Ordinal) } /*----------------------------------------------------------------------*/ - +/** + * \ingroup Links + * + * \brief Test if a node is a link + * \param[out] path_length Length of the path name of the linked node. The value 0 is returned if the node is not a link + * \return \ier + * + */ int cg_is_link(int *path_length) { double posit_id; @@ -13086,6 +16355,19 @@ int cg_is_link(int *path_length) return CG_OK; } +/** + * \ingroup Links + * + * \brief Get path information for a link at the current location + * \param[out] filename Name of the linked file, or empty string if the link is within the same file. + * \param[out] link_path Path name of the node which the link points to. + * + * \return \ier + * + * \details Use cg_goto(_f) to position to a location in the file prior to calling these routines. + * Memory is allocated by the library for the return values of the C function cg_link_read. This memory should be freed by the user when no longer needed by calling cg_free(filename) and cg_free(link_path). + * + */ int cg_link_read(char **filename, char **link_path) { int name_len, file_len; @@ -13115,6 +16397,26 @@ int cg_link_read(char **filename, char **link_path) return CG_OK; } +/** + * \ingroup Links + * + * \brief Create a link at the current location + * + * \param[in] nodename Name of the link node to create, e.g., GridCoordinates. + * \param[in] filename Name of the linked file, or empty string if the link is within the same file. + * \param[in] name_in_file Path name of the node which the link points to. This can be a simple or a compound name, e.g., Base/Zone 1/GridCoordinates. + * + * \return \ier + * + * \details Use cg_goto(_f) to position to a location in the file prior to calling these routines. + +When using cg_link_write, the node being linked to does not have to exist when the link is created. However, when the link is used, an error will occur if the linked-to node does not exist. + +Only nodes that support child nodes will support links. + +It is assumed that the CGNS version for the file containing the link, as determined by the CGNSLibraryVersion_t node, is also applicable to filename, the file containing the linked node. + * + */ int cg_link_write(const char * nodename, const char * filename, const char * name_in_file) { double posit_id, link_id; @@ -13199,7 +16501,26 @@ int cg_link_write(const char * nodename, const char * filename, const char * nam } /*----------------------------------------------------------------------*/ - +/** + * \ingroup UserDefinedData + * + * + * \brief Get number of UserDefinedData_t nodes + * + * \param[out] nuser_data Number of UserDefinedData_t nodes under current node. + * + * \return \ier + * + * \details After accessing a particular UserDefinedData_t node using cg_goto, + * the Point Set functions may be used to read or write point set information for the node. + * The function cg_gridlocation_write may also be used to specify the location of the data with respect to the grid (e.g., Vertex or FaceCenter). + * + * Multiple levels of UserDefinedData_t nodes may be written and retrieved by positioning via cg_goto. E.g., + * + * ier = cg_goto(fn, B, "Zone_t", Z, "UserDefinedData_t", ud1, + * "UserDefinedData_t", ud2, "UserDefinedData_t", ud3, "end"); + * + */ int cg_nuser_data(int *nuser_data) { @@ -13320,6 +16641,18 @@ int cg_nuser_data(int *nuser_data) return CG_OK; } +/** + * \ingroup UserDefinedData + * + * + * \brief Get name of an UserDefinedData_t node + * + * \param[in] Index User-defined data index number, where 1 ≤ Index ≤ nuser_data. + * \param[out] UserDataName Name of the UserDefinedData_t node. + * + * \return \ier + * + */ int cg_user_data_read(int Index, char *UserDataName) { int ier=0; @@ -13338,6 +16671,17 @@ int cg_user_data_read(int Index, char *UserDataName) return CG_OK; } +/** + * \ingroup UserDefinedData + * + * + * \brief Create UserDefinedData_t node + * + * \param[in] UserDataName Name of the UserDefinedData_t node. + * + * \return \ier + * + */ int cg_user_data_write(const char * UserDataName) { cgns_user_data *user_data; @@ -13369,7 +16713,18 @@ int cg_user_data_write(const char * UserDataName) } /*----------------------------------------------------------------------*/ - +/** + * \ingroup RotatingCoordinates + * + * + * \brief Read rotating coordinates data + * + * \param[out] rot_rate Components of the angular velocity of the grid about the center of rotation. (In Fortran, this is an array of Real*4 values.) + * \param[out] rot_center Coordinates of the center of rotation. (In Fortran, this is an array of Real*4 values.) + * + * \return \ier + * + */ int cg_rotating_read(float *rot_rate, float *rot_center) { cgns_rotating *rotating; @@ -13400,6 +16755,18 @@ int cg_rotating_read(float *rot_rate, float *rot_center) return CG_OK; } +/** + * \ingroup RotatingCoordinates + * + * + * \brief Create rotating coordinates data + * + * \param[in] rot_rate Components of the angular velocity of the grid about the center of rotation. (In Fortran, this is an array of Real*4 values.) + * \param[in] rot_center Coordinates of the center of rotation. (In Fortran, this is an array of Real*4 values.) + * + * \return \ier + * + */ int cg_rotating_write(float const *rot_rate, float const *rot_center) { cgns_rotating *rotating; @@ -13469,7 +16836,18 @@ int cg_rotating_write(float const *rot_rate, float const *rot_center) } /*----------------------------------------------------------------------*/ - +/** + * \ingroup PointSets + * + * + * \brief Get point set information + * + * \param[out] ptset_type The point set type; either PointRange for a range of points or cells, or PointList for a list of discrete points or cells. + * \param[out] npnts The number of points or cells in the point set. For a point set type of PointRange, npnts is always two. For a point set type of PointList, npnts is the number of points or cells in the list. + * + * \return \ier + * + */ int cg_ptset_info(CGNS_ENUMT(PointSetType_t) *ptset_type, cgsize_t *npnts) { cgns_ptset *ptset; @@ -13490,6 +16868,17 @@ int cg_ptset_info(CGNS_ENUMT(PointSetType_t) *ptset_type, cgsize_t *npnts) return CG_OK; } +/** + * \ingroup PointSets + * + * + * \brief Read point set data + * + * \param[out] pnts The array of point or cell indices defining the point set. There should be npnts values, each of dimension IndexDimension (i.e., 1 for unstructured grids, and 2 or 3 for structured grids with 2-D or 3-D elements, respectively). + * + * \return \ier + * + */ int cg_ptset_read(cgsize_t *pnts) { cgns_ptset *ptset; @@ -13517,6 +16906,19 @@ int cg_ptset_read(cgsize_t *pnts) return CG_OK; } +/** + * \ingroup PointSets + * + * + * \brief Write point set data + * + * \param[in] ptset_type The point set type; either PointRange for a range of points or cells, or PointList for a list of discrete points or cells. + * \param[in] npnts The number of points or cells in the point set. For a point set type of PointRange, npnts is always two. For a point set type of PointList, npnts is the number of points or cells in the list. + * \param[in] pnts The array of point or cell indices defining the point set. There should be npnts values, each of dimension IndexDimension (i.e., 1 for unstructured grids, and 2 or 3 for structured grids with 2-D or 3-D elements, respectively). + * + * \return \ier + * + */ int cg_ptset_write(CGNS_ENUMT(PointSetType_t) ptset_type, cgsize_t npnts, const cgsize_t * pnts) { @@ -13605,6 +17007,17 @@ int cg_ptset_write(CGNS_ENUMT(PointSetType_t) ptset_type, cgsize_t npnts, * Read and write FamilyBCDataSet_t nodes \*****************************************************************************/ +/** + * \ingroup BoundaryConditionDatasets + * + * + * \brief Get number of family boundary condition datasets + * + * \param[out] n_dataset Number of BCDataSet nodes under the current FamilyBC_t node. + * \return \ier + * + * \details The above functions are applicable to BCDataSet_t nodes that are used to define boundary conditions for a CFD family, and thus are children of a FamilyBC_t node. The FamilyBC_t node must first be accessed using cg_goto. + */ int cg_bcdataset_info(int *n_dataset) { CHECK_FILE_OPEN @@ -13628,6 +17041,22 @@ int cg_bcdataset_info(int *n_dataset) return CG_OK; } + +/** + * \ingroup BoundaryConditionDatasets + * + * + * \brief Read family boundary condition dataset info + * + * \param[in] index Dataset index number, where 1 ≤ index ≤ ndataset. + * \param[out] name Name of dataset. + * \param[out] BCType Simple boundary condition type for the dataset. The supported types are listed in the table of Simple Boundary Condition Types in the SIDS manual, but note that FamilySpecified does not apply here. + * \param[out] DirichletFlag Flag indicating if the dataset contains Dirichlet data. + * \param[out] NeumannFlag Flag indicating if the dataset contains Neumann data. + * \return \ier + * + * \details The above functions are applicable to BCDataSet_t nodes that are used to define boundary conditions for a CFD family, and thus are children of a FamilyBC_t node. The FamilyBC_t node must first be accessed using cg_goto. + */ int cg_bcdataset_read(int index, char *name, CGNS_ENUMT(BCType_t) *BCType, int *DirichletFlag, int *NeumannFlag) { @@ -13651,6 +17080,21 @@ int cg_bcdataset_read(int index, char *name, CGNS_ENUMT(BCType_t) *BCType, return CG_OK; } + +/** + * \ingroup BoundaryConditionDatasets + * + * + * \brief Write family boundary condition dataset info + * + * \param[in] name Name of dataset. + * \param[in] BCType Simple boundary condition type for the dataset. The supported types are listed in the table of Simple Boundary Condition Types in the SIDS manual, but note that FamilySpecified does not apply here. + * \param[in] BCDataType Type of boundary condition in the dataset (i.e., for a BCData_t child node). Admissible types are Dirichlet and Neumann. + * \return \ier + * + * \details The above functions are applicable to BCDataSet_t nodes that are used to define boundary conditions for a CFD family, and thus are children of a FamilyBC_t node. The FamilyBC_t node must first be accessed using cg_goto. + * The first time cg_bcdataset_write is called with a particular DatasetName, BCType, and BCDataType, a new BCDataSet_t node is created, with a child BCData_t node. Subsequent calls with the same DatasetName and BCType may be made to add additional BCData_t nodes, of type BCDataType, to the existing BCDataSet_t node. + */ int cg_bcdataset_write(const char *name, CGNS_ENUMT(BCType_t) BCType, CGNS_ENUMT(BCDataType_t) BCDataType) { @@ -13771,9 +17215,20 @@ int cg_bcdataset_write(const char *name, CGNS_ENUMT(BCType_t) BCType, } /****************************************************************************/ -/* the index in this list IS the cgnslib.h/ElementType_t index */ +/** + * \ingroup ElementConnectivity + * + * + * \brief Get number of nodes for an element type. + * + * \param[in] type Type of element. See the eligible types for ElementType_t in the Typedefs section. + * \param[out] npe Number of nodes for an element of type type. + * \return \ier + * + */ int cg_npe(CGNS_ENUMT( ElementType_t ) type, int *npe) { +/* the index in this list IS the cgnslib.h/ElementType_t index */ static int el_size[NofValidElementTypes] = { 0, /* ElementTypeNull */ 0, /* ElementTypeUserDefined */ @@ -13904,7 +17359,39 @@ int cg_npe(CGNS_ENUMT( ElementType_t ) type, int *npe) /*****************************************************************************\ * General Delete Function \*****************************************************************************/ - +/** + * \ingroup DeletingANode + * + * \brief Delete a node + * + * \param[in] node_name Name of the child to be deleted. + * \return \ier + * + * \details The function cg_delete_node is used is conjunction with cg_goto. Once positioned at a parent node with cg_goto, a child of this node can be deleted with cg_delete_node. This function requires a single argument, NodeName, which is the name of the child to be deleted. + +Since the highest level that can be pointed to with cg_goto is a base node for a CGNS database (CGNSBase_t), the highest-level nodes that can be deleted are the children of a CGNSBase_t node. In other words, nodes located directly under the ADF (or HDF) root node (CGNSBase_t and CGNSLibraryVersion_t) can not be deleted with cg_delete. + +A few other nodes are not allowed to be deleted from the database because these are required nodes as defined by the SIDS, and deleting them would make the file non-CGNS compliant. These are: + + Under Zone_t: ZoneType + Under GridConnectivity1to1_t: PointRange, PointRangeDonor, Transform + Under OversetHoles_t: PointList and any IndexRange_t + Under GridConnectivity_t: PointRange, PointList, CellListDonor, PointListDonor + Under BC_t: PointList, PointRange + Under GeometryReference_t: GeometryFile, GeometryFormat + Under Elements_t: ElementRange, ElementConnectivity + Under Gravity_t: GravityVector + Under Axisymmetry_t: AxisymmetryReferencePoint, AxisymmetryAxisVector + Under RotatingCoordinates_t: RotationCenter, RotationRateVector + Under Periodic_t: RotationCenter, RotationAngle, Translation + Under AverageInterface_t: AverageInterfaceType + Under WallFunction_t: WallFunctionType + Under Area_t: AreaType, SurfaceArea, RegionName + +When a child node is deleted, both the database and the file on disk are updated to remove the node. One must be careful not to delete a node from within a loop of that node type. For example, if the number of zones below a CGNSBase_t node is nzones, a zone should never be deleted from within a zone loop! By deleting a zone, the total number of zones (nzones) changes, as well as the zone indexing. Suppose for example that nzones is 5, and that the third zone is deleted. After calling cg_delete_node, nzones is changed to 4, and the zones originally indexed 4 and 5 are now indexed 3 and 4. + * + * + */ int cg_delete_node(const char *node_name) { int n, m, index_dim; @@ -14797,7 +18284,19 @@ int cg_delete_node(const char *node_name) /*****************************************************************************\ * Free library malloced memory \*****************************************************************************/ +/** + * \ingroup FreeingMemory + * + * \brief Release library-allocated memory + * + * \param[in] data Data allocated by the Mid-Level Library. + * \return \ier + * + * \details This function does not affect the structure of a CGNS file; it is provided as a convenience to free memory allocated by the Mid-Level Library. This isn't necessary in Fortran, and thus an equivalent Fortran function is not provided. +The functions that are used to allocate memory for return values are cg_descriptor_read, cg_convergence_read, cg_geo_read, cg_link_read, and cg_state_read. Each of these may allocate space to contain the data returned to the application. It is the responsibility of the application to free this data when it is no longer needed. Calling cg_free is identical to calling the standard C function free, however it is probably safer in that the memory is freed in the same module in which it is created, particularly when the Mid-Level Library is a shared library or DLL. The routine checks for NULL data and will return CG_ERROR in this case, otherwise it returns CG_OK. + * + */ int cg_free(void *data) { if (data != NULL) { CGNS_FREE (data); diff --git a/externals/cgns/cgnslib.h b/externals/cgns/cgnslib.h index f2b3d5c2218..476c7689da1 100644 --- a/externals/cgns/cgnslib.h +++ b/externals/cgns/cgnslib.h @@ -32,16 +32,19 @@ * |_____|_| |_|_| \____/|_| \_\ |_/_/ \_\_| \_| |_| * * ------------------- DEVELOPER'S NOTES --------------------------- + * * (1) When adding a defined constant to this file, also add the same defined * constant to cgns_f.F90 + * + * (2) Fortran length of names for variables is limited to 31 characters. * * ------------------------------------------------------------------------- */ #ifndef CGNSLIB_H #define CGNSLIB_H -#define CGNS_VERSION 4200 -#define CGNS_DOTVERS 4.20 +#define CGNS_VERSION 4400 +#define CGNS_DOTVERS 4.40 #define CGNS_COMPATVERSION 2540 #define CGNS_COMPATDOTVERS 2.54 @@ -129,15 +132,16 @@ #define CG_CONFIG_FILE_TYPE 5 #define CG_CONFIG_RIND_INDEX 6 -#define CG_CONFIG_HDF5_COMPRESS 201 -#define CG_CONFIG_HDF5_MPI_COMM 202 -#define CG_CONFIG_HDF5_DISKLESS 203 -#define CG_CONFIG_HDF5_DISKLESS_INCR 204 -#define CG_CONFIG_HDF5_DISKLESS_WRITE 205 -#define CG_CONFIG_HDF5_ALIGNMENT 206 -#define CG_CONFIG_HDF5_MD_BLOCK_SIZE 207 -#define CG_CONFIG_HDF5_BUFFER 208 -#define CG_CONFIG_HDF5_SIEVE_BUF_SIZE 209 +#define CG_CONFIG_HDF5_COMPRESS 201 +#define CG_CONFIG_HDF5_MPI_COMM 202 +#define CG_CONFIG_HDF5_DISKLESS 203 +#define CG_CONFIG_HDF5_DISKLESS_INCR 204 +#define CG_CONFIG_HDF5_DISKLESS_WRITE 205 +#define CG_CONFIG_HDF5_ALIGNMENT 206 +#define CG_CONFIG_HDF5_MD_BLOCK_SIZE 207 +#define CG_CONFIG_HDF5_BUFFER 208 +#define CG_CONFIG_HDF5_SIEVE_BUF_SIZE 209 +#define CG_CONFIG_HDF5_ELINK_CACHE_SIZE 210 #define CG_CONFIG_RESET 1000 diff --git a/externals/cgns/pcgnslib.c b/externals/cgns/pcgnslib.c index 1acc54a5b30..90079fd9f29 100644 --- a/externals/cgns/pcgnslib.c +++ b/externals/cgns/pcgnslib.c @@ -17,6 +17,14 @@ freely, subject to the following restrictions: 3. This notice may not be removed or altered from any source distribution. -------------------------------------------------------------------------*/ +/** + * \defgroup ParallelMisc Parallel Miscellaneous Routines + * \defgroup ParallelFile Parallel File Operations + * \defgroup ParallelGridCoordinate Parallel Grid Coordinate Data + * \defgroup ElementConnectivityData Parallel Element Connectivity Data + * \defgroup SolutionData Parallel Solution Data + * \defgroup ArrayData Parallel Array Data + **/ #include #include @@ -48,6 +56,13 @@ typedef struct cg_rw_t { } u; } cg_rw_t; +typedef struct cg_rw__ptr_t { + union { + void **rbuf; /* Pointer to buffer for read */ + const void **wbuf; /* Pointer to buffer to write */ + } u; +} cg_rw_ptr_t; + /* flag for parallel reading or parallel writing */ enum cg_par_rw{ CG_PAR_READ, @@ -358,6 +373,15 @@ static int check_parallel(cgns_file *cgfile) /*== Begin Function Definitions ==*/ /*================================*/ +/** + * \ingroup ParallelMisc + * + * \brief Set the MPI communicator. + * + * \param[in] comm The MPI communicator to be used by the CGNS library. + * \details Sets the MPI communicator for parallel operations by the CGNS library. The default value is MPI_COMM_WORLD. + * \return \ier + */ int cgp_mpi_comm(MPI_Comm comm) { /* check if we are actually running a parallel program */ @@ -378,7 +402,15 @@ int cgp_mpi_comm(MPI_Comm comm) return ctx_cgio.pcg_mpi_initialized ? CG_OK : CG_ERROR; } - +/** + * \ingroup ParallelMisc + * + * \brief Set the MPI info object. + * + * \param[in] info The MPI info object to be used by the CGNS library. + * \return \ier + * \details Passes the MPI info object for parallel operations to the CGNS library. Notes for Fortran: the data type for info is an INTEGER. + */ int cgp_mpi_info(MPI_Info info) { ctx_cgio.pcg_mpi_info = info; @@ -387,7 +419,16 @@ int cgp_mpi_info(MPI_Info info) } /*---------------------------------------------------------*/ - +/** + * \ingroup ParallelMisc + * + * \brief Set the parallel IO mode. + * + * \param[in] mode Parallel input/output mode. + * \return \ier + * \details Sets the mode for parallel data reads and writes. The default value is \p CGP_COLLECTIVE, which allows any number of processes to access the data. + * When set to \p CGP_COLLECTIVE, all processes must access the data. + */ int cgp_pio_mode(CGNS_ENUMT(PIOmode_t) mode) { if (mode == CGP_INDEPENDENT) @@ -404,6 +445,14 @@ int cgp_pio_mode(CGNS_ENUMT(PIOmode_t) mode) /*---------------------------------------------------------*/ +/** + * \ingroup ParallelMisc + * + * \brief Exit with error message. + * + * \details Is similar to \e cg_error_exit in that the process will exit with an error message. + * However, it will also print the process rank, and call \p MPI_Abort with an exit code of 1. + */ void cgp_error_exit(void) { @@ -416,6 +465,17 @@ void cgp_error_exit(void) } /*===== File IO Prototypes ================================*/ +/** + * \ingroup ParallelFile + * + * \brief Open a file for parallel IO. + * + * \param[in] filename \FILE_filename + * \param[in] mode \FILE_mode + * \param[out] fn \FILE_fn + * \return \ier + * \details Similar to \e cg_open and calls that routine. The differences is that \e cgp_open explicitly sets an internal CGNS flag to indicate parallel access. + */ int cgp_open(const char *filename, int mode, int *fn) { @@ -439,7 +499,15 @@ int cgp_open(const char *filename, int mode, int *fn) } /*---------------------------------------------------------*/ - +/** + * \ingroup ParallelFile + * + * \brief Close a CGNS file. + * + * \param[in] fn \FILE_fn + * \return \ier + * \details Similar to \e cg_close and calls that routine. + */ int cgp_close(int fn) { /* reset parallel access */ @@ -448,6 +516,22 @@ int cgp_close(int fn) } /*===== Grid IO Prototypes ================================*/ +/** + * \ingroup ParallelGridCoordinate + * + * \brief Create a coordinate data node by multiple processes in a parallel fashion. + * + * \param[in] fn \FILE_fn + * \param[in] B \B_Base + * \param[in] Z \Z_Zone + * \param[in] type \PGRID_datatype + * \param[in] coordname \PGRID_coordname + * \param[out] C \PGRID_Coordinate + * \return \ier + * \details To write the data in parallel, first call /e cgp_coord_write to create an empty data node. This call is identical + * to /e cg_coord_write with /p coord_array set to NULL (no data written). The actual data is then written to the node in parallel + * using either /e cgp_coord_write_data or /e cgp_coord_general_write_data where /p range_min and /p range_max specify the subset of coordinate data to be written by a given process. + */ int cgp_coord_write(int fn, int B, int Z, CGNS_ENUMT(DataType_t) type, const char *coordname, int *C) @@ -459,6 +543,24 @@ int cgp_coord_write(int fn, int B, int Z, CGNS_ENUMT(DataType_t) type, } /*---------------------------------------------------------*/ +/** + * \ingroup ParallelGridCoordinate + * + * \brief Write coordinate data in parallel. + * + * \param[in] fn \FILE_fn + * \param[in] B \B_Base + * \param[in] Z \Z_Zone + * \param[in] C \C_Coordinate + * \param[in] rmin \PGRID_range_min + * \param[in] rmax \PGRID_range_max + * \param[in] coords \PGRID_coord_array + * \return \ier + * \details Writes the actual data to the node in parallel, where /p rmin and /p rmax specify the subset + * of coordinate data to be written by a given process. It is the + * responsibility of the application to ensure that the data type for the coordinate data + * matches that as defined in the file; no conversions are done. + */ int cgp_coord_write_data(int fn, int B, int Z, int C, const cgsize_t *rmin, const cgsize_t *rmax, const void *coords) @@ -509,10 +611,29 @@ int cgp_coord_write_data(int fn, int B, int Z, int C, } /*---------------------------------------------------------*/ +/** + * \ingroup ParallelGridCoordinate + * + * \brief Write shaped array to a subset of grid coordinates in parallel. + * + * \param[in] fn \FILE_fn + * \param[in] B \B_Base + * \param[in] Z \Z_Zone + * \param[in] C \PGRID_Coordinate + * \param[in] rmin \PGRID_range_min + * \param[in] rmax \PGRID_range_max + * \param[in] m_type \PGRID_mem_datatype + * \param[in] m_numdim \PGRID_mem_rank + * \param[in] m_arg_dimvals \PGRID_mem_dimensions + * \param[in] m_rmin \PGRID_mem_range_min + * \param[in] m_rmax \PGRID_mem_range_max + * \param[out] coords \PGRID_coord_array + * \return \ier + * \details The \e cgp_coord_general_write_data perform data conversions if \e datatype is different from \e mem_datatype. If \e coords == NULL, meaning + * this processor writes no data, then only \e fn, \e B, \e Z, and \e C need be set. In this case, \e Z and \e C are "representative" + * and can point to any valid zone. + */ -/* Note: if data == NULL, meaning this processor reads no data, then - only fn, B, Z, and C need be set. In this case, Z and C are "representative" - and can point to any valid zone */ int cgp_coord_general_write_data(int fn, int B, int Z, int C, const cgsize_t *rmin, const cgsize_t *rmax, CGNS_ENUMT(DataType_t) m_type, @@ -598,6 +719,24 @@ int cgp_coord_general_write_data(int fn, int B, int Z, int C, } /*---------------------------------------------------------*/ +/** + * \ingroup ParallelGridCoordinate + * + * \brief Read coordinate data in parallel. + * + * \param[in] fn \FILE_fn + * \param[in] B \B_Base + * \param[in] Z \Z_Zone + * \param[in] C \C_Coordinate + * \param[in] rmin \PGRID_range_min + * \param[in] rmax \PGRID_range_max + * \param[out] coords \PGRID_coord_array + * \return \ier + * \details Reads the actual data to the node in parallel, where /p rmin and /p rmax specify the subset + * of coordinate data to be read by a given process. It is the + * responsibility of the application to ensure that the data type for the coordinate data + * matches that as defined in the file; no conversions are done. + */ int cgp_coord_read_data(int fn, int B, int Z, int C, const cgsize_t *rmin, const cgsize_t *rmax, void *coords) @@ -647,10 +786,29 @@ int cgp_coord_read_data(int fn, int B, int Z, int C, } /*---------------------------------------------------------*/ +/** + * \ingroup ParallelGridCoordinate + * + * \brief Read shaped array to a subset of grid coordinates in parallel. + * + * \param[in] fn \FILE_fn + * \param[in] B \B_Base + * \param[in] Z \Z_Zone + * \param[in] C \C_Coordinate + * \param[in] rmin \PGRID_range_min + * \param[in] rmax \PGRID_range_max + * \param[in] m_type \PGRID_mem_datatype + * \param[in] m_numdim \PGRID_mem_rank + * \param[in] m_arg_dimvals \PGRID_mem_dimensions + * \param[in] m_rmin \PGRID_mem_range_min + * \param[in] m_rmax \PGRID_mem_range_max + * \param[out] coords \PGRID_coord_array + * \return \ier + * \details The \e cgp_coord_general_read_data perform data conversions if \e datatype is different from \e mem_datatype. If \e coords == NULL, meaning + * this processor reads no data, then only \e fn, \e B, \e Z, and \e C need be set. In this case, \e Z and \e C are "representative" + * and can point to any valid zone. + */ -/* Note: if data == NULL, meaning this processor reads no data, then - only fn, B, Z, and C need be set. In this case, Z and C are "representative" - and can point to any valid zone */ int cgp_coord_general_read_data(int fn, int B, int Z, int C, const cgsize_t *rmin, const cgsize_t *rmax, CGNS_ENUMT(DataType_t) m_type, @@ -736,6 +894,28 @@ int cgp_coord_general_read_data(int fn, int B, int Z, int C, } /*===== Elements IO Prototypes ============================*/ +/* TODO: ref. cg_section_write + Add somewhere: (Note that for Fortran calls, all integer arguments are integer*4 in 32-bit mode and integer*8 in 64-bit mode. See 64-bit Fortran Portability and Issues.) +*/ +/** + * \ingroup ElementConnectivityData + * + * \brief Create a section data node. + * + * \param[in] fn \FILE_fn + * \param[in] B \B_Base + * \param[in] Z \Z_Zone + * \param[in] sectionname \PCONN_ElementSectionName + * \param[in] type \PCONN_type + * \param[in] start \PCONN_start + * \param[in] end \PCONN_end + * \param[in] nbndry \PCONN_nbndry + * \param[out] S \CONN_S + * \return \ier + * \details \p cgp_section_write is used to write element connectivity data by multiple processes in a parallel fashion. To write the element data in parallel, first call \e cgp_section_write to create an empty data node. This call is identical to \e cg_section_write with \e Elements set to \e NULL (no data written). The actual element data is then written to the node in parallel using \p cgp_element_write_data where \e start and \e end specify the range of the elements to be written by a given process. + * NOTE (1): Routine only works for constant sized elements, since it is not possible to compute file offsets for variable sized elements without knowledge of the entire element connectivity data. + * NOTE (2): It is the responsibility of the application to ensure that \e cgsize_t in the application is the same size as that defined in the file; no conversions are done. + */ int cgp_section_write(int fn, int B, int Z, const char *sectionname, CGNS_ENUMT(ElementType_t) type, cgsize_t start, cgsize_t end, @@ -751,19 +931,31 @@ int cgp_section_write(int fn, int B, int Z, const char *sectionname, return cg_section_partial_write(fn, B, Z, sectionname, type, start, end, nbndry, S); } +/** + * \ingroup ElementConnectivityData + * + * \brief Create a section data node. + * + * \param[in] fn \FILE_fn + * \param[in] B \B_Base + * \param[in] Z \Z_Zone + * \param[in] sectionname \PCONN_ElementSectionName + * \param[in] type \PCONN_type + * \param[in] start \PCONN_start + * \param[in] end \PCONN_end + * \param[in] maxoffset \PCONN_MaxOffset + * \param[in] nbndry \PCONN_nbndry + * \param[out] S \CONN_S + * \return \ier + * \details \p cgp_poly_section_write is used to write element connectivity data by multiple processes in a parallel fashion. To write the element data in parallel, first call \e cgp_section_write to create an empty data node. This call is identical to \e cg_section_write with \e Elements set to \e NULL (no data written). The actual element data is then written to the node in parallel using \p cgp_element_write_data where \e start and \e end specify the range of the elements to be written by a given process. + * NOTE (1): Routine only works for constant sized elements, since it is not possible to compute file offsets for variable sized elements without knowledge of the entire element connectivity data. + * NOTE (2): It is the responsibility of the application to ensure that \e cgsize_t in the application is the same size as that defined in the file; no conversions are done. + */ int cgp_poly_section_write(int fn, int B, int Z, const char *sectionname, CGNS_ENUMT(ElementType_t) type, cgsize_t start, cgsize_t end, cgsize_t maxoffset, int nbndry, int *S) { - cgns_zone *zone; - cgns_section *section = NULL; - double dummy_id; - int index; - int data[2]; - cgsize_t dim_vals; - cgsize_t num, ElementDataSize=0; - cg = cgi_get_file(fn); if (check_parallel(cg)) return CG_ERROR; if (cgi_check_mode(cg->filename, cg->mode, CG_MODE_WRITE)) @@ -780,7 +972,23 @@ int cgp_poly_section_write(int fn, int B, int Z, const char *sectionname, } /*---------------------------------------------------------*/ - +/** + * \ingroup ElementConnectivityData + * + * \brief Write element data in parallel. + * + * \param[in] fn \FILE_fn + * \param[in] B \B_Base + * \param[in] Z \Z_Zone + * \param[in] S \CONN_S + * \param[in] start \PCONN_start + * \param[in] end \PCONN_end + * \param[in] elements \PCONN_Elements + * \return \ier + * \details \p cgp_elements_write_data is used to write element connectivity data by multiple processes in a parallel fashion. To write the element data in parallel, first call \e cgp_section_write to create an empty data node. This call is identical to \e cg_section_write with \e Elements set to \e NULL (no data written). The actual element data is then written to the node in parallel using \p cgp_element_write_data where \e start and \e end specify the range of the elements to be written by a given process. + * NOTE (1): Routine only works for constant sized elements, since it is not possible to compute file offsets for variable sized elements without knowledge of the entire element connectivity data. + * NOTE (2): It is the responsibility of the application to ensure that \e cgsize_t in the application is the same size as that defined in the file; no conversions are done. + */ int cgp_elements_write_data(int fn, int B, int Z, int S, cgsize_t start, cgsize_t end, const cgsize_t *elements) { @@ -827,7 +1035,21 @@ int cgp_elements_write_data(int fn, int B, int Z, int S, cgsize_t start, } /*---------------------------------------------------------*/ - +/** + * \ingroup ElementConnectivityData + * + * \brief Write element data in parallel. + * + * \param[in] fn \FILE_fn + * \param[in] B \B_Base + * \param[in] Z \Z_Zone + * \param[in] S \CONN_S + * \param[in] start \PCONN_start + * \param[in] end \PCONN_end + * \param[in] elements \PCONN_Elements + * \param[in] offsets \PCONN_Offsets + * \return \ier + */ int cgp_poly_elements_write_data(int fn, int B, int Z, int S, cgsize_t start, cgsize_t end, const cgsize_t *elements, const cgsize_t *offsets) { @@ -902,7 +1124,20 @@ int cgp_poly_elements_write_data(int fn, int B, int Z, int S, cgsize_t start, /*---------------------------------------------------------*/ - +/** + * \ingroup ElementConnectivityData + * + * \brief Read element data in parallel. + * + * \param[in] fn \FILE_fn + * \param[in] B \B_Base + * \param[in] Z \Z_Zone + * \param[in] S \CONN_S + * \param[in] start \PCONN_start + * \param[in] end \PCONN_end + * \param[out] elements \PCONN_Elements + * \return \ier + */ int cgp_elements_read_data(int fn, int B, int Z, int S, cgsize_t start, cgsize_t end, cgsize_t *elements) { @@ -946,7 +1181,20 @@ int cgp_elements_read_data(int fn, int B, int Z, int S, cgsize_t start, return readwrite_data_parallel(hid, type, 1, &rmin, &rmax, &Data, CG_PAR_READ); } - +/** + * \ingroup ElementConnectivityData + * + * \brief Write parent info for an element section data in parallel. + * + * \param[in] fn \FILE_fn + * \param[in] B \B_Base + * \param[in] Z \Z_Zone + * \param[in] S \CONN_S + * \param[in] start \PCONN_start + * \param[in] end \PCONN_end + * \param[in] parent_data \PCONN_Elements + * \return \ier + */ int cgp_parent_data_write(int fn, int B, int Z, int S, cgsize_t start, cgsize_t end, const cgsize_t *parent_data) @@ -1062,7 +1310,20 @@ int cgp_parent_data_write(int fn, int B, int Z, int S, } /*===== Solution IO Prototypes ============================*/ - +/** + * \ingroup SolutionData + * + * \brief Create a solution field data node in parallel. + * + * \param[in] fn \FILE_fn + * \param[in] B \B_Base + * \param[in] Z \Z_Zone + * \param[in] S \PSOL_S + * \param[in] DataType \PSOL_datatype + * \param[in] fieldname \PSOL_fieldname + * \param[in] F \PSOL_F + * \return \ier + */ int cgp_field_write(int fn, int B, int Z, int S, CGNS_ENUMT(DataType_t) DataType, const char *fieldname, int *F) { @@ -1073,13 +1334,27 @@ int cgp_field_write(int fn, int B, int Z, int S, } /*---------------------------------------------------------*/ - +/** + * \ingroup SolutionData + * + * \brief Write field data in parallel. + * + * \param[in] fn \FILE_fn + * \param[in] B \B_Base + * \param[in] Z \Z_Zone + * \param[in] S \PSOL_S + * \param[in] F \PSOL_F + * \param[in] rmin \PSOL_range_min + * \param[in] rmax \PSOL_range_max + * \param[in] data \PSOL_solution_array + * \return \ier + */ int cgp_field_write_data(int fn, int B, int Z, int S, int F, const cgsize_t *rmin, const cgsize_t *rmax, const void *data) { int n; hid_t hid; - cgns_array *field; + cgns_array *field = NULL; CGNS_ENUMT(DataType_t) type; cg = cgi_get_file(fn); @@ -1114,9 +1389,29 @@ int cgp_field_write_data(int fn, int B, int Z, int S, int F, /*---------------------------------------------------------*/ -/* Note: if data == NULL, meaning this processor reads no data, then - only fn, B, Z, S, and F need be set. In this case, Z, S, and F are - "representative" and can point to any valid zone */ +/** + * \ingroup SolutionData + * + * \brief Write shaped array to a subset of flow solution field in parallel. + * + * \param[in] fn \FILE_fn + * \param[in] B \B_Base + * \param[in] Z \Z_Zone + * \param[in] S \PSOL_S + * \param[in] F \PSOL_F + * \param[in] rmin \PSOL_range_min + * \param[in] rmax \PSOL_range_max + * \param[in] m_type \PSOL_mem_datatype + * \param[in] m_numdim \PSOL_mem_rank + * \param[in] m_arg_dimvals \PSOL_mem_dimensions + * \param[in] m_rmin \PSOL_mem_range_min + * \param[in] m_rmax \PSOL_mem_range_max + * \param[in] data \PSOL_solution_array + * \return \ier + * \details If \e data == NULL, meaning this processor reads no data, then + * only \e fn,\e B, \e Z, \e S, and \e F need be set. In this case, \e Z, \e S, and \e F are + * "representative" and can point to any valid zone. + */ int cgp_field_general_write_data(int fn, int B, int Z, int S, int F, const cgsize_t *rmin, const cgsize_t *rmax, CGNS_ENUMT(DataType_t) m_type, @@ -1127,7 +1422,7 @@ int cgp_field_general_write_data(int fn, int B, int Z, int S, int F, int n, ier; hid_t hid; cgns_sol *sol; - cgns_array *field; + cgns_array *field = NULL; /* get memory addresses */ cg = cgi_get_file(fn); @@ -1198,13 +1493,27 @@ int cgp_field_general_write_data(int fn, int B, int Z, int S, int F, } /*---------------------------------------------------------*/ - +/** + * \ingroup SolutionData + * + * \brief Read field data in parallel. + * + * \param[in] fn \FILE_fn + * \param[in] B \B_Base + * \param[in] Z \Z_Zone + * \param[in] S \PSOL_S + * \param[in] F \PSOL_F + * \param[in] rmin \PSOL_range_min + * \param[in] rmax \PSOL_range_max + * \param[in] data \PSOL_solution_array + * \return \ier + */ int cgp_field_read_data(int fn, int B, int Z, int S, int F, const cgsize_t *rmin, const cgsize_t *rmax, void *data) { int n; hid_t hid; - cgns_array *field; + cgns_array *field = NULL; CGNS_ENUMT(DataType_t) type; cg = cgi_get_file(fn); @@ -1238,9 +1547,29 @@ int cgp_field_read_data(int fn, int B, int Z, int S, int F, /*---------------------------------------------------------*/ -/* Note: if data == NULL, meaning this processor reads no data, then - only fn, B, Z, S, and F need be set. In this case, Z, S, and F are - "representative" and can point to any valid zone */ +/** + * \ingroup SolutionData + * + * \brief Read subset of flow solution field to a shaped array in parallel. + * + * \param[in] fn \FILE_fn + * \param[in] B \B_Base + * \param[in] Z \Z_Zone + * \param[in] S \PSOL_S + * \param[in] F \PSOL_F + * \param[in] rmin \PSOL_range_min + * \param[in] rmax \PSOL_range_max + * \param[in] m_type \PSOL_mem_datatype + * \param[in] m_numdim \PSOL_mem_rank + * \param[in] m_arg_dimvals \PSOL_mem_dimensions + * \param[in] m_rmin \PSOL_mem_range_min + * \param[in] m_rmax \PSOL_mem_range_max + * \param[out] data \PSOL_solution_array + * \return \ier + * \details If \e data == NULL, meaning this processor reads no data, then + * only \e fn, \e B, \e Z, \e S, and \e F need be set. In this case, \e Z, \e S, and \e F are + * "representative" and can point to any valid zone. + */ int cgp_field_general_read_data(int fn, int B, int Z, int S, int F, const cgsize_t *rmin, const cgsize_t *rmax, CGNS_ENUMT(DataType_t) m_type, @@ -1251,7 +1580,7 @@ int cgp_field_general_read_data(int fn, int B, int Z, int S, int F, int n, ier; hid_t hid; cgns_sol *sol; - cgns_array *field; + cgns_array *field = NULL; /* get memory addresses */ cg = cgi_get_file(fn); @@ -1321,7 +1650,18 @@ int cgp_field_general_read_data(int fn, int B, int Z, int S, int F, } /*===== Array IO Prototypes ===============================*/ - +/** + * \ingroup ArrayData + * + * \brief Create an array data node. + * + * \param[in] ArrayName \PARR_arrayname + * \param[in] DataType \PARR_datatype + * \param[in] DataDimension \PARR_rank + * \param[in] DimensionVector \PARR_dimensions + * \param[in] A \PARR_A + * \return \ier + */ int cgp_array_write(const char *ArrayName, CGNS_ENUMT(DataType_t) DataType, int DataDimension, const cgsize_t *DimensionVector, int *A) { @@ -1355,7 +1695,17 @@ int cgp_array_write(const char *ArrayName, CGNS_ENUMT(DataType_t) DataType, } /*---------------------------------------------------------*/ - +/** + * \ingroup ArrayData + * + * \brief Write array data in parallel. + * + * \param[in] A \PARR_A + * \param[in] rmin \PARR_range_min + * \param[in] rmax \PARR_range_max + * \param[in] data \PARR_data + * \return \ier + */ int cgp_array_write_data(int A, const cgsize_t *rmin, const cgsize_t *rmax, const void *data) { @@ -1390,9 +1740,26 @@ int cgp_array_write_data(int A, const cgsize_t *rmin, /*---------------------------------------------------------*/ -/* Note: if data == NULL, meaning this processor reads no data, then - only A need be set. In this case, A is "representative" and can point to - any valid array being written by another processor */ +/** + * \ingroup ArrayData + * + * \brief Write shaped array to a subset of data array in parallel. + * + * \param[in] A \PARR_A + * \param[in] rmin \PARR_range_min + * \param[in] rmax \PARR_range_max + * \param[in] m_type \PARR_mem_datatype + * \param[in] m_numdim \PARR_mem_rank + * \param[in] m_arg_dimvals \PARR_mem_dimensions + * \param[in] m_rmin \PARR_mem_range_min + * \param[in] m_rmax \PARR_mem_range_max + * \param[out] data \PARR_data + * \return \ier + * \details If \e data == NULL, meaning this processor reads no data, then + * only \e A need be set. In this case, \e A is "representative" and can point to + * any valid array being written by another processor + * + */ int cgp_array_general_write_data(int A, const cgsize_t *rmin, const cgsize_t *rmax, CGNS_ENUMT(DataType_t) m_type, @@ -1468,7 +1835,17 @@ int cgp_array_general_write_data(int A, } /*---------------------------------------------------------*/ - +/** + * \ingroup ArrayData + * + * \brief Read array data in parallel. + * + * \param[in] A \PARR_A + * \param[in] rmin \PARR_range_min + * \param[in] rmax \PARR_range_max + * \param[in] data \PARR_data + * \return \ier + */ int cgp_array_read_data(int A, const cgsize_t *rmin, const cgsize_t *rmax, void *data) { @@ -1502,9 +1879,25 @@ int cgp_array_read_data(int A, const cgsize_t *rmin, /*---------------------------------------------------------*/ -/* Note: if data == NULL, meaning this processor reads no data, then - only A need be set. In this case, A is "representative" and can point to - any valid array being written by another processor */ +/** + * \ingroup ArrayData + * + * \brief Read subset of data array to a shaped array in parallel. + * + * \param[in] A \PARR_A + * \param[in] rmin \PARR_range_min + * \param[in] rmax \PARR_range_max + * \param[in] m_type \PARR_mem_datatype + * \param[in] m_numdim \PARR_mem_rank + * \param[in] m_arg_dimvals \PARR_mem_dimensions + * \param[in] m_rmin \PARR_mem_range_min + * \param[in] m_rmax \PARR_mem_range_max + * \param[out] data \PARR_data + * \return \ier + * \details If \e data == NULL, meaning this processor reads no data, then + only \e A need be set. In this case, \e A is "representative" and can point to + any valid array being written by another processor. + */ int cgp_array_general_read_data(int A, const cgsize_t *rmin, const cgsize_t *rmax, CGNS_ENUMT(DataType_t) m_type, @@ -1579,17 +1972,18 @@ int cgp_array_general_read_data(int A, dataset, CG_PAR_READ); } +/******************************** + Multidataset APIs +*********************************/ -#if HDF5_HAVE_MULTI_DATASETS - -static int readwrite_multi_data_parallel(size_t count, H5D_rw_multi_t *multi_info, +static int readwrite_multi_data_parallel(size_t count, hid_t *dset_id, hid_t *mem_type_id, hid_t *mem_space_id, hid_t *file_space_id, + cg_rw_ptr_t *data, int ndims, const cgsize_t *rmin, const cgsize_t *rmax, enum cg_par_rw rw_mode) { /* * Needs to handle a NULL dataset. MSB */ int k, n; - hid_t data_id, mem_shape_id, data_shape_id, hid; hsize_t *start, *dims; herr_t herr; hid_t plist_id; @@ -1599,24 +1993,24 @@ static int readwrite_multi_data_parallel(size_t count, H5D_rw_multi_t *multi_inf /* convert from CGNS to HDF5 data type */ for (n = 0; n < count; n++) { - switch ((CGNS_ENUMT(DataType_t))multi_info[n].mem_type_id) { + switch ((CGNS_ENUMT(DataType_t))mem_type_id[n]) { case CGNS_ENUMV(Character): - multi_info[n].mem_type_id = H5T_NATIVE_CHAR; + mem_type_id[n] = H5T_NATIVE_CHAR; break; case CGNS_ENUMV(Integer): - multi_info[n].mem_type_id = H5T_NATIVE_INT32; + mem_type_id[n] = H5T_NATIVE_INT32; break; case CGNS_ENUMV(LongInteger): - multi_info[n].mem_type_id = H5T_NATIVE_INT64; + mem_type_id[n] = H5T_NATIVE_INT64; break; case CGNS_ENUMV(RealSingle): - multi_info[n].mem_type_id = H5T_NATIVE_FLOAT; + mem_type_id[n] = H5T_NATIVE_FLOAT; break; case CGNS_ENUMV(RealDouble): - multi_info[n].mem_type_id = H5T_NATIVE_DOUBLE; + mem_type_id[n] = H5T_NATIVE_DOUBLE; break; default: - cgi_error("unhandled data type %d\n", multi_info[n].mem_type_id); + cgi_error("unhandled data type %ld\n", mem_type_id[n]); free(start); free(dims); return CG_ERROR; @@ -1632,8 +2026,8 @@ static int readwrite_multi_data_parallel(size_t count, H5D_rw_multi_t *multi_inf for (k = 0; k < count; k++) { /* Create a shape for the data in memory */ - multi_info[k].mem_space_id = H5Screate_simple(ndims, dims, NULL); - if (multi_info[k].mem_space_id < 0) { + mem_space_id[k] = H5Screate_simple(ndims, dims, NULL); + if (mem_space_id[k] < 0) { cgi_error("H5Screate_simple() failed"); free(start); free(dims); @@ -1641,8 +2035,8 @@ static int readwrite_multi_data_parallel(size_t count, H5D_rw_multi_t *multi_inf } /* Open the data */ - if ((multi_info[k].dset_id = H5Dopen2(multi_info[k].dset_id, " data", H5P_DEFAULT)) < 0) { - H5Sclose(multi_info[k].mem_space_id); /** needs loop **/ + if ((dset_id[k] = H5Dopen2(dset_id[k], " data", H5P_DEFAULT)) < 0) { + H5Sclose(mem_space_id[k]); /** needs loop **/ cgi_error("H5Dopen2() failed"); free(start); free(dims); @@ -1650,10 +2044,10 @@ static int readwrite_multi_data_parallel(size_t count, H5D_rw_multi_t *multi_inf } /* Create a shape for the data in the file */ - multi_info[k].dset_space_id = H5Dget_space(multi_info[k].dset_id); - if (multi_info[k].dset_space_id < 0) { - H5Sclose(multi_info[k].mem_space_id); - H5Dclose(multi_info[k].dset_id); + file_space_id[k] = H5Dget_space(dset_id[k]); + if (file_space_id[k] < 0) { + H5Sclose(mem_space_id[k]); + H5Dclose(dset_id[k]); cgi_error("H5Dget_space() failed"); free(start); free(dims); @@ -1661,12 +2055,11 @@ static int readwrite_multi_data_parallel(size_t count, H5D_rw_multi_t *multi_inf } /* Select a section of the array in the file */ - herr = H5Sselect_hyperslab(multi_info[k].dset_space_id, H5S_SELECT_SET, start, + herr = H5Sselect_hyperslab(file_space_id[k], H5S_SELECT_SET, start, NULL, dims, NULL); if (herr < 0) { - H5Sclose(data_shape_id); - H5Sclose(mem_shape_id); - H5Dclose(data_id); + H5Sclose(mem_space_id[k]); + H5Dclose(dset_id[k]); cgi_error("H5Sselect_hyperslab() failed"); free(start); free(dims); @@ -1677,9 +2070,6 @@ static int readwrite_multi_data_parallel(size_t count, H5D_rw_multi_t *multi_inf /* Set the access property list for data transfer */ plist_id = H5Pcreate(H5P_DATASET_XFER); if (plist_id < 0) { - H5Sclose(data_shape_id); - H5Sclose(mem_shape_id); - H5Dclose(data_id); cgi_error("H5Pcreate() failed"); free(start); free(dims); @@ -1690,31 +2080,43 @@ static int readwrite_multi_data_parallel(size_t count, H5D_rw_multi_t *multi_inf herr = H5Pset_dxpl_mpio(plist_id, ctx_cgio.default_pio_mode); if (herr < 0) { H5Pclose(plist_id); - H5Sclose(data_shape_id); - H5Sclose(mem_shape_id); - H5Dclose(data_id); cgi_error("H5Pset_dxpl_mpio() failed"); free(start); free(dims); return CG_ERROR; } + /* If HDF5 does not support multi-dataset APIs, then resort to doing them one-by-one */ +#if HDF5_HAVE_MULTI_DATASETS /* Read or Write the data in parallel */ if (rw_mode == CG_PAR_READ) { - herr = H5Dread_multi(plist_id, count, multi_info); + herr = H5Dread_multi(count, dset_id, mem_type_id, mem_space_id, file_space_id, plist_id, data[0].u.rbuf); if (herr < 0) { cgi_error("H5Dread_multi() failed"); } } else { - herr = H5Dwrite_multi(plist_id, count, multi_info); + herr = H5Dwrite_multi(count, dset_id, mem_type_id, mem_space_id, file_space_id, plist_id, data[0].u.wbuf); if (herr < 0) { cgi_error("H5Dwrite_multi() failed"); } } +#else + for (k = 0; k < count; k++) { + if (rw_mode == CG_PAR_READ) { + herr = H5Dread(dset_id[k], mem_type_id[k], mem_space_id[k], file_space_id[k], plist_id, data[0].u.rbuf[k]); + if (herr < 0) { + cgi_error("H5Dread_multi() -- pseudo -- failed"); + } + } else { + herr = H5Dwrite(dset_id[k], mem_type_id[k], mem_space_id[k], file_space_id[k], plist_id, data[0].u.wbuf[k]); + if (herr < 0) { + cgi_error("H5Dwrite_multi() -- pseudo -- failed"); + } + } + } +#endif + H5Pclose(plist_id); - H5Sclose(data_shape_id); - H5Sclose(mem_shape_id); - H5Dclose(data_id); free(start); free(dims); return herr < 0 ? CG_ERROR : CG_OK; @@ -1723,72 +2125,97 @@ static int readwrite_multi_data_parallel(size_t count, H5D_rw_multi_t *multi_inf /*------------------- multi-dataset functions --------------------------------------*/ int cgp_coord_multi_read_data(int fn, int B, int Z, int *C, const cgsize_t *rmin, const cgsize_t *rmax, - void *coordsX, void *coordsY, void *coordsZ) + int nsets, void *buf[]) { - int n; - hid_t hid; - cgns_zone *zone; - cgns_zcoor *zcoor; - cgsize_t dims[3]; - cgsize_t index_dim; - CGNS_ENUMT(DataType_t) type[3]; - H5D_rw_multi_t multi_info[3]; + int n; + hid_t hid; + cgns_zone *zone = NULL; + cgns_zcoor *zcoor = NULL; + cgsize_t dims[3]; - cg = cgi_get_file(fn); - if (check_parallel(cg)) return CG_ERROR; + hid_t *dset_id = NULL; + hid_t *mem_type_id = NULL; + hid_t *mem_space_id = NULL; + hid_t *file_space_id = NULL; - if (cgi_check_mode(cg->filename, cg->mode, CG_MODE_WRITE)) - return CG_ERROR; + int status; - zone = cgi_get_zone(cg, B, Z); - if (zone==0) return CG_ERROR; + cg = cgi_get_file(fn); + if (check_parallel(cg)) return CG_ERROR; - zcoor = cgi_get_zcoorGC(cg, B, Z); - if (zcoor==0) return CG_ERROR; + if (cgi_check_mode(cg->filename, cg->mode, CG_MODE_WRITE)) + goto error; - for (n = 0; n < 3; n++) { - if (C[n] > zcoor->ncoords || C[n] <= 0) { - cgi_error("coord number %d invalid",C[n]); - return CG_ERROR; + dset_id = (hid_t *)malloc(nsets*sizeof(hid_t)); + mem_type_id = (hid_t *)malloc(nsets*sizeof(hid_t)); + mem_space_id = (hid_t *)malloc(nsets*sizeof(hid_t)); + file_space_id = (hid_t *)malloc(nsets*sizeof(hid_t)); + + zone = cgi_get_zone(cg, B, Z); + if (zone==0) goto error; + + zcoor = cgi_get_zcoorGC(cg, B, Z); + if (zcoor==0) goto error; + + for (n = 0; n < nsets; n++) { + if (C[n] > zcoor->ncoords || C[n] <= 0) { + cgi_error("coord number %d invalid",C[n]); + goto error; + } } - } - for (n = 0; n < zone->index_dim; n++) { - dims[n] = zone->nijk[n] + zcoor->rind_planes[2*n] + - zcoor->rind_planes[2*n+1]; - if (rmin[n] > rmax[n] || rmin[n] < 1 || rmax[n] > dims[n]) { - cgi_error("Invalid index ranges."); - return CG_ERROR; + for (n = 0; n < zone->index_dim; n++) { + dims[n] = zone->nijk[n] + zcoor->rind_planes[2*n] + + zcoor->rind_planes[2*n+1]; + if (rmin[n] > rmax[n] || rmin[n] < 1 || rmax[n] > dims[n]) { + cgi_error("Invalid index ranges."); + goto error; + } } - } - for (n = 0; n < 3; n++) { - multi_info[n].mem_type_id = cgi_datatype(zcoor->coord[C[n]-1].data_type); - to_HDF_ID(zcoor->coord[C[n]-1].id, hid); - multi_info[n].dset_id = hid; - } + for (n = 0; n < nsets; n++) { + mem_type_id[n] = cgi_datatype(zcoor->coord[C[n]-1].data_type); + to_HDF_ID(zcoor->coord[C[n]-1].id, hid); + dset_id[n] = hid; + } - multi_info[0].u.rbuf = coordsX; - multi_info[1].u.rbuf = coordsY; - multi_info[2].u.rbuf = coordsZ; + cg_rw_ptr_t Data; + Data.u.rbuf = buf; + status = readwrite_multi_data_parallel(nsets, dset_id, mem_type_id, mem_space_id, file_space_id, &Data, + zone->index_dim, rmin, rmax, CG_PAR_READ); - return readwrite_multi_data_parallel(3, multi_info, - zone->index_dim, rmin, rmax, CG_PAR_READ); + return status; + + error: + if(dset_id) + free(dset_id); + if(mem_type_id) + free(mem_type_id); + if(mem_space_id) + free(mem_space_id); + if(file_space_id) + free(file_space_id); + + return CG_ERROR; } /*---------------------------------------------------------*/ int cgp_coord_multi_write_data(int fn, int B, int Z, int *C, const cgsize_t *rmin, const cgsize_t *rmax, - const void *coordsX, const void *coordsY, const void *coordsZ) + int nsets, const void *buf[]) { int n; - cgns_zone *zone; - cgns_zcoor *zcoor; - cgsize_t dims[3]; - cgsize_t index_dim; - CGNS_ENUMT(DataType_t) type[3]; - H5D_rw_multi_t multi_info[3]; hid_t hid; + cgns_zone *zone = NULL; + cgns_zcoor *zcoor = NULL; + cgsize_t dims[3]; + + hid_t *dset_id = NULL; + hid_t *mem_type_id = NULL; + hid_t *mem_space_id = NULL; + hid_t *file_space_id = NULL; + + int status; cg = cgi_get_file(fn); if (check_parallel(cg)) return CG_ERROR; @@ -1796,16 +2223,21 @@ int cgp_coord_multi_write_data(int fn, int B, int Z, int *C, const cgsize_t *rmi if (cgi_check_mode(cg->filename, cg->mode, CG_MODE_WRITE)) return CG_ERROR; + dset_id = (hid_t *)malloc(nsets*sizeof(hid_t)); + mem_type_id = (hid_t *)malloc(nsets*sizeof(hid_t)); + mem_space_id = (hid_t *)malloc(nsets*sizeof(hid_t)); + file_space_id = (hid_t *)malloc(nsets*sizeof(hid_t)); + zone = cgi_get_zone(cg, B, Z); - if (zone==0) return CG_ERROR; + if (zone==0) goto error; zcoor = cgi_get_zcoorGC(cg, B, Z); - if (zcoor==0) return CG_ERROR; + if (zcoor==0) goto error; - for (n = 0; n < 3; n++) { + for (n = 0; n < nsets; n++) { if (C[n] > zcoor->ncoords || C[n] <= 0) { cgi_error("coord number %d invalid",C[n]); - return CG_ERROR; + goto error; } } @@ -1814,35 +2246,52 @@ int cgp_coord_multi_write_data(int fn, int B, int Z, int *C, const cgsize_t *rmi zcoor->rind_planes[2*n+1]; if (rmin[n] > rmax[n] || rmin[n] < 1 || rmax[n] > dims[n]) { cgi_error("Invalid index ranges."); - return CG_ERROR; + goto error; } } - for (n = 0; n < 3; n++) { - multi_info[n].mem_type_id = cgi_datatype(zcoor->coord[C[n]-1].data_type); + for (n = 0; n < nsets; n++) { + mem_type_id[n] = cgi_datatype(zcoor->coord[C[n]-1].data_type); to_HDF_ID(zcoor->coord[C[n]-1].id, hid); - multi_info[n].dset_id = hid; + dset_id[n] = hid; } - multi_info[0].u.wbuf = coordsX; - multi_info[1].u.wbuf = coordsY; - multi_info[2].u.wbuf = coordsZ; + cg_rw_ptr_t Data; + Data.u.wbuf = buf; + status = readwrite_multi_data_parallel(nsets, dset_id, mem_type_id, mem_space_id, file_space_id, &Data, + zone->index_dim, rmin, rmax, CG_PAR_WRITE); + + return status; + + error: + if(dset_id) + free(dset_id); + if(mem_type_id) + free(mem_type_id); + if(mem_space_id) + free(mem_space_id); + if(file_space_id) + free(file_space_id); + + return CG_ERROR; - return readwrite_multi_data_parallel(3, multi_info, - zone->index_dim, rmin, rmax, CG_PAR_WRITE); } /*---------------------------------------------------------*/ -int vcgp_field_multi_write_data(int fn, int B, int Z, int S, int *F, - const cgsize_t *rmin, const cgsize_t *rmax, int nsets, va_list ap) +int cgp_field_multi_write_data(int fn, int B, int Z, int S, int *F, + const cgsize_t *rmin, const cgsize_t *rmax, int nsets, const void *buf[]) { int n, m; hid_t hid; - cgns_array *field; - CGNS_ENUMT(DataType_t) type; - H5D_rw_multi_t *multi_info; + cgns_array *field = NULL; + + hid_t *dset_id = NULL; + hid_t *mem_type_id = NULL; + hid_t *mem_space_id = NULL; + hid_t *file_space_id = NULL; + int status; cg = cgi_get_file(fn); @@ -1851,7 +2300,10 @@ int vcgp_field_multi_write_data(int fn, int B, int Z, int S, int *F, if (cgi_check_mode(cg->filename, cg->mode, CG_MODE_WRITE)) return CG_ERROR; - multi_info = (H5D_rw_multi_t *)malloc(nsets*sizeof(H5D_rw_multi_t)); + dset_id = (hid_t *)malloc(nsets*sizeof(hid_t)); + mem_type_id = (hid_t *)malloc(nsets*sizeof(hid_t)); + mem_space_id = (hid_t *)malloc(nsets*sizeof(hid_t)); + file_space_id = (hid_t *)malloc(nsets*sizeof(hid_t)); for (n = 0; n < nsets; n++) { field = cgi_get_field(cg, B, Z, S, F[n]); @@ -1867,50 +2319,50 @@ int vcgp_field_multi_write_data(int fn, int B, int Z, int S, int *F, } } - multi_info[n].u.wbuf = va_arg(ap, const void *); - - multi_info[n].mem_type_id = cgi_datatype(field->data_type); + mem_type_id[n] = cgi_datatype(field->data_type); to_HDF_ID(field->id,hid); - multi_info[n].dset_id = hid; + dset_id[n] = hid; } - status = readwrite_multi_data_parallel(nsets, multi_info, + cg_rw_ptr_t Data; + Data.u.wbuf = buf; + status = readwrite_multi_data_parallel(nsets, dset_id, mem_type_id, mem_space_id, file_space_id, &Data, field->data_dim, rmin, rmax, CG_PAR_WRITE); - free(multi_info); + free(dset_id); + free(mem_type_id); + free(mem_space_id); + free(file_space_id); return status; error: - if(multi_info) - free(multi_info); + if(dset_id) + free(dset_id); + if(mem_type_id) + free(mem_type_id); + if(mem_space_id) + free(mem_space_id); + if(file_space_id) + free(file_space_id); return CG_ERROR; } -int cgp_field_multi_write_data(int fn, int B, int Z, int S, int *F, - const cgsize_t *rmin, const cgsize_t *rmax, int nsets, ...) -{ - va_list ap; - int status; - va_start(ap, nsets); - status = vcgp_field_multi_write_data(fn, B, Z, S, F, rmin, rmax, nsets, ap); - va_end(ap); - return status; - -} - - /*---------------------------------------------------------*/ -int vcgp_field_multi_read_data(int fn, int B, int Z, int S, int *F, - const cgsize_t *rmin, const cgsize_t *rmax, int nsets, va_list ap) +int cgp_field_multi_read_data(int fn, int B, int Z, int S, int *F, + const cgsize_t *rmin, const cgsize_t *rmax, int nsets, void *buf[]) { int n, m; hid_t hid; - cgns_array *field; - CGNS_ENUMT(DataType_t) type; - H5D_rw_multi_t *multi_info; + cgns_array *field = NULL; + + hid_t *dset_id; + hid_t *mem_type_id; + hid_t *mem_space_id; + hid_t *file_space_id; + int status; cg = cgi_get_file(fn); @@ -1919,7 +2371,10 @@ int vcgp_field_multi_read_data(int fn, int B, int Z, int S, int *F, if (cgi_check_mode(cg->filename, cg->mode, CG_MODE_READ)) return CG_ERROR; - multi_info = (H5D_rw_multi_t *)malloc(nsets*sizeof(H5D_rw_multi_t)); + dset_id = (hid_t *)malloc(nsets*sizeof(hid_t)); + mem_type_id = (hid_t *)malloc(nsets*sizeof(hid_t)); + mem_space_id = (hid_t *)malloc(nsets*sizeof(hid_t)); + file_space_id = (hid_t *)malloc(nsets*sizeof(hid_t)); for (n = 0; n < nsets; n++) { @@ -1935,54 +2390,60 @@ int vcgp_field_multi_read_data(int fn, int B, int Z, int S, int *F, goto error; } } - multi_info[n].u.rbuf = va_arg(ap, void *); - multi_info[n].mem_type_id = cgi_datatype(field->data_type); + mem_type_id[n] = cgi_datatype(field->data_type); to_HDF_ID(field->id,hid); - multi_info[n].dset_id = hid; + dset_id[n] = hid; } - status = readwrite_multi_data_parallel(nsets, multi_info, + cg_rw_ptr_t Data; + Data.u.rbuf = buf; + status = readwrite_multi_data_parallel(nsets, dset_id, mem_type_id, mem_space_id, file_space_id, &Data, field->data_dim, rmin, rmax, CG_PAR_READ); - free(multi_info); + + free(dset_id); + free(mem_type_id); + free(mem_space_id); + free(file_space_id); return status; error: - if(multi_info) - free(multi_info); + if(dset_id) + free(dset_id); + if(mem_type_id) + free(mem_type_id); + if(mem_space_id) + free(mem_space_id); + if(file_space_id) + free(file_space_id); return CG_ERROR; } -int cgp_field_multi_read_data(int fn, int B, int Z, int S, int *F, - const cgsize_t *rmin, const cgsize_t *rmax, int nsets, ...) -{ - va_list ap; - int status; - va_start(ap, nsets); - status = vcgp_field_multi_read_data(fn, B, Z, S, F, rmin, rmax, nsets, ap); - va_end(ap); - return status; - -} - /*---------------------------------------------------------*/ -int vcgp_array_multi_write_data(int fn, int *A, const cgsize_t *rmin, - const cgsize_t *rmax, int nsets, va_list ap) +int cgp_array_multi_write_data(int fn, int *A, const cgsize_t *rmin, + const cgsize_t *rmax, int nsets, const void *buf[]) { int n, m, ierr = 0; hid_t hid; - cgns_array *array; - CGNS_ENUMT(DataType_t) type; - H5D_rw_multi_t *multi_info; + cgns_array *array = NULL; + + hid_t *dset_id; + hid_t *mem_type_id; + hid_t *mem_space_id; + hid_t *file_space_id; + int status; cg = cgi_get_file(fn); if (check_parallel(cg)) return CG_ERROR; - multi_info = (H5D_rw_multi_t *)malloc(nsets*sizeof(H5D_rw_multi_t)); + dset_id = (hid_t *)malloc(nsets*sizeof(hid_t)); + mem_type_id = (hid_t *)malloc(nsets*sizeof(hid_t)); + mem_space_id = (hid_t *)malloc(nsets*sizeof(hid_t)); + file_space_id = (hid_t *)malloc(nsets*sizeof(hid_t)); for (n = 0; n < nsets; n++) { @@ -1999,55 +2460,60 @@ int vcgp_array_multi_write_data(int fn, int *A, const cgsize_t *rmin, } } - multi_info[n].u.wbuf = va_arg(ap, const void *); - - multi_info[n].mem_type_id = cgi_datatype(array->data_type); + mem_type_id[n] = cgi_datatype(array->data_type); to_HDF_ID(array->id, hid); - multi_info[n].dset_id = hid; + dset_id[n] = hid; } - status = readwrite_multi_data_parallel(nsets, multi_info, + cg_rw_ptr_t Data; + Data.u.wbuf = buf; + status = readwrite_multi_data_parallel(nsets, dset_id, mem_type_id, mem_space_id, file_space_id, &Data, array->data_dim, rmin, rmax, CG_PAR_WRITE); - free(multi_info); + free(dset_id); + free(mem_type_id); + free(mem_space_id); + free(file_space_id); return status; error: - if(multi_info) - free(multi_info); - - return CG_ERROR; -} - -int cgp_array_multi_write_data(int fn, int *A, const cgsize_t *rmin, - const cgsize_t *rmax, int nsets, ...) -{ - va_list ap; - int status; - va_start(ap, nsets); - status = vcgp_array_multi_write_data(fn, A, rmin, rmax, nsets, ap); - va_end(ap); - return status; + if(dset_id) + free(dset_id); + if(mem_type_id) + free(mem_type_id); + if(mem_space_id) + free(mem_space_id); + if(file_space_id) + free(file_space_id); + return CG_ERROR; } /*---------------------------------------------------------*/ -int vcgp_array_multi_read_data(int fn, int *A, const cgsize_t *rmin, - const cgsize_t *rmax, int nsets, va_list ap) +int cgp_array_multi_read_data(int fn, int *A, const cgsize_t *rmin, + const cgsize_t *rmax, int nsets, void *buf[]) { int n, m, ierr = 0; hid_t hid; - cgns_array *array; - CGNS_ENUMT(DataType_t) type; - H5D_rw_multi_t *multi_info; + cgns_array *array = NULL; + + hid_t *dset_id; + hid_t *mem_type_id; + hid_t *mem_space_id; + hid_t *file_space_id; + int status; cg = cgi_get_file(fn); if (check_parallel(cg)) return CG_ERROR; - multi_info = (H5D_rw_multi_t *)malloc(nsets*sizeof(H5D_rw_multi_t)); + + dset_id = (hid_t *)malloc(nsets*sizeof(hid_t)); + mem_type_id = (hid_t *)malloc(nsets*sizeof(hid_t)); + mem_space_id = (hid_t *)malloc(nsets*sizeof(hid_t)); + file_space_id = (hid_t *)malloc(nsets*sizeof(hid_t)); for (n = 0; n < nsets; n++) { @@ -2063,36 +2529,159 @@ int vcgp_array_multi_read_data(int fn, int *A, const cgsize_t *rmin, goto error; } } - multi_info[n].u.rbuf = va_arg(ap, void *); - multi_info[n].mem_type_id = cgi_datatype(array->data_type); + mem_type_id[n] = cgi_datatype(array->data_type); to_HDF_ID(array->id, hid); - multi_info[n].dset_id = hid; + dset_id[n] = hid; } - status = readwrite_multi_data_parallel(nsets, multi_info, + + cg_rw_ptr_t Data; + Data.u.rbuf = buf; + status = readwrite_multi_data_parallel(nsets, dset_id, mem_type_id, mem_space_id, file_space_id, &Data, array->data_dim, rmin, rmax, CG_PAR_READ); - free(multi_info); + free(dset_id); + free(mem_type_id); + free(mem_space_id); + free(file_space_id); return status; error: - if(multi_info) - free(multi_info); + if(dset_id) + free(dset_id); + if(mem_type_id) + free(mem_type_id); + if(mem_space_id) + free(mem_space_id); + if(file_space_id) + free(file_space_id); return CG_ERROR; } -int cgp_array_multi_read_data(int fn, int *A, const cgsize_t *rmin, - const cgsize_t *rmax, int nsets, ...) +/*===== PointList Functions =============================*/ + +/** + * \ingroup PointListData + * + * \brief Write index array to PointList in parallel. + * + * \details Must use functions in @ref AccessingANode to point to a PointSet to read from + * + * \param[in] file_number \FILE_fn + * \param[in] rmin Lower range index in file + * \param[in] rmax Upper range index in file + * \param[in] points Array of points + * \return \ier + */ +int cgp_ptlist_write_data(int file_number, cgsize_t rmin, + cgsize_t end, const cgsize_t *points) { - va_list ap; - int status; - va_start(ap, nsets); - status = vcgp_array_multi_read_data(fn, A, rmin, rmax, nsets, ap); - va_end(ap); - return status; + hid_t hid; + cgns_ptset *ptset; + cgsize_t range_min[2], range_max[2]; + CGNS_ENUMT(DataType_t) type; + + /* get memory address of file */ + cg = cgi_get_file(file_number); + if (check_parallel(cg)) return CG_ERROR; + + if (cgi_check_mode(cg->filename, cg->mode, CG_MODE_WRITE)) + return CG_ERROR; + + if (posit == 0) { + cgi_error("No current position set by cg_goto\n"); + return CG_ERROR; + } + else if (strcmp(posit->label, "IndexArray_t") == 0) { + ptset = (cgns_ptset *) posit->posit; + } else { + cgi_error("Goto not pointing to IndexArray_t, but %s\n", posit->label); + return CG_ERROR; + } + + if (points) { + if (rmin > end || + rmin < 1 || + end > ptset->npts) { + cgi_error("Error in requested point set range."); + return CG_ERROR; + } + } + + range_min[0] = 1; + range_max[0] = 1; + range_min[1] = rmin; + range_max[1] = end; + type = cgi_datatype(ptset->data_type); + to_HDF_ID(ptset->id, hid); + + cg_rw_t Data; + Data.u.wbuf = points; + return readwrite_data_parallel(hid, type, + 2, range_min, range_max, &Data, CG_PAR_WRITE); } -#endif +/** + * \ingroup PointListData + * + * \brief Read index array to PointList in parallel. + * + * \details Must use functions in @ref AccessingANode to point to a PointSet to read from + * + * \param[in] file_number \FILE_fn + * \param[in] rmin Lower range index in file + * \param[in] rmax Upper range index in file + * \param[in] points Array of points + * \return \ier + */ +int cgp_ptlist_read_data(int file_number, cgsize_t rmin, cgsize_t rmax, cgsize_t *points) +{ + hid_t hid; + cgns_ptset *ptset; + cgsize_t range_min[2], range_max[2]; + CGNS_ENUMT(DataType_t) type; + + /* get memory address of file */ + cg = cgi_get_file(file_number); + if (check_parallel(cg)) return CG_ERROR; + + if (cgi_check_mode(cg->filename, cg->mode, CG_MODE_READ)) + return CG_ERROR; + + if (posit == 0) { + cgi_error("No current position set by cg_goto\n"); + return CG_ERROR; + } + else if (strcmp(posit->label, "IndexArray_t") == 0) { + ptset = (cgns_ptset *) posit->posit; + } else { + cgi_error("Goto not pointing to IndexArray_t, but %s\n", posit->label); + return CG_ERROR; + } + + if (points) { + if (rmin > rmax || + rmin < 1 || + rmax > ptset->npts) { + cgi_error("Error in requested point set range."); + return CG_ERROR; + } + } + + range_min[0] = 1; + range_max[0] = 1; + range_min[1] = rmin; + range_max[1] = rmax; + type = cgi_datatype(ptset->data_type); + + to_HDF_ID(ptset->id, hid); + + cg_rw_t Data; + Data.u.rbuf = points; + return readwrite_data_parallel(hid, type, + 2, range_min, range_max, &Data, CG_PAR_READ); +} +/*---------------------------------------------------------*/ diff --git a/externals/cgns/pcgnslib.h b/externals/cgns/pcgnslib.h index 5f96aa6bb5e..542b0a73e2b 100644 --- a/externals/cgns/pcgnslib.h +++ b/externals/cgns/pcgnslib.h @@ -78,10 +78,10 @@ CGNSDLL int cgp_coord_general_read_data(int fn, int B, int Z, int C, const cgsize_t *m_rmin, const cgsize_t *m_rmax, void *coords); CGNSDLL int cgp_coord_multi_read_data(int fn, int B, int Z, int *C, const cgsize_t *rmin, const cgsize_t *rmax, - void *coordsX, void *coordsY, void *coordsZ); + int nsets, void **buf); CGNSDLL int cgp_coord_multi_write_data(int fn, int B, int Z, int *C, const cgsize_t *rmin, const cgsize_t *rmax, - const void *coordsX, const void *coordsY, const void *coordsZ); + int nsets, const void **buf); /*===== Unstructured Grid Prototypes =====*/ @@ -123,11 +123,12 @@ CGNSDLL int cgp_field_general_read_data(int fn, int B, int Z, int S, int F, int m_numdim, const cgsize_t *m_arg_dimvals, const cgsize_t *m_rmin, const cgsize_t *m_rmax, void *data); + CGNSDLL int cgp_field_multi_read_data(int fn, int B, int Z, int S, int *F, - const cgsize_t *rmin, const cgsize_t *rmax, int nsets, ...); + const cgsize_t *rmin, const cgsize_t *rmax, int nsets, void **buf); CGNSDLL int cgp_field_multi_write_data(int fn, int B, int Z, int S, int *F, - const cgsize_t *rmin, const cgsize_t *rmax, int nsets, ...); + const cgsize_t *rmin, const cgsize_t *rmax, int nsets, const void **buf); /*===== Array IO Prototypes =====*/ @@ -150,10 +151,16 @@ CGNSDLL int cgp_array_general_read_data(int A, const cgsize_t *m_rmin, const cgsize_t *m_rmax, void *data); CGNSDLL int cgp_array_multi_write_data(int fn, int *A, const cgsize_t *rmin, - const cgsize_t *rmax, int nsets, ...); + const cgsize_t *rmax, int nsets, const void **buf); CGNSDLL int cgp_array_multi_read_data(int fn, int *A, const cgsize_t *rmin, - const cgsize_t *rmax, int nsets, ...); + const cgsize_t *rmax, int nsets, void **buf); + + +/*===== PointList Prototypes =====*/ +CGNSDLL int cgp_ptlist_write_data(int file_number, cgsize_t start, + cgsize_t end, const cgsize_t *points); +CGNSDLL int cgp_ptlist_read_data(int file_number, cgsize_t start, cgsize_t end, cgsize_t *points); /*===== exit with error and call MPI_Abort =====*/ diff --git a/externals/codi b/externals/codi index 8ee822a9b0b..9ca6c382806 160000 --- a/externals/codi +++ b/externals/codi @@ -1 +1 @@ -Subproject commit 8ee822a9b0bb8235a2494467b774e27fb64ff14f +Subproject commit 9ca6c38280610b3ea5337ca3e5b5085ee1c66b59 diff --git a/externals/medi b/externals/medi index aafc2d1966b..ab3a7688f6d 160000 --- a/externals/medi +++ b/externals/medi @@ -1 +1 @@ -Subproject commit aafc2d1966ba1233640af737e71c77c1a86183fd +Subproject commit ab3a7688f6d518f8d940eb61a341d89f51922ba4 diff --git a/externals/mel b/externals/mel index 2484cd3258e..46205ab019e 160000 --- a/externals/mel +++ b/externals/mel @@ -1 +1 @@ -Subproject commit 2484cd3258ef800a10e361016cb341834ee7930b +Subproject commit 46205ab019e5224559091375a6d71aabae6bc5b9 diff --git a/externals/opdi b/externals/opdi index c42cca71a3d..8c897988172 160000 --- a/externals/opdi +++ b/externals/opdi @@ -1 +1 @@ -Subproject commit c42cca71a3d0b44fb482e268ecd40b623e71776b +Subproject commit 8c89798817253abb017d857a0ae7f0520187645c diff --git a/meson.build b/meson.build index 5dcd4154fbb..66dde2dfc9d 100644 --- a/meson.build +++ b/meson.build @@ -1,5 +1,5 @@ project('SU2', 'c', 'cpp', - version: '8.0.0 "Harrier"', + version: '8.0.1 "Harrier"', meson_version: '>=0.61.1', license: 'LGPL2', default_options: ['buildtype=release', @@ -326,7 +326,7 @@ endif message('''------------------------------------------------------------------------- | ___ _ _ ___ | - | / __| | | |_ ) Release 8.0.0 "Harrier" | + | / __| | | |_ ) Release 8.0.1 "Harrier" | | \__ \ |_| |/ / | | |___/\___//___| Meson Configuration Summary | | | diff --git a/meson.py b/meson.py index 14c39f67fc6..6c6cd2d6cf5 100755 --- a/meson.py +++ b/meson.py @@ -3,14 +3,14 @@ ## \file meson.py # \brief An extended meson script for setting up the environment and running meson # \author T. Albring and F. Poli -# \version 8.0.0 "Harrier" +# \version 8.0.1 "Harrier" # # SU2 Project Website: https://su2code.github.io # # The SU2 Project is maintained by the SU2 Foundation # (http://su2foundation.org) # -# Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) +# Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) # # SU2 is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public diff --git a/meson_scripts/init.py b/meson_scripts/init.py index d71785b693f..b347432f473 100755 --- a/meson_scripts/init.py +++ b/meson_scripts/init.py @@ -4,14 +4,14 @@ # \brief Initializes necessary dependencies for SU2 either using git or it # fetches zip files. # \author T. Albring and F. Poli -# \version 8.0.0 "Harrier" +# \version 8.0.1 "Harrier" # # SU2 Project Website: https://su2code.github.io # # The SU2 Project is maintained by the SU2 Foundation # (http://su2foundation.org) # -# Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) +# Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) # # SU2 is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public @@ -55,11 +55,11 @@ def init_submodules( # This information of the modules is used if projects was not cloned using git # The sha tag must be maintained manually to point to the correct commit - sha_version_codi = "8ee822a9b0bb8235a2494467b774e27fb64ff14f" + sha_version_codi = "9ca6c38280610b3ea5337ca3e5b5085ee1c66b59" github_repo_codi = "https://github.com/scicompkl/CoDiPack" - sha_version_medi = "aafc2d1966ba1233640af737e71c77c1a86183fd" + sha_version_medi = "ab3a7688f6d518f8d940eb61a341d89f51922ba4" github_repo_medi = "https://github.com/SciCompKL/MeDiPack" - sha_version_opdi = "c42cca71a3d0b44fb482e268ecd40b623e71776b" + sha_version_opdi = "8c89798817253abb017d857a0ae7f0520187645c" github_repo_opdi = "https://github.com/SciCompKL/OpDiLib" sha_version_meson = "41c650a040d50e0912d268af7a903a9ce1456dfa" github_repo_meson = "https://github.com/mesonbuild/meson" @@ -67,9 +67,9 @@ def init_submodules( github_repo_ninja = "https://github.com/ninja-build/ninja" sha_version_mpp = "5ff579f43781cae07411e5ab46291c9971536be6" github_repo_mpp = "https://github.com/mutationpp/Mutationpp" - sha_version_coolprop = "0ce42fcf3bb2c373512bc825a4f0c1973a78f307" + sha_version_coolprop = "bafdea1f39ee873a6bb9833e3a21fe41f90b85e8" github_repo_coolprop = "https://github.com/CoolProp/CoolProp" - sha_version_mel = "2484cd3258ef800a10e361016cb341834ee7930b" + sha_version_mel = "46205ab019e5224559091375a6d71aabae6bc5b9" github_repo_mel = "https://github.com/pcarruscag/MEL" sha_version_mlpcpp = "665c45b7d3533c977eb1f637918d5b8b75c07d3b" github_repo_mlpcpp = "https://github.com/EvertBunschoten/MLPCpp" @@ -218,7 +218,7 @@ def submodule_status(path, sha_commit): cwd=sys.path[0], ) # to update CoolProp external libraries - if sha_commit == "0ce42fcf3bb2c373512bc825a4f0c1973a78f307": + if "CoolProp" in path: # update coolprop original_path = os.getcwd() print("update CoolProp") diff --git a/preconfigure.py b/preconfigure.py index a65d1636bd1..fa64e336e74 100755 --- a/preconfigure.py +++ b/preconfigure.py @@ -3,14 +3,14 @@ ## \file preconfigure.py # \brief An preconfigure script for setting up the build environment # \author T. Albring and F. Poli -# \version 8.0.0 "Harrier" +# \version 8.0.1 "Harrier" # # SU2 Project Website: https://su2code.github.io # # The SU2 Project is maintained by the SU2 Foundation # (http://su2foundation.org) # -# Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) +# Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md) # # SU2 is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public diff --git a/su2omp.syntax.json b/su2omp.syntax.json index 72b4dee1a92..1768cb25fb9 100644 --- a/su2omp.syntax.json +++ b/su2omp.syntax.json @@ -4,14 +4,14 @@ "\\file su2omp.syntax.json", "\\brief Definitions for the OpDiLib syntax checker", "\\author J. Blühdorn", - "\\version 8.0.0 \"Harrier\"", + "\\version 8.0.1 \"Harrier\"", "SU2 Project Website: https://su2code.github.io", "The SU2 Project is maintained by the SU2 Foundation ", "(http://su2foundation.org)", - "Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)", + "Copyright 2012-2024, SU2 Contributors (cf. AUTHORS.md)", "SU2 is free software; you can redistribute it and/or", "modify it under the terms of the GNU Lesser General Public", diff --git a/subprojects/CoolProp b/subprojects/CoolProp index 0ce42fcf3bb..bafdea1f39e 160000 --- a/subprojects/CoolProp +++ b/subprojects/CoolProp @@ -1 +1 @@ -Subproject commit 0ce42fcf3bb2c373512bc825a4f0c1973a78f307 +Subproject commit bafdea1f39ee873a6bb9833e3a21fe41f90b85e8