Ice Sheet System Model  4.18
Code documentation
Functions
thermal_core.cpp File Reference

: core of the thermal solution More...

#include "./cores.h"
#include "../toolkits/toolkits.h"
#include "../classes/classes.h"
#include "../analyses/analyses.h"
#include "../shared/shared.h"
#include "../modules/modules.h"
#include "../solutionsequences/solutionsequences.h"

Go to the source code of this file.

Functions

void thermal_core (FemModel *femmodel)
 

Detailed Description

: core of the thermal solution

Definition in file thermal_core.cpp.

Function Documentation

◆ thermal_core()

void thermal_core ( FemModel femmodel)

Definition at line 13 of file thermal_core.cpp.

13  {
14 
15  /*Start profiler*/
17 
18  /*intermediary*/
19  bool save_results,isenthalpy;
20  bool dakota_analysis;
21  int solution_type,numoutputs;
22  char** requested_outputs = NULL;
23  EnthalpyAnalysis * enthalpy_analysis = NULL;
24 
25  /*first recover parameters common to all solutions*/
30  if(numoutputs) femmodel->parameters->FindParam(&requested_outputs,&numoutputs,ThermalRequestedOutputsEnum);
31 
32  /*Calculate geothermalflux*/
34 
35  if(isenthalpy){
37  enthalpy_analysis = new EnthalpyAnalysis();
38  enthalpy_analysis->Core(femmodel);
39  delete enthalpy_analysis;
40  }
41  else{
42  if(VerboseSolution()) _printf0_(" computing temperatures\n");
45 
46  if(VerboseSolution()) _printf0_(" computing melting\n");
49  }
50 
51  if(save_results){
52  if(VerboseSolution()) _printf0_(" saving thermal results\n");
53  femmodel->RequestedOutputsx(&femmodel->results,requested_outputs,numoutputs);
54  }
55 
56  /*Free ressources:*/
57  if(numoutputs){for(int i=0;i<numoutputs;i++){xDelete<char>(requested_outputs[i]);} xDelete<char*>(requested_outputs);}
58 
59  /*End profiler*/
61 }
SaveResultsEnum
@ SaveResultsEnum
Definition: EnumDefinitions.h:302
ThermalRequestedOutputsEnum
@ ThermalRequestedOutputsEnum
Definition: EnumDefinitions.h:424
_printf0_
#define _printf0_(StreamArgs)
Definition: Print.h:29
FemModel::InputMakeDiscontinuous
void InputMakeDiscontinuous(int enum_in)
Definition: FemModel.cpp:1611
FemModel::parameters
Parameters * parameters
Definition: FemModel.h:46
ThermalNumRequestedOutputsEnum
@ ThermalNumRequestedOutputsEnum
Definition: EnumDefinitions.h:419
FemModel::results
Results * results
Definition: FemModel.h:48
GeothermalFluxx
void GeothermalFluxx(FemModel *femmodel)
Definition: GeothermalFluxx.cpp:9
EnthalpyAnalysis
Definition: EnthalpyAnalysis.h:12
solutionsequence_linear
void solutionsequence_linear(FemModel *femmodel)
Definition: solutionsequence_linear.cpp:10
MeltingAnalysisEnum
@ MeltingAnalysisEnum
Definition: EnumDefinitions.h:1182
BasalforcingsGroundediceMeltingRateEnum
@ BasalforcingsGroundediceMeltingRateEnum
Definition: EnumDefinitions.h:478
ThermalIsenthalpyEnum
@ ThermalIsenthalpyEnum
Definition: EnumDefinitions.h:417
solutionsequence_thermal_nonlinear
void solutionsequence_thermal_nonlinear(FemModel *femmodel)
Definition: solutionsequence_thermal_nonlinear.cpp:11
SolutionTypeEnum
@ SolutionTypeEnum
Definition: EnumDefinitions.h:398
THERMALCORE
#define THERMALCORE
Definition: Profiler.h:18
Profiler::Stop
void Stop(int tagenum, bool dontmpisync=true)
Definition: Profiler.cpp:179
ThermalAnalysisEnum
@ ThermalAnalysisEnum
Definition: EnumDefinitions.h:1302
EnthalpyAnalysis::Core
void Core(FemModel *femmodel)
Definition: EnthalpyAnalysis.cpp:531
Profiler::Start
void Start(int tagenum, bool dontmpisync=true)
Definition: Profiler.cpp:139
VerboseSolution
bool VerboseSolution(void)
Definition: Verbosity.cpp:24
FemModel::RequestedOutputsx
void RequestedOutputsx(Results **presults, char **requested_outputs, int numoutputs, bool save_results=true)
Definition: FemModel.cpp:2267
FemModel::SetCurrentConfiguration
void SetCurrentConfiguration(int configuration_type)
Definition: FemModel.cpp:634
Parameters::FindParam
void FindParam(bool *pinteger, int enum_type)
Definition: Parameters.cpp:262
FemModel::profiler
Profiler * profiler
Definition: FemModel.h:42
femmodel
FemModel * femmodel
Definition: esmfbinders.cpp:16