source: issm/trunk/src/c/analyses/AdjointHorizAnalysis.h@ 26744

Last change on this file since 26744 was 26744, checked in by Mathieu Morlighem, 3 years ago

merged trunk-jpl and trunk for revision 26742

File size: 4.9 KB
Line 
1/*! \file AdjointHorizAnalysis.h
2 * \brief: header file for generic external result object
3 */
4
5#ifndef _AdjointHorizAnalysis_
6#define _AdjointHorizAnalysis_
7
8/*Headers*/
9#include "./Analysis.h"
10
11class AdjointHorizAnalysis: public Analysis{
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,Inputs* inputs,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);
24 void PreCore(FemModel* femmodel);
25 ElementVector* CreateDVector(Element* element);
26 ElementMatrix* CreateJacobianMatrix(Element* element);
27 ElementMatrix* CreateKMatrix(Element* element);
28 ElementMatrix* CreateKMatrixFS(Element* element);
29 ElementMatrix* CreateKMatrixHO(Element* element);
30 ElementMatrix* CreateKMatrixMLHO(Element* element);
31 ElementMatrix* CreateKMatrixMLHOVerticalIntergrated(Element* element);
32 ElementMatrix* CreateKMatrixL1L2(Element* element);
33 ElementMatrix* CreateKMatrixSSA(Element* element);
34 ElementVector* CreatePVector(Element* element);
35 ElementVector* CreatePVectorFS(Element* element);
36 ElementVector* CreatePVectorL1L2(Element* element);
37 ElementVector* CreatePVectorHO(Element* element);
38 ElementVector* CreatePVectorMLHO(Element* element);
39 ElementVector* CreatePVectorSSA(Element* element);
40 void GetSolutionFromInputs(Vector<IssmDouble>* solution,Element* element);
41 void GradientJ(Vector<IssmDouble>* gradient,Element* element,int control_type,int control_interp,int control_index);
42 void GradientJBbarFS(Element* element,Vector<IssmDouble>* gradient,int control_interp,int control_index);
43 void GradientJBbarGradient(Element* element,Vector<IssmDouble>* gradient,int control_interp,int control_index);
44 void GradientJBinitial(Element* element,Vector<IssmDouble>* gradient,int control_interp,int control_index);
45 void GradientJBbarL1L2(Element* element,Vector<IssmDouble>* gradient,int control_interp,int control_index);
46 void GradientJBbarHO(Element* element,Vector<IssmDouble>* gradient,int control_interp,int control_index);
47 void GradientJBbarMLHO(Element* element,Vector<IssmDouble>* gradient,int control_interp,int control_index);
48 void GradientJBbarSSA(Element* element,Vector<IssmDouble>* gradient,int control_interp,int control_index);
49 void GradientJBFS(Element* element,Vector<IssmDouble>* gradient,int control_interp,int control_index);
50 void GradientJBGradient(Element* element,Vector<IssmDouble>* gradient,int control_interp,int control_index);
51 void GradientJBHO(Element* element,Vector<IssmDouble>* gradient,int control_interp,int control_index);
52 void GradientJBMLHO(Element* element,Vector<IssmDouble>* gradient,int control_interp,int control_index);
53 void GradientJBSSA(Element* element,Vector<IssmDouble>* gradient,int control_interp,int control_index);
54 void GradientJDragFS(Element* element,Vector<IssmDouble>* gradient,int control_interp,int control_index);
55 void GradientJDragGradient(Element* element,Vector<IssmDouble>* gradient,int control_interp,int control_index);
56 void GradientJDragL1L2(Element* element,Vector<IssmDouble>* gradient,int control_interp,int control_index);
57 void GradientJDragHO(Element* element,Vector<IssmDouble>* gradient,int control_interp,int control_index);
58 void GradientJDragMLHO(Element* element,Vector<IssmDouble>* gradient,int control_interp,int control_index);
59 void GradientJDragSSA(Element* element,Vector<IssmDouble>* gradient,int control_interp,int control_index);
60 void GradientJDragHydroFS(Element* element,Vector<IssmDouble>* gradient,int control_interp,int control_index);
61 void GradientJDragHydroL1L2(Element* element,Vector<IssmDouble>* gradient,int control_interp,int control_index);
62 void GradientJDragHydroHO(Element* element,Vector<IssmDouble>* gradient,int control_interp,int control_index);
63 void GradientJDragHydroSSA(Element* element,Vector<IssmDouble>* gradient,int control_interp,int control_index);
64 void GradientJDSSA(Element* element,Vector<IssmDouble>* gradient,int control_interp,int control_index);
65 void InputUpdateFromSolution(IssmDouble* solution,Element* element);
66 void InputUpdateFromSolutionFS(IssmDouble* solution,Element* element);
67 void InputUpdateFromSolutionHoriz(IssmDouble* solution,Element* element);
68 void InputUpdateFromSolutionMLHO(IssmDouble* solution,Element* element);
69 void UpdateConstraints(FemModel* femmodel);
70};
71#endif
Note: See TracBrowser for help on using the repository browser.