 |
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"
19 iomodel->
FindConstant(&hydrology_model,
"md.hydrology.model");
23 bool isefficientlayer;
24 iomodel->
FindConstant(&isefficientlayer,
"md.hydrology.isefficientlayer");
25 if(!isefficientlayer)
return;
28 iomodel->
FetchData(1,
"md.mesh.vertexonbase");
31 iomodel->
FetchData(1,
"md.mesh.vertexonbase");
41 bool isefficientlayer;
45 iomodel->
FindConstant(&hydrology_model,
"md.hydrology.model");
49 iomodel->
FindConstant(&isefficientlayer,
"md.hydrology.isefficientlayer");
50 if(!isefficientlayer)
return;
57 element->
Update(inputs2,i,iomodel,analysis_counter,analysis_type,
P1Enum);
94 basalelement = element;
97 if(!element->
IsOnBase())
return NULL;
101 if(!element->
IsOnBase())
return NULL;
127 IssmDouble* basis = xNew<IssmDouble>(numnodes);
134 for(
int ig=gauss->
begin();ig<gauss->end();ig++){
148 xDelete<IssmDouble>(xyz_list);
149 xDelete<IssmDouble>(basis);
165 basalelement = element;
168 if(!element->
IsOnBase())
return NULL;
177 if(!active_element) {
186 int input_enum,index;
196 IssmDouble* basis = xNew<IssmDouble>(numnodes);
204 default:
_error_(
"not implemented");
209 for(
int ig=gauss->
begin();ig<gauss->end();ig++){
216 for(
int i=0;i<numnodes;i++) pe->
values[i]+=Jdet*gauss->
weight*slopes[index]*basis[i];
220 xDelete<IssmDouble>(xyz_list);
221 xDelete<IssmDouble>(basis);
227 _error_(
"not implemented yet");
230 _error_(
"Not implemented yet");
233 int inputenum,domaintype;
Declaration of Nodes class.
virtual int GetNumberOfNodes(void)=0
void FindParam(bool *pvalue, int paramenum)
void InputUpdateFromSolution(IssmDouble *solution, Element *element)
Declaration of Parameters class.
void UpdateConstraints(FemModel *femmodel)
: header file for generic external result object
Declaration of Constraints class.
virtual Element * SpawnBasalElement(void)=0
Declaration of Elements class.
int TripleMultiply(IssmDouble *a, int nrowa, int ncola, int itrna, IssmDouble *b, int nrowb, int ncolb, int itrnb, IssmDouble *c, int nrowc, int ncolc, int itrnc, IssmDouble *d, int iaddd)
virtual Input2 * GetInput2(int inputenum)=0
void DeleteMaterials(void)
ElementVector * CreateDVector(Element *element)
virtual void NodalFunctions(IssmDouble *basis, Gauss *gauss)=0
void UpdateElements(Elements *elements, Inputs2 *inputs2, IoModel *iomodel, int analysis_counter, int analysis_type)
ElementVector * NewElementVector(int approximation_enum=NoneApproximationEnum)
void DeleteData(int num,...)
int DofsPerNode(int **doflist, int domaintype, int approximation)
virtual Gauss * NewGauss(void)=0
virtual void InputUpdateFromSolutionOneDof(IssmDouble *solution, int inputenum)=0
const char * EnumToStringx(int enum_in)
void GetSolutionFromInputs(Vector< IssmDouble > *solution, Element *element)
void FindConstant(bool *pvalue, const char *constant_name)
void GetInput2Value(bool *pvalue, int enum_type)
void GetVerticesCoordinates(IssmDouble **xyz_list)
void FetchData(bool *pboolean, const char *data_name)
Declaration of Loads class.
@ L2ProjectionEPLAnalysisEnum
void CreateLoads(Loads *loads, IoModel *iomodel)
#define _error_(StreamArgs)
ElementMatrix * CreateJacobianMatrix(Element *element)
virtual int begin(void)=0
Object * GetObjectByOffset(int offset)
@ MeshVertexonsurfaceEnum
void Core(FemModel *femmodel)
virtual void JacobianDeterminant(IssmDouble *Jdet, IssmDouble *xyz_list, Gauss *gauss)=0
virtual void GaussPoint(int ig)=0
virtual void Update(Inputs2 *inputs2, int index, IoModel *iomodel, int analysis_counter, int analysis_type, int finite_element)=0
void CreateNodes(Nodes *nodes, IoModel *iomodel, bool isamr=false)
void FetchDataToInput(Inputs2 *inputs2, Elements *elements, const char *vector_name, int input_enum)
ElementVector * CreatePVector(Element *element)
ElementMatrix * CreateKMatrix(Element *element)
void GradientJ(Vector< IssmDouble > *gradient, Element *element, int control_type, int control_index)
void CreateConstraints(Constraints *constraints, IoModel *iomodel)
void UpdateParameters(Parameters *parameters, IoModel *iomodel, int solution_enum, int analysis_enum)
virtual void InputUpdateFromSolutionOneDofCollapsed(IssmDouble *solution, int inputenum)=0
@ HydrologydcMaskEplactiveEltEnum
ElementMatrix * NewElementMatrix(int approximation_enum=NoneApproximationEnum)