Ice Sheet System Model  4.18
Code documentation
AdjointHorizAnalysis.h
Go to the documentation of this file.
1 
5 #ifndef _AdjointHorizAnalysis_
6 #define _AdjointHorizAnalysis_
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);
36  void GetSolutionFromInputs(Vector<IssmDouble>* solution,Element* element);
37  void GradientJ(Vector<IssmDouble>* gradient,Element* element,int control_type,int control_index);
38  void GradientJBbarFS(Element* element,Vector<IssmDouble>* gradient,int control_index);
39  void GradientJBbarGradient(Element* element,Vector<IssmDouble>* gradient,int control_index);
40  void GradientJBinitial(Element* element,Vector<IssmDouble>* gradient,int control_index);
41  void GradientJBbarL1L2(Element* element,Vector<IssmDouble>* gradient,int control_index);
42  void GradientJBbarHO(Element* element,Vector<IssmDouble>* gradient,int control_index);
43  void GradientJBbarSSA(Element* element,Vector<IssmDouble>* gradient,int control_index);
44  void GradientJBFS(Element* element,Vector<IssmDouble>* gradient,int control_index);
45  void GradientJBGradient(Element* element,Vector<IssmDouble>* gradient,int control_index);
46  void GradientJBHO(Element* element,Vector<IssmDouble>* gradient,int control_index);
47  void GradientJBSSA(Element* element,Vector<IssmDouble>* gradient,int control_index);
48  void GradientJDragFS(Element* element,Vector<IssmDouble>* gradient,int control_index);
49  void GradientJDragGradient(Element* element,Vector<IssmDouble>* gradient,int control_index);
50  void GradientJDragL1L2(Element* element,Vector<IssmDouble>* gradient,int control_index);
51  void GradientJDragHO(Element* element,Vector<IssmDouble>* gradient,int control_index);
52  void GradientJDragSSA(Element* element,Vector<IssmDouble>* gradient,int control_index);
53  void GradientJDragHydroFS(Element* element,Vector<IssmDouble>* gradient,int control_index);
54  void GradientJDragHydroL1L2(Element* element,Vector<IssmDouble>* gradient,int control_index);
55  void GradientJDragHydroHO(Element* element,Vector<IssmDouble>* gradient,int control_index);
56  void GradientJDragHydroSSA(Element* element,Vector<IssmDouble>* gradient,int control_index);
57  void GradientJDSSA(Element* element,Vector<IssmDouble>* gradient,int control_index);
58  void InputUpdateFromSolution(IssmDouble* solution,Element* element);
59  void InputUpdateFromSolutionFS(IssmDouble* solution,Element* element);
60  void InputUpdateFromSolutionHoriz(IssmDouble* solution,Element* element);
62 };
63 #endif
AdjointHorizAnalysis::GradientJBbarFS
void GradientJBbarFS(Element *element, Vector< IssmDouble > *gradient, int control_index)
Definition: AdjointHorizAnalysis.cpp:1180
AdjointHorizAnalysis::GradientJDragGradient
void GradientJDragGradient(Element *element, Vector< IssmDouble > *gradient, int control_index)
Definition: AdjointHorizAnalysis.cpp:1647
IssmDouble
double IssmDouble
Definition: types.h:37
Nodes
Declaration of Nodes class.
Definition: Nodes.h:19
AdjointHorizAnalysis::UpdateElements
void UpdateElements(Elements *elements, Inputs2 *inputs2, IoModel *iomodel, int analysis_counter, int analysis_type)
Definition: AdjointHorizAnalysis.cpp:21
AdjointHorizAnalysis::CreateKMatrixHO
ElementMatrix * CreateKMatrixHO(Element *element)
Definition: AdjointHorizAnalysis.cpp:149
AdjointHorizAnalysis::InputUpdateFromSolutionHoriz
void InputUpdateFromSolutionHoriz(IssmDouble *solution, Element *element)
Definition: AdjointHorizAnalysis.cpp:2477
AdjointHorizAnalysis::GradientJBHO
void GradientJBHO(Element *element, Vector< IssmDouble > *gradient, int control_index)
Definition: AdjointHorizAnalysis.cpp:1487
AdjointHorizAnalysis::CreateConstraints
void CreateConstraints(Constraints *constraints, IoModel *iomodel)
Definition: AdjointHorizAnalysis.cpp:9
AdjointHorizAnalysis::GradientJ
void GradientJ(Vector< IssmDouble > *gradient, Element *element, int control_type, int control_index)
Definition: AdjointHorizAnalysis.cpp:1080
Parameters
Declaration of Parameters class.
Definition: Parameters.h:18
AdjointHorizAnalysis::InputUpdateFromSolutionFS
void InputUpdateFromSolutionFS(IssmDouble *solution, Element *element)
Definition: AdjointHorizAnalysis.cpp:2384
AdjointHorizAnalysis::CreateKMatrixL1L2
ElementMatrix * CreateKMatrixL1L2(Element *element)
Definition: AdjointHorizAnalysis.cpp:217
Constraints
Declaration of Constraints class.
Definition: Constraints.h:13
AdjointHorizAnalysis::GradientJDragHO
void GradientJDragHO(Element *element, Vector< IssmDouble > *gradient, int control_index)
Definition: AdjointHorizAnalysis.cpp:1830
AdjointHorizAnalysis::GradientJDragL1L2
void GradientJDragL1L2(Element *element, Vector< IssmDouble > *gradient, int control_index)
Definition: AdjointHorizAnalysis.cpp:1825
AdjointHorizAnalysis::CreatePVector
ElementVector * CreatePVector(Element *element)
Definition: AdjointHorizAnalysis.cpp:324
Elements
Declaration of Elements class.
Definition: Elements.h:17
AdjointHorizAnalysis::GetSolutionFromInputs
void GetSolutionFromInputs(Vector< IssmDouble > *solution, Element *element)
Definition: AdjointHorizAnalysis.cpp:1077
AdjointHorizAnalysis::GradientJDragHydroFS
void GradientJDragHydroFS(Element *element, Vector< IssmDouble > *gradient, int control_index)
Definition: AdjointHorizAnalysis.cpp:1993
AdjointHorizAnalysis::InputUpdateFromSolution
void InputUpdateFromSolution(IssmDouble *solution, Element *element)
Definition: AdjointHorizAnalysis.cpp:2374
AdjointHorizAnalysis::GradientJDragFS
void GradientJDragFS(Element *element, Vector< IssmDouble > *gradient, int control_index)
Definition: AdjointHorizAnalysis.cpp:1729
AdjointHorizAnalysis::CreateJacobianMatrix
ElementMatrix * CreateJacobianMatrix(Element *element)
Definition: AdjointHorizAnalysis.cpp:36
AdjointHorizAnalysis::CreateKMatrix
ElementMatrix * CreateKMatrix(Element *element)
Definition: AdjointHorizAnalysis.cpp:39
Element
Definition: Element.h:41
AdjointHorizAnalysis::GradientJDragHydroL1L2
void GradientJDragHydroL1L2(Element *element, Vector< IssmDouble > *gradient, int control_index)
Definition: AdjointHorizAnalysis.cpp:2087
Analysis.h
abstract class for Analysis objects
AdjointHorizAnalysis::GradientJBGradient
void GradientJBGradient(Element *element, Vector< IssmDouble > *gradient, int control_index)
Definition: AdjointHorizAnalysis.cpp:1357
AdjointHorizAnalysis::UpdateConstraints
void UpdateConstraints(FemModel *femmodel)
Definition: AdjointHorizAnalysis.cpp:2525
AdjointHorizAnalysis::CreatePVectorL1L2
ElementVector * CreatePVectorL1L2(Element *element)
Definition: AdjointHorizAnalysis.cpp:584
AdjointHorizAnalysis::GradientJDragHydroSSA
void GradientJDragHydroSSA(Element *element, Vector< IssmDouble > *gradient, int control_index)
Definition: AdjointHorizAnalysis.cpp:2165
AdjointHorizAnalysis::GradientJBinitial
void GradientJBinitial(Element *element, Vector< IssmDouble > *gradient, int control_index)
Definition: AdjointHorizAnalysis.cpp:1423
AdjointHorizAnalysis::CreatePVectorSSA
ElementVector * CreatePVectorSSA(Element *element)
Definition: AdjointHorizAnalysis.cpp:824
AdjointHorizAnalysis::GradientJBbarSSA
void GradientJBbarSSA(Element *element, Vector< IssmDouble > *gradient, int control_index)
Definition: AdjointHorizAnalysis.cpp:1269
Inputs2
Declaration of Inputs class.
Definition: Inputs2.h:23
AdjointHorizAnalysis::GradientJDSSA
void GradientJDSSA(Element *element, Vector< IssmDouble > *gradient, int control_index)
Definition: AdjointHorizAnalysis.cpp:2291
AdjointHorizAnalysis::GradientJBFS
void GradientJBFS(Element *element, Vector< IssmDouble > *gradient, int control_index)
Definition: AdjointHorizAnalysis.cpp:1353
AdjointHorizAnalysis::CreatePVectorHO
ElementVector * CreatePVectorHO(Element *element)
Definition: AdjointHorizAnalysis.cpp:589
AdjointHorizAnalysis::CreatePVectorFS
ElementVector * CreatePVectorFS(Element *element)
Definition: AdjointHorizAnalysis.cpp:343
AdjointHorizAnalysis::CreateDVector
ElementVector * CreateDVector(Element *element)
Definition: AdjointHorizAnalysis.cpp:32
AdjointHorizAnalysis::UpdateParameters
void UpdateParameters(Parameters *parameters, IoModel *iomodel, int solution_enum, int analysis_enum)
Definition: AdjointHorizAnalysis.cpp:24
AdjointHorizAnalysis::DofsPerNode
int DofsPerNode(int **doflist, int domaintype, int approximation)
Definition: AdjointHorizAnalysis.cpp:18
FemModel
Definition: FemModel.h:31
Loads
Declaration of Loads class.
Definition: Loads.h:16
AdjointHorizAnalysis
Definition: AdjointHorizAnalysis.h:11
AdjointHorizAnalysis::GradientJBbarGradient
void GradientJBbarGradient(Element *element, Vector< IssmDouble > *gradient, int control_index)
Definition: AdjointHorizAnalysis.cpp:1184
AdjointHorizAnalysis::CreateLoads
void CreateLoads(Loads *loads, IoModel *iomodel)
Definition: AdjointHorizAnalysis.cpp:12
AdjointHorizAnalysis::CreateKMatrixFS
ElementMatrix * CreateKMatrixFS(Element *element)
Definition: AdjointHorizAnalysis.cpp:57
AdjointHorizAnalysis::CreateNodes
void CreateNodes(Nodes *nodes, IoModel *iomodel, bool isamr=false)
Definition: AdjointHorizAnalysis.cpp:15
ElementVector
Definition: ElementVector.h:20
IoModel
Definition: IoModel.h:48
AdjointHorizAnalysis::GradientJBSSA
void GradientJBSSA(Element *element, Vector< IssmDouble > *gradient, int control_index)
Definition: AdjointHorizAnalysis.cpp:1563
ElementMatrix
Definition: ElementMatrix.h:19
AdjointHorizAnalysis::GradientJDragHydroHO
void GradientJDragHydroHO(Element *element, Vector< IssmDouble > *gradient, int control_index)
Definition: AdjointHorizAnalysis.cpp:2092
Vector< IssmDouble >
Analysis
Definition: Analysis.h:30
AdjointHorizAnalysis::Core
void Core(FemModel *femmodel)
Definition: AdjointHorizAnalysis.cpp:29
AdjointHorizAnalysis::GradientJDragSSA
void GradientJDragSSA(Element *element, Vector< IssmDouble > *gradient, int control_index)
Definition: AdjointHorizAnalysis.cpp:1904
AdjointHorizAnalysis::GradientJBbarHO
void GradientJBbarHO(Element *element, Vector< IssmDouble > *gradient, int control_index)
Definition: AdjointHorizAnalysis.cpp:1264
AdjointHorizAnalysis::GradientJBbarL1L2
void GradientJBbarL1L2(Element *element, Vector< IssmDouble > *gradient, int control_index)
Definition: AdjointHorizAnalysis.cpp:1259
AdjointHorizAnalysis::CreateKMatrixSSA
ElementMatrix * CreateKMatrixSSA(Element *element)
Definition: AdjointHorizAnalysis.cpp:234
femmodel
FemModel * femmodel
Definition: esmfbinders.cpp:16