31#include "../variables/CHeatVariable.hpp"
64 unsigned short iMarker,
unsigned long iVertex,
const su2double& temperature) {
66 const auto iPoint = geometry->
vertex[iMarker][iVertex]->
GetNode();
78 const auto* Coord_j = geometry->
nodes->
GetCoord(Point_Normal);
83 su2double thermal_diffusivity = const_diffusivity;
88 LinSysRes(iPoint, 0) -= thermal_diffusivity * dTdn * Area;
116 unsigned short iMesh,
117 unsigned short iRKStep,
118 unsigned short RunTime_EqSystem,
119 bool Output)
override;
133 bool val_update_geo)
override;
147 unsigned short iMesh)
override;
155 unsigned short val_marker);
165 unsigned short iMesh,
166 unsigned short iRKStep)
override;
177 CConfig *config,
unsigned short iMesh)
override ;
196 unsigned short val_marker)
override;
212 unsigned short val_marker)
override;
228 unsigned short val_marker)
override;
243 unsigned short val_marker)
override;
259 unsigned short val_marker)
override;
285 unsigned short val_marker)
override;
294 unsigned long val_vertex,
295 unsigned short pos_var)
const override {
308 unsigned long val_vertex,
309 unsigned short pos_var,
312 ConjugateVar[val_marker][val_vertex][pos_var] = relaxation_factor*val_var + (1.0-relaxation_factor)*
ConjugateVar[val_marker][val_vertex][pos_var];
372 unsigned short iMesh,
373 unsigned long Iteration)
override;
385 unsigned long TimeIter)
override;
399 unsigned short iRKStep,
400 unsigned short iMesh,
401 unsigned short RunTime_EqSystem)
override;
410 return HeatFlux[val_marker][val_vertex];
Headers of the CScalarSolver class.
Main class for defining the problem; basically this class reads the configuration file,...
Definition CConfig.hpp:64
su2double GetThermalDiffusivity(void) const
Get the value of the thermal diffusivity for solids.
Definition CConfig.hpp:1936
su2double GetWeight_ObjFunc(unsigned short val_obj) const
Get the weight of objective function. There are several options: Drag coefficient,...
Definition CConfig.hpp:5615
unsigned short GetKind_ObjFunc(unsigned short val_obj=0) const
Get the kind of objective function. There are several options: Drag coefficient, Lift coefficient,...
Definition CConfig.hpp:5606
unsigned short GetKind_TimeIntScheme(void) const
Get the kind of time integration method.
Definition CConfig.hpp:4732
Parent class for defining the geometry of the problem (complete geometry, multigrid agglomerated geom...
Definition CGeometry.hpp:75
CPoint * nodes
Node vector (dual grid information).
Definition CGeometry.hpp:253
CVertex *** vertex
Boundary Vertex vector (dual grid information).
Definition CGeometry.hpp:255
Main class for defining the finite-volume heat solver.
Definition CHeatSolver.hpp:39
void LoadRestart(CGeometry **geometry, CSolver ***solver, CConfig *config, int val_iter, bool val_update_geo) override
Load a solution from a restart file.
Definition CHeatSolver.cpp:205
void SetConjugateHeatVariable(unsigned short val_marker, unsigned long val_vertex, unsigned short pos_var, su2double relaxation_factor, su2double val_var) override
Set the conjugate heat variables.
Definition CHeatSolver.hpp:307
su2double GetTotal_HeatFlux() const override
Get value of the heat load (integrated heat flux).
Definition CHeatSolver.hpp:330
su2double Total_HeatFlux_Areas_Monitor
Definition CHeatSolver.hpp:57
void SetInitialCondition(CGeometry **geometry, CSolver ***solver_container, CConfig *config, unsigned long TimeIter) override
Set the initial condition for the FEM structural problem.
Definition CHeatSolver.cpp:927
su2double GetTotal_AvgTemperature() const override
Get value of the integral-averaged temperature.
Definition CHeatSolver.hpp:336
void Viscous_Residual(CGeometry *geometry, CSolver **solver_container, CNumerics **numerics_container, CConfig *config, unsigned short iMesh, unsigned short iRKStep) override
Diffusion for solid conduction, called unconditionally unlike Upwind_Residual. A no-op for a fluid zo...
Definition CHeatSolver.cpp:316
void SetResidual_DualTime(CGeometry *geometry, CSolver **solver_container, CConfig *config, unsigned short iRKStep, unsigned short iMesh, unsigned short RunTime_EqSystem) override
Set the total residual adding the term that comes from the Dual Time-Stepping Strategy.
Definition CHeatSolver.cpp:975
su2double Total_HeatFlux_Areas
Definition CHeatSolver.hpp:56
void BC_Inlet(CGeometry *geometry, CSolver **solver_container, CNumerics *conv_numerics, CNumerics *visc_numerics, CConfig *config, unsigned short val_marker) override
Impose the inlet boundary condition.
Definition CHeatSolver.cpp:452
const bool flow
Use solver as a scalar transport equation of Temperature for the inc solver.
Definition CHeatSolver.hpp:44
void BC_Far_Field(CGeometry *geometry, CSolver **solver_container, CNumerics *conv_numerics, CNumerics *visc_numerics, CConfig *config, unsigned short val_marker) override
Impose the far-field boundary condition.
Definition CHeatSolver.cpp:500
void Heat_Fluxes(CGeometry *geometry, CSolver **solver_container, CConfig *config) override
Evaluate heat-flux related objectives.
Definition CHeatSolver.cpp:602
void SetTime_Step(CGeometry *geometry, CSolver **solver_container, CConfig *config, unsigned short iMesh, unsigned long Iteration) override
A virtual member.
Definition CHeatSolver.cpp:716
void Source_Residual(CGeometry *geometry, CSolver **solver_container, CNumerics **numerics_container, CConfig *config, unsigned short iMesh) override
Source term computation.
Definition CHeatSolver.cpp:331
void BC_ConjugateHeat_Interface(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config, unsigned short val_marker) override
Impose the (received) conjugate heat variables.
Definition CHeatSolver.cpp:537
void BC_Fluid_Interface(CGeometry *geometry, CSolver **solver_container, CNumerics *conv_numerics, CNumerics *visc_numerics, CConfig *config) override
Impose the fluid interface (sliding mesh) boundary condition, via the CScalarFlux_Heat edge kernel.
Definition CHeatSolver.cpp:518
su2double GetHeatFlux(unsigned short val_marker, unsigned long val_vertex) const override
Get the heat flux.
Definition CHeatSolver.hpp:409
static constexpr size_t MAXNVAR
Max number of variables, for static arrays.
Definition CHeatSolver.hpp:42
su2double Total_HeatFlux
Definition CHeatSolver.hpp:50
void Upwind_Residual(CGeometry *geometry, CSolver **solver_container, CNumerics **numerics_container, CConfig *config, unsigned short iMesh) override
Compute the spatial integration using a upwind scheme.
Definition CHeatSolver.cpp:295
su2double Global_Delta_Time
Definition CHeatSolver.hpp:46
void Preprocessing(CGeometry *geometry, CSolver **solver_container, CConfig *config, unsigned short iMesh, unsigned short iRKStep, unsigned short RunTime_EqSystem, bool Output) override
Restart residual and compute gradients.
Definition CHeatSolver.cpp:185
void Evaluate_ObjFunc(const CConfig *config, CSolver **) override
Compute objective output.
Definition CHeatSolver.hpp:343
void BC_Isothermal_Wall(CGeometry *geometry, CSolver **solver_container, CNumerics *conv_numerics, CNumerics *visc_numerics, CConfig *config, unsigned short val_marker) override
Impose the Navier-Stokes boundary condition (strong).
Definition CHeatSolver.cpp:406
static constexpr size_t MAXNDIM
Max number of space dimensions, used in some static arrays.
Definition CHeatSolver.hpp:41
su2double AllBound_AverageT
Definition CHeatSolver.hpp:54
vector< vector< su2double > > HeatFlux
Definition CHeatSolver.hpp:48
void Set_Heatflux_Areas(CGeometry *geometry, CConfig *config) override
A virtual member.
Definition CHeatSolver.cpp:346
su2double Total_AverageT
Definition CHeatSolver.hpp:53
su2double AllBound_HeatFlux
Definition CHeatSolver.hpp:51
vector< su2double > AverageT_per_Marker
Definition CHeatSolver.hpp:52
su2double Global_Delta_UnstTimeND
Definition CHeatSolver.hpp:46
vector< su2double > HeatFlux_per_Marker
Definition CHeatSolver.hpp:49
void BC_Outlet(CGeometry *geometry, CSolver **solver_container, CNumerics *conv_numerics, CNumerics *visc_numerics, CConfig *config, unsigned short val_marker) override
Impose the outlet boundary condition.
Definition CHeatSolver.cpp:480
void BoundaryFlux(CGeometry *geometry, CSolver **solver_container, CConfig *config, const ScalarFluxOptions &opt, unsigned short val_marker)
Resolve the compile-time parameters of CScalarFlux_Heat and run one of this solver's boundaries throu...
Definition CHeatSolver.cpp:309
void BC_HeatFlux_Wall(CGeometry *geometry, CSolver **solver_container, CNumerics *conv_numerics, CNumerics *visc_numerics, CConfig *config, unsigned short val_marker) override
Impose a constant heat-flux condition at the wall.
Definition CHeatSolver.cpp:424
su2double GetConjugateHeatVariable(unsigned short val_marker, unsigned long val_vertex, unsigned short pos_var) const override
Set the conjugate heat variables.
Definition CHeatSolver.hpp:293
void IsothermalBoundaryCondition(CGeometry *geometry, CSolver *flow_solver, const CConfig *config, unsigned short iMarker, unsigned long iVertex, const su2double &temperature)
Applies an isothermal condition to a vertex of a marker.
Definition CHeatSolver.hpp:63
vector< su2double > Surface_Areas
Definition CHeatSolver.hpp:55
vector< su2activematrix > ConjugateVar
Definition CHeatSolver.hpp:58
su2double GetTemperature(unsigned long iPoint) const final
Get the temperature of the point.
Definition CHeatVariable.hpp:56
Class for defining the numerical methods.
Definition CNumerics.hpp:48
bool GetDomain(unsigned long iPoint) const
For parallel computation, its indicates if a point must be computed or not.
Definition CPoint.hpp:423
su2double GetCoord(unsigned long iPoint, unsigned long iDim) const
Get the coordinates dor the control volume.
Definition CPoint.hpp:158
Main class for defining a scalar solver.
Definition CScalarSolver.hpp:59
CHeatVariable * nodes
The highest level in the variable hierarchy this solver can safely use.
Definition CScalarSolver.hpp:112
Definition CSolver.hpp:71
CSysMatrix< su2mixedfloat > Jacobian
Complete sparse Jacobian structure for implicit computations.
Definition CSolver.hpp:201
unsigned short nDim
Number of dimensions of the problem.
Definition CSolver.hpp:90
su2double ** Jacobian_i
Auxiliary matrices for storing point to point Jacobians at point i.
Definition CSolver.hpp:128
su2double Total_Custom_ObjFunc
Total custom objective function.
Definition CSolver.hpp:107
CSysVector< su2double > LinSysRes
vector to store iterative residual of implicit linear system.
Definition CSolver.hpp:200
su2double Total_ComboObj
Total 'combo' objective for all monitored boundaries.
Definition CSolver.hpp:108
CVariable * GetNodes()
Allow outside access to the nodes of the solver, containing conservatives, primitives,...
Definition CSolver.hpp:229
void SubtractBlock2Diag(unsigned long block_i, const OtherType &val_block)
Short-hand to AddBlock2Diag with alpha = -1, i.e. subtracts from the current diagonal.
Definition CSysMatrix.hpp:1226
virtual su2double GetThermalConductivity(unsigned long iPoint) const
A virtual member.
Definition CVariable.hpp:1166
virtual su2double GetSpecificHeatCp(unsigned long iPoint) const
A virtual member.
Definition CVariable.hpp:1180
void GetNormal(su2double *val_normal) const override
Copy the the normal vector of a face.
Definition CVertex.hpp:94
unsigned long GetNode() const
Get the node of the vertex.
Definition CVertex.hpp:70
unsigned long GetNormal_Neighbor() const
Get the value of the closest neighbor.
Definition CVertex.hpp:322
passivedouble su2double
Definition code_config.hpp:181
@ EULER_IMPLICIT
Implicit Euler time integration definition.
Definition option_structure.hpp:1711
@ TOTAL_HEATFLUX
Total heat flux.
Definition option_structure.hpp:2231
@ AVG_TEMPERATURE
Total averaged temperature.
Definition option_structure.hpp:2233
@ CUSTOM_OBJFUNC
Custom objective function definition.
Definition option_structure.hpp:2258
Loop invariant flags for a scalar edge flux, built once outside the edge loop so the compiler can uns...
Definition scalar_edge_flux.hpp:55