 |
Ice Sheet System Model
4.18
Code documentation
|
Go to the source code of this file.
◆ transient_core()
void transient_core |
( |
FemModel * |
femmodel | ) |
|
Definition at line 19 of file transient_core.cpp.
23 bool isstressbalance,ismasstransport,issmb,isFS,isthermal,isgroundingline,isgia,isesa,isslr,iscoupler,ismovingfront,isdamageevolution,ishydrology,isoceancoupling,iscontrol,isautodiff;
24 bool save_results,dakota_analysis;
27 int sb_coupling_frequency;
28 int recording_frequency;
29 int domaintype,groundingline_migration,smb_model,amr_frequency,amr_restart;
32 char **requested_outputs = NULL;
74 #if defined(_HAVE_BAMG_) && !defined(_HAVE_AD_)
81 #if defined(_HAVE_OCEAN_ )
88 DataSet* dependent_objects=NULL;
91 if(iscontrol && isautodiff){
98 dependents=xNew<IssmPDouble>(num_dependents);
103 while(time < finaltime - (yts*DBL_EPSILON)){
106 switch(timestepping){
109 if(time+dt>finaltime) dt=finaltime-time;
123 if(
VerboseSolution())
_printf0_(
"iteration " << step <<
"/" << ceil((finaltime-time)/dt)+step <<
" time [yr]: " << setprecision(4) << time/yts <<
" (time step: " << dt/yts <<
")\n");
124 if(step%output_frequency==0 || (time >= finaltime - (yts*DBL_EPSILON)) || step==1)
130 #if defined(_HAVE_OCEAN_ )
168 if(isstressbalance && (step%sb_coupling_frequency==0 || step==1) ) {
173 if(isdamageevolution) {
222 _error_(
"ISSM was not compiled with gia capabilities. Exiting");
245 if(recording_frequency && (step%recording_frequency==0)){
253 #if !defined(_HAVE_AD_)
255 if(step%amr_frequency==0 && time<finaltime){
261 _error_(
"AMR not suppored with AD");
265 if (iscontrol && isautodiff) {
267 for(
int i=0;i<dependent_objects->
Size();i++){
279 if(numoutputs){
for(
int i=0;i<numoutputs;i++){xDelete<char>(requested_outputs[i]);} xDelete<char*>(requested_outputs);}
@ TimesteppingFinalTimeEnum
void movingfront_core(FemModel *femmodel)
@ TransientNumRequestedOutputsEnum
@ TransientIsmasstransportEnum
void OutputResultsx(FemModel *femmodel)
void extrudefrombase_core(FemModel *femmodel)
@ AutodiffDependentObjectsEnum
@ GroundinglineMigrationEnum
#define _printf0_(StreamArgs)
@ TransientRequestedOutputsEnum
void thermal_core(FemModel *femmodel)
@ TimesteppingTimeStepEnum
@ AdaptiveTimesteppingEnum
#define GROUNDINGLINECORE
void OceanExchangeDatax(FemModel *femmodel, bool init_stage)
@ SettingsSbCouplingFrequencyEnum
void esa_core(FemModel *femmodel)
void TimeAdaptx(IssmDouble *pdt)
@ TransientIsgroundinglineEnum
void RequestedDependentsx(void)
void ResetBoundaryConditions(FemModel *femmodel, int analysis_type)
void hydrology_core(FemModel *femmodel)
void AddValue(IssmDouble in_value)
void sealevelrise_core_geometry(FemModel *femmodel)
void SetParam(bool boolean, int enum_type)
void sealevelchange_core(FemModel *femmodel)
const char * EnumToStringx(int enum_in)
void smb_core(FemModel *femmodel)
@ TransientIsoceancouplingEnum
void gia_core(FemModel *femmodel)
@ TransientIshydrologyEnum
@ TransientAmrFrequencyEnum
void Stop(int tagenum, bool dontmpisync=true)
@ SettingsRecordingFrequencyEnum
void masstransport_core(FemModel *femmodel)
void Responsex(IssmDouble *poutput_value, FemModel *femmodel)
@ TransientIsstressbalanceEnum
@ TimesteppingStartTimeEnum
void bmb_core(FemModel *femmodel)
#define _error_(StreamArgs)
void Start(int tagenum, bool dontmpisync=true)
bool VerboseSolution(void)
Object * GetObjectByOffset(int offset)
@ TransientIsmovingfrontEnum
@ SettingsOutputFrequencyEnum
void GroundinglineMigrationx(Elements *elements, Nodes *nodes, Vertices *vertices, Loads *loads, Materials *materials, Parameters *parameters)
@ AutodiffNumDependentsEnum
void RequestedOutputsx(Results **presults, char **requested_outputs, int numoutputs, bool save_results=true)
void SetCurrentConfiguration(int configuration_type)
void damage_core(FemModel *femmodel)
void FindParam(bool *pinteger, int enum_type)
Declaration of DataSet class.
void stressbalance_core(FemModel *femmodel)
void WriteMeshInResults(void)
@ AggressiveMigrationEnum
int UpdateVertexPositionsx(void)
@ TransientIsdamageevolutionEnum