 |
Ice Sheet System Model
4.18
Code documentation
|
Go to the documentation of this file.
10 #error "Cannot compile with HAVE_CONFIG_H symbol! run configure first!"
13 #include "../classes.h"
15 #include "../../analyses/analyses.h"
38 int pengrid_element_id;
42 _assert_(index>=0 && index<iomodel->numberofvertices);
49 pengrid_node_id=index+1;
121 void Pengrid::Marshall(
char** pmarshalled_data,
int* pmarshalled_data_size,
int marshall_direction){
134 this->
hnode->
Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
135 this->
helement->
Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
213 switch(analysis_type){
224 _error_(
"analysis " << analysis_type <<
" (" <<
EnumToStringx(analysis_type) <<
") not supported yet");
241 switch(analysis_type){
254 _error_(
"analysis " << analysis_type <<
" (" <<
EnumToStringx(analysis_type) <<
") not supported yet");
286 if(!flags[this->node->
Lid()]){
289 flags[this->node->
Lid()]=
true;
292 while(flagsindices[counter]>=0) counter++;
293 flagsindices[counter]=this->node->
Lid();
321 default:
_error_(
"not supported");
339 switch(analysis_type){
394 if(this->
active==new_active){
449 if (temperature>t_pmp){
487 if(!this->
active)
return NULL;
490 Ke->
values[0]=kmax*pow(10.,penalty_factor);
516 if (temperature<t_pmp){
517 Ke->
values[0]=kmax*pow(10.,penalty_factor);
529 if(!this->
active)
return NULL;
535 Ke->
values[0]=kmax*pow(10.,penalty_factor);
548 if(!this->
active)
return NULL;
558 pe->
values[0]=kmax*pow(10.,penalty_factor)*h_max;
594 if (temperature<t_pmp){
598 if (reCast<bool>(dt)) pe->
values[0]=melting_offset*pow(10.,penalty_factor)*(temperature-t_pmp)/dt;
599 else pe->
values[0]=melting_offset*pow(10.,penalty_factor)*(temperature-t_pmp);
615 if(!this->
active)
return NULL;
625 pe->
values[0]=kmax*pow(10.,penalty_factor)*t_pmp;
ElementMatrix * PenaltyCreateKMatrixHydrologyDCInefficient(IssmDouble kmax)
@ ThermalPenaltyFactorEnum
Declaration of Vertices class.
void ConstraintActivate(int *punstable)
void SetwiseNodeConnectivity(int *d_nz, int *o_nz, Node *node, bool *flags, int *flagsindices, int set1_enum, int set2_enum)
Declaration of Nodes class.
@ StressbalanceAnalysisEnum
void PenaltyCreateKMatrix(Matrix< IssmDouble > *Kff, Matrix< IssmDouble > *kfs, IssmDouble kmax)
#define _printf_(StreamArgs)
Declaration of Parameters class.
@ MaterialsMeltingpointEnum
#define MARSHALLING_ENUM(EN)
@ TimesteppingTimeStepEnum
Declaration of Elements class.
void ConstraintActivateThermal(int *punstable)
@ HydrologydcPenaltyFactorEnum
void CreatePVector(Vector< IssmDouble > *pf)
ElementMatrix * PenaltyCreateKMatrixThermal(IssmDouble kmax)
void Marshall(char **pmarshalled_data, int *pmarshalled_data_size, int marshall_direction)
ElementVector * PenaltyCreatePVectorMelting(IssmDouble kmax)
ElementVector * PenaltyCreatePVectorThermal(IssmDouble kmax)
@ HydrologyDCInefficientAnalysisEnum
void GetNodesSidList(int *sidlist)
void Configure(Elements *elements, Loads *loads, Nodes *nodes, Vertices *vertices, Materials *materials, Parameters *parameters)
Declaration of Materials class.
@ AdjointHorizAnalysisEnum
void GetNodesLidList(int *lidlist)
void ResetZigzagCounter(void)
const char * EnumToStringx(int enum_in)
void configure(DataSet *dataset)
void ConstraintActivateHydrologyDCInefficient(int *punstable)
int GetNumberOfNodes(void)
#define MARSHALLING(FIELD)
void GetHydrologyDCInefficientHmax(IssmDouble *ph_max, Element *element, Node *innode)
@ HydrologydcPenaltyLockEnum
void CreateKMatrix(Matrix< IssmDouble > *Kff, Matrix< IssmDouble > *Kfs)
IssmDouble TMeltingPoint(IssmDouble pressure)
int * singlenodetoelementconnectivity
@ SedimentHeadSubstepEnum
void PenaltyCreatePVector(Vector< IssmDouble > *pf, IssmDouble kmax)
Declaration of Loads class.
#define _error_(StreamArgs)
ElementVector * PenaltyCreatePVectorHydrologyDCInefficient(IssmDouble kmax)
void ResetConstraint(void)
void GetInputValue(bool *pvalue, int enum_type)
void FindParam(bool *pinteger, int enum_type)
void AddToGlobal(Vector< IssmDouble > *pf)
void GetInputValue(IssmDouble *pvalue, Vertex *vertex, int enumtype)
void AddToGlobal(Matrix< IssmDouble > *Kff, Matrix< IssmDouble > *Kfs)
void SetCurrentConfiguration(Elements *elements, Loads *loads, Nodes *nodes, Vertices *vertices, Materials *materials, Parameters *parameters)
ElementMatrix * PenaltyCreateKMatrixMelting(IssmDouble kmax)
void Marshall(char **pmarshalled_data, int *pmarshalled_data_size, int marshall_direction)