 |
Ice Sheet System Model
4.18
Code documentation
|
: core of the hydrology solution
More...
Go to the source code of this file.
: core of the hydrology solution
Definition in file hydrology_core.cpp.
◆ hydrology_core()
void hydrology_core |
( |
FemModel * |
femmodel | ) |
|
Definition at line 12 of file hydrology_core.cpp.
22 bool modify_loads =
true;
23 char **requested_outputs = NULL;
51 bool isefficientlayer;
65 int substep, numaveragedinput, hydro_averaging;
74 subtime=global_time-dt;
84 std::vector<int> substepinput;
85 std::vector<int> transientinput;
86 std::vector<int> averagedinput;
88 if (isefficientlayer){
91 substepinput.assign(substeplist,substeplist+4);
92 transientinput.assign(transientlist,transientlist+4);
93 averagedinput.assign(averagelist,averagelist+4);
97 substepinput.assign(substeplist,substeplist+2);
98 transientinput.assign(transientlist,transientlist+2);
99 averagedinput.assign(averagelist,averagelist+2);
102 while(substep<dtslices){
107 if(
VerboseSolution())
_printf0_(
"sub iteration " << substep <<
"/" << dtslices <<
" time [yr]: " << setprecision(4) << subtime/yts <<
" (time step: " << subdt/yts <<
")\n");
111 if (isefficientlayer){
128 if (isefficientlayer){
138 if (isefficientlayer){
198 for(
int i=0;i<numoutputs;i++){
199 xDelete<char>(requested_outputs[i]);
201 xDelete<char*>(requested_outputs);
@ EffectivePressureSubstepEnum
void UpdateGapHeight(FemModel *femmodel)
#define _printf0_(StreamArgs)
@ HydrologySheetThicknessOldEnum
@ HydrologyRequestedOutputsEnum
void InitTransientInputx(int *transientinput_enum, int numoutputs)
@ TimesteppingTimeStepEnum
@ HydrologydcIsefficientlayerEnum
@ HydrologydcEplThicknessSubstepEnum
@ HydrologyShaktiAnalysisEnum
@ HydrologydcEplThicknessTransientEnum
@ HydrologyPismAnalysisEnum
@ HydrologydcEplThicknessOldEnum
void solutionsequence_nonlinear(FemModel *femmodel, bool conserve_loads)
void solutionsequence_shakti_nonlinear(FemModel *femmodel)
@ HydrologyDCInefficientAnalysisEnum
@ HydrologyGlaDSAnalysisEnum
void UpdateEffectivePressure(FemModel *femmodel)
void SetParam(bool boolean, int enum_type)
@ SedimentHeadTransientEnum
void HydrologyIDSupdateDomainx(IssmDouble *pIDScount)
void solutionsequence_glads_nonlinear(FemModel *femmodel)
@ HydrologySheetThicknessEnum
const char * EnumToStringx(int enum_in)
void AverageTransientInputx(int *transientinput_enum, int *averagedinput_enum, IssmDouble init_time, IssmDouble end_time, int numoutputs, int averaging_method)
void Stop(int tagenum, bool dontmpisync=true)
@ HydrologyNumRequestedOutputsEnum
void StackTransientInputx(int *input_enum, int *transientinput_enum, IssmDouble hydrotime, int numoutputs)
@ HydrologyShreveAnalysisEnum
void surfaceslope_core(FemModel *femmodel)
@ SedimentHeadSubstepEnum
@ HydrologydcEplThicknessEnum
void UpdateWaterColumn(FemModel *femmodel)
#define _error_(StreamArgs)
void Start(int tagenum, bool dontmpisync=true)
bool VerboseSolution(void)
void RequestedOutputsx(Results **presults, char **requested_outputs, int numoutputs, bool save_results=true)
void SetCurrentConfiguration(int configuration_type)
@ HydrologyStepsPerStepEnum
void FindParam(bool *pinteger, int enum_type)
void bedslope_core(FemModel *femmodel)
void solutionsequence_hydro_nonlinear(FemModel *femmodel)
void SetChannelCrossSectionOld(FemModel *femmodel)
@ EffectivePressureTransientEnum
@ HydraulicPotentialOldEnum