Ice Sheet System Model  4.18
Code documentation
AdjointBalancethicknessAnalysis.h
Go to the documentation of this file.
1 
5 #ifndef _AdjointBalancethicknessAnalysis_
6 #define _AdjointBalancethicknessAnalysis_
7 
8 /*Headers*/
9 #include "./Analysis.h"
10 
12 
13  public:
14  /*Model processing*/
15  void CreateConstraints(Constraints* constraints,IoModel* iomodel);
16  void CreateLoads(Loads* loads, IoModel* iomodel);
17  void CreateNodes(Nodes* nodes,IoModel* iomodel,bool isamr=false);
18  int DofsPerNode(int** doflist,int domaintype,int approximation);
19  void UpdateElements(Elements* elements,Inputs2* inputs2,IoModel* iomodel,int analysis_counter,int analysis_type);
20  void UpdateParameters(Parameters* parameters,IoModel* iomodel,int solution_enum,int analysis_enum);
21 
22  /*Finite element Analysis*/
23  void Core(FemModel* femmodel);
28  void GetSolutionFromInputs(Vector<IssmDouble>* solution,Element* element);
29  void GradientJ(Vector<IssmDouble>* gradient,Element* element,int control_type,int control_index);
30  void GradientJDirichlet(Element* element,Vector<IssmDouble>* gradient,int control_index);
31  void GradientJDhDt(Element* element,Vector<IssmDouble>* gradient,int control_index);
32  void GradientJVx(Element* element,Vector<IssmDouble>* gradient,int control_index);
33  void GradientJVy(Element* element,Vector<IssmDouble>* gradient,int control_index);
34  void InputUpdateFromSolution(IssmDouble* solution,Element* element);
36 };
37 #endif
AdjointBalancethicknessAnalysis::UpdateConstraints
void UpdateConstraints(FemModel *femmodel)
Definition: AdjointBalancethicknessAnalysis.cpp:376
IssmDouble
double IssmDouble
Definition: types.h:37
Nodes
Declaration of Nodes class.
Definition: Nodes.h:19
AdjointBalancethicknessAnalysis::DofsPerNode
int DofsPerNode(int **doflist, int domaintype, int approximation)
Definition: AdjointBalancethicknessAnalysis.cpp:18
Parameters
Declaration of Parameters class.
Definition: Parameters.h:18
Constraints
Declaration of Constraints class.
Definition: Constraints.h:13
Elements
Declaration of Elements class.
Definition: Elements.h:17
AdjointBalancethicknessAnalysis::GetSolutionFromInputs
void GetSolutionFromInputs(Vector< IssmDouble > *solution, Element *element)
Definition: AdjointBalancethicknessAnalysis.cpp:155
AdjointBalancethicknessAnalysis::GradientJ
void GradientJ(Vector< IssmDouble > *gradient, Element *element, int control_type, int control_index)
Definition: AdjointBalancethicknessAnalysis.cpp:158
AdjointBalancethicknessAnalysis::GradientJDhDt
void GradientJDhDt(Element *element, Vector< IssmDouble > *gradient, int control_index)
Definition: AdjointBalancethicknessAnalysis.cpp:244
AdjointBalancethicknessAnalysis::CreateKMatrix
ElementMatrix * CreateKMatrix(Element *element)
Definition: AdjointBalancethicknessAnalysis.cpp:39
AdjointBalancethicknessAnalysis::GradientJVx
void GradientJVx(Element *element, Vector< IssmDouble > *gradient, int control_index)
Definition: AdjointBalancethicknessAnalysis.cpp:268
Element
Definition: Element.h:41
Analysis.h
abstract class for Analysis objects
AdjointBalancethicknessAnalysis::CreateConstraints
void CreateConstraints(Constraints *constraints, IoModel *iomodel)
Definition: AdjointBalancethicknessAnalysis.cpp:9
AdjointBalancethicknessAnalysis::CreateDVector
ElementVector * CreateDVector(Element *element)
Definition: AdjointBalancethicknessAnalysis.cpp:32
AdjointBalancethicknessAnalysis::CreateJacobianMatrix
ElementMatrix * CreateJacobianMatrix(Element *element)
Definition: AdjointBalancethicknessAnalysis.cpp:36
AdjointBalancethicknessAnalysis::CreateNodes
void CreateNodes(Nodes *nodes, IoModel *iomodel, bool isamr=false)
Definition: AdjointBalancethicknessAnalysis.cpp:15
AdjointBalancethicknessAnalysis
Definition: AdjointBalancethicknessAnalysis.h:11
AdjointBalancethicknessAnalysis::CreateLoads
void CreateLoads(Loads *loads, IoModel *iomodel)
Definition: AdjointBalancethicknessAnalysis.cpp:12
Inputs2
Declaration of Inputs class.
Definition: Inputs2.h:23
AdjointBalancethicknessAnalysis::UpdateParameters
void UpdateParameters(Parameters *parameters, IoModel *iomodel, int solution_enum, int analysis_enum)
Definition: AdjointBalancethicknessAnalysis.cpp:24
AdjointBalancethicknessAnalysis::GradientJDirichlet
void GradientJDirichlet(Element *element, Vector< IssmDouble > *gradient, int control_index)
Definition: AdjointBalancethicknessAnalysis.cpp:207
FemModel
Definition: FemModel.h:31
Loads
Declaration of Loads class.
Definition: Loads.h:16
ElementVector
Definition: ElementVector.h:20
IoModel
Definition: IoModel.h:48
AdjointBalancethicknessAnalysis::InputUpdateFromSolution
void InputUpdateFromSolution(IssmDouble *solution, Element *element)
Definition: AdjointBalancethicknessAnalysis.cpp:362
AdjointBalancethicknessAnalysis::CreatePVector
ElementVector * CreatePVector(Element *element)
Definition: AdjointBalancethicknessAnalysis.cpp:49
ElementMatrix
Definition: ElementMatrix.h:19
Vector< IssmDouble >
AdjointBalancethicknessAnalysis::UpdateElements
void UpdateElements(Elements *elements, Inputs2 *inputs2, IoModel *iomodel, int analysis_counter, int analysis_type)
Definition: AdjointBalancethicknessAnalysis.cpp:21
AdjointBalancethicknessAnalysis::Core
void Core(FemModel *femmodel)
Definition: AdjointBalancethicknessAnalysis.cpp:29
Analysis
Definition: Analysis.h:30
AdjointBalancethicknessAnalysis::GradientJVy
void GradientJVy(Element *element, Vector< IssmDouble > *gradient, int control_index)
Definition: AdjointBalancethicknessAnalysis.cpp:315
femmodel
FemModel * femmodel
Definition: esmfbinders.cpp:16