Ice Sheet System Model  4.18
Code documentation
LoveAnalysis.cpp
Go to the documentation of this file.
1 #include "./LoveAnalysis.h"
2 #include "../toolkits/toolkits.h"
3 #include "../classes/classes.h"
4 #include "../shared/shared.h"
5 #include "../modules/modules.h"
6 
7 /*Model processing*/
8 void LoveAnalysis::CreateConstraints(Constraints* constraints,IoModel* iomodel){/*{{{*/
9 }/*}}}*/
10 void LoveAnalysis::CreateLoads(Loads* loads, IoModel* iomodel){/*{{{*/
11 }/*}}}*/
12 void LoveAnalysis::CreateNodes(Nodes* nodes,IoModel* iomodel,bool isamr){/*{{{*/
13 }/*}}}*/
14 int LoveAnalysis::DofsPerNode(int** doflist,int domaintype,int approximation){/*{{{*/
15  _error_("not needed!");
16 }/*}}}*/
17 void LoveAnalysis::UpdateElements(Elements* elements,Inputs2* inputs2,IoModel* iomodel,int analysis_counter,int analysis_type){/*{{{*/
18 
19 }/*}}}*/
20 void LoveAnalysis::UpdateParameters(Parameters* parameters,IoModel* iomodel,int solution_enum,int analysis_enum){/*{{{*/
21 
22  IssmDouble* frequencies = NULL;
23  int nfreq;
24  iomodel->FetchData(&nfreq,"md.love.nfreq");
25  iomodel->FetchData(&frequencies,NULL,NULL,"md.love.frequencies");
26  parameters->AddObject(new DoubleVecParam(LoveFrequenciesEnum,frequencies,nfreq));
27  xDelete<IssmDouble>(frequencies);
28 
29  parameters->AddObject(iomodel->CopyConstantObject("md.love.nfreq",LoveNfreqEnum));
30  parameters->AddObject(iomodel->CopyConstantObject("md.love.sh_nmax",LoveShNmaxEnum));
31  parameters->AddObject(iomodel->CopyConstantObject("md.love.sh_nmin",LoveShNminEnum));
32  parameters->AddObject(iomodel->CopyConstantObject("md.love.g0",LoveG0Enum));
33  parameters->AddObject(iomodel->CopyConstantObject("md.love.r0",LoveR0Enum));
34  parameters->AddObject(iomodel->CopyConstantObject("md.love.mu0",LoveMu0Enum));
35  parameters->AddObject(iomodel->CopyConstantObject("md.love.allow_layer_deletion",LoveAllowLayerDeletionEnum));
36  parameters->AddObject(iomodel->CopyConstantObject("md.love.love_kernels",LoveKernelsEnum));
37  parameters->AddObject(iomodel->CopyConstantObject("md.love.forcing_type",LoveForcingTypeEnum));
38 }/*}}}*/
40  /*Default, do nothing*/
41  return;
42 }/*}}}*/
43 
44 /*Finite Element Analysis*/
46  _error_(" not needed!");
47 }/*}}}*/
49  _error_(" not needed!");
50 }/*}}}*/
52  _error_(" not needed!");
53 }/*}}}*/
55  _error_(" not needed!");
56 }/*}}}*/
58  _error_("not supported");
59 }/*}}}*/
60 void LoveAnalysis::GetB(IssmDouble* B,Element* element,int dim,IssmDouble* xyz_list,Gauss* gauss){/*{{{*/
61  _error_("not supported");
62 }/*}}}*/
63 void LoveAnalysis::GetBprime(IssmDouble* Bprime,Element* element,int dim,IssmDouble* xyz_list,Gauss* gauss){/*{{{*/
64  _error_("not supported");
65 }/*}}}*/
67  _error_("not implemented yet");
68 }/*}}}*/
69 void LoveAnalysis::GradientJ(Vector<IssmDouble>* gradient,Element* element,int control_type,int control_index){/*{{{*/
70  _error_("Not implemented yet");
71 }/*}}}*/
73  _error_("not supported");
74 }/*}}}*/
LoveAnalysis::CreateDVector
ElementVector * CreateDVector(Element *element)
Definition: LoveAnalysis.cpp:48
LoveMu0Enum
@ LoveMu0Enum
Definition: EnumDefinitions.h:236
IssmDouble
double IssmDouble
Definition: types.h:37
LoveAnalysis::GetB
void GetB(IssmDouble *B, Element *element, int dim, IssmDouble *xyz_list, Gauss *gauss)
Definition: LoveAnalysis.cpp:60
Nodes
Declaration of Nodes class.
Definition: Nodes.h:19
LoveNfreqEnum
@ LoveNfreqEnum
Definition: EnumDefinitions.h:237
LoveAnalysis::UpdateConstraints
void UpdateConstraints(FemModel *femmodel)
Definition: LoveAnalysis.cpp:39
LoveAnalysis::UpdateParameters
void UpdateParameters(Parameters *parameters, IoModel *iomodel, int solution_enum, int analysis_enum)
Definition: LoveAnalysis.cpp:20
Parameters
Declaration of Parameters class.
Definition: Parameters.h:18
Constraints
Declaration of Constraints class.
Definition: Constraints.h:13
LoveAnalysis::CreateNodes
void CreateNodes(Nodes *nodes, IoModel *iomodel, bool isamr=false)
Definition: LoveAnalysis.cpp:12
Elements
Declaration of Elements class.
Definition: Elements.h:17
LoveAnalysis::GetBprime
void GetBprime(IssmDouble *B, Element *element, int dim, IssmDouble *xyz_list, Gauss *gauss)
Definition: LoveAnalysis.cpp:63
LoveKernelsEnum
@ LoveKernelsEnum
Definition: EnumDefinitions.h:235
LoveAnalysis::CreateConstraints
void CreateConstraints(Constraints *constraints, IoModel *iomodel)
Definition: LoveAnalysis.cpp:8
LoveAnalysis::UpdateElements
void UpdateElements(Elements *elements, Inputs2 *inputs2, IoModel *iomodel, int analysis_counter, int analysis_type)
Definition: LoveAnalysis.cpp:17
LoveAnalysis::GetSolutionFromInputs
void GetSolutionFromInputs(Vector< IssmDouble > *solution, Element *element)
Definition: LoveAnalysis.cpp:66
Parameters::AddObject
void AddObject(Param *newparam)
Definition: Parameters.cpp:67
Element
Definition: Element.h:41
LoveShNmaxEnum
@ LoveShNmaxEnum
Definition: EnumDefinitions.h:239
LoveAllowLayerDeletionEnum
@ LoveAllowLayerDeletionEnum
Definition: EnumDefinitions.h:231
LoveAnalysis::CreateKMatrix
ElementMatrix * CreateKMatrix(Element *element)
Definition: LoveAnalysis.cpp:54
IoModel::CopyConstantObject
Param * CopyConstantObject(const char *constant_name, int param_enum)
Definition: IoModel.cpp:418
LoveForcingTypeEnum
@ LoveForcingTypeEnum
Definition: EnumDefinitions.h:232
LoveAnalysis::CreateJacobianMatrix
ElementMatrix * CreateJacobianMatrix(Element *element)
Definition: LoveAnalysis.cpp:51
LoveAnalysis.h
: header file for generic external result object
IoModel::FetchData
void FetchData(bool *pboolean, const char *data_name)
Definition: IoModel.cpp:933
Inputs2
Declaration of Inputs class.
Definition: Inputs2.h:23
LoveAnalysis::GradientJ
void GradientJ(Vector< IssmDouble > *gradient, Element *element, int control_type, int control_index)
Definition: LoveAnalysis.cpp:69
LoveAnalysis::Core
void Core(FemModel *femmodel)
Definition: LoveAnalysis.cpp:45
LoveAnalysis::InputUpdateFromSolution
void InputUpdateFromSolution(IssmDouble *solution, Element *element)
Definition: LoveAnalysis.cpp:72
LoveR0Enum
@ LoveR0Enum
Definition: EnumDefinitions.h:238
FemModel
Definition: FemModel.h:31
LoveFrequenciesEnum
@ LoveFrequenciesEnum
Definition: EnumDefinitions.h:233
Loads
Declaration of Loads class.
Definition: Loads.h:16
_error_
#define _error_(StreamArgs)
Definition: exceptions.h:49
LoveAnalysis::CreateLoads
void CreateLoads(Loads *loads, IoModel *iomodel)
Definition: LoveAnalysis.cpp:10
DoubleVecParam
Definition: DoubleVecParam.h:20
LoveAnalysis::DofsPerNode
int DofsPerNode(int **doflist, int domaintype, int approximation)
Definition: LoveAnalysis.cpp:14
ElementVector
Definition: ElementVector.h:20
IoModel
Definition: IoModel.h:48
LoveG0Enum
@ LoveG0Enum
Definition: EnumDefinitions.h:234
ElementMatrix
Definition: ElementMatrix.h:19
Vector< IssmDouble >
Gauss
Definition: Gauss.h:8
LoveAnalysis::CreatePVector
ElementVector * CreatePVector(Element *element)
Definition: LoveAnalysis.cpp:57
LoveShNminEnum
@ LoveShNminEnum
Definition: EnumDefinitions.h:240
femmodel
FemModel * femmodel
Definition: esmfbinders.cpp:16