 |
Ice Sheet System Model
4.18
Code documentation
|
Go to the documentation of this file.
2 #include "../toolkits/toolkits.h"
3 #include "../classes/classes.h"
4 #include "../shared/shared.h"
5 #include "../modules/modules.h"
27 int hydrology_model,frictionlaw;
28 iomodel->
FindConstant(&hydrology_model,
"md.hydrology.model");
46 char** requestedoutputs = NULL;
47 iomodel->
FindConstant(&hydrology_model,
"md.hydrology.model");
54 iomodel->
FindConstant(&requestedoutputs,&numoutputs,
"md.hydrology.requested_outputs");
57 iomodel->
DeleteData(&requestedoutputs,numoutputs,
"md.hydrology.requested_outputs");
115 IssmDouble* watercolumn = xNew<IssmDouble>(numvertices);
116 IssmDouble* drainagerate = xNew<IssmDouble>(numvertices);
117 IssmDouble* meltingrate = xNew<IssmDouble>(numvertices);
118 IssmDouble* watercolumn_max = xNew<IssmDouble>(numvertices);
125 for(
int i=0;i<numvertices;i++){
126 watercolumn[i] += (meltingrate[i]/rho_ice*rho_water-drainagerate[i])*dt;
128 if(watercolumn[i]>watercolumn_max[i]) watercolumn[i]=watercolumn_max[i];
129 if(watercolumn[i]<0) watercolumn[i]=0.;
137 xDelete<IssmDouble>(watercolumn);
138 xDelete<IssmDouble>(meltingrate);
139 xDelete<IssmDouble>(watercolumn_max);
140 xDelete<IssmDouble>(drainagerate);
void GradientJ(Vector< IssmDouble > *gradient, Element *element, int control_type, int control_index)
Declaration of Nodes class.
void FindParam(bool *pvalue, int paramenum)
@ HydrologyRequestedOutputsEnum
void UpdateParameters(Parameters *parameters, IoModel *iomodel, int solution_enum, int analysis_enum)
Declaration of Parameters class.
@ MaterialsRhoFreshwaterEnum
@ TimesteppingTimeStepEnum
Declaration of Constraints class.
ElementVector * CreateDVector(Element *element)
Declaration of Elements class.
void CreateConstraints(Constraints *constraints, IoModel *iomodel)
int DofsPerNode(int **doflist, int domaintype, int approximation)
void AddObject(Param *newparam)
void DeleteData(int num,...)
void Core(FemModel *femmodel)
@ BasalforcingsGroundediceMeltingRateEnum
virtual void AddInput2(int input_enum, IssmDouble *values, int interpolation_enum)
: header file for generic external result object
ElementMatrix * CreateJacobianMatrix(Element *element)
void FindConstant(bool *pvalue, const char *constant_name)
void UpdateConstraints(FemModel *femmodel)
ElementVector * CreatePVector(Element *element)
@ HydrologyDrainageRateEnum
void CreateLoads(Loads *loads, IoModel *iomodel)
@ HydrologyNumRequestedOutputsEnum
void CreateNodes(Nodes *nodes, IoModel *iomodel, bool isamr=false)
void InputUpdateFromSolution(IssmDouble *solution, Element *element)
Declaration of Loads class.
void UpdateWaterColumn(FemModel *femmodel)
#define _error_(StreamArgs)
@ HydrologyWatercolumnMaxEnum
Object * GetObjectByOffset(int offset)
void FetchDataToInput(Inputs2 *inputs2, Elements *elements, const char *vector_name, int input_enum)
void GetSolutionFromInputs(Vector< IssmDouble > *solution, Element *element)
virtual int GetNumberOfVertices(void)=0
void GetInputListOnVertices(IssmDouble *pvalue, int enumtype)
void UpdateElements(Elements *elements, Inputs2 *inputs2, IoModel *iomodel, int analysis_counter, int analysis_type)
ElementMatrix * CreateKMatrix(Element *element)