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

Last change on this file since 25836 was 25836, checked in by Mathieu Morlighem, 4 years ago

merged trunk-jpl and trunk for revision 25834

File size: 4.3 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 ElementVector* CreateDVector(Element* element);
25 ElementMatrix* CreateJacobianMatrix(Element* element);
26 ElementMatrix* CreateKMatrix(Element* element);
27 ElementMatrix* CreateKMatrixFS(Element* element);
28 ElementMatrix* CreateKMatrixHO(Element* element);
29 ElementMatrix* CreateKMatrixL1L2(Element* element);
30 ElementMatrix* CreateKMatrixSSA(Element* element);
31 ElementVector* CreatePVector(Element* element);
32 ElementVector* CreatePVectorFS(Element* element);
33 ElementVector* CreatePVectorL1L2(Element* element);
34 ElementVector* CreatePVectorHO(Element* element);
35 ElementVector* CreatePVectorSSA(Element* element);
36 void GetSolutionFromInputs(Vector<IssmDouble>* solution,Element* element);
37 void GradientJ(Vector<IssmDouble>* gradient,Element* element,int control_type,int control_interp,int control_index);
38 void GradientJBbarFS(Element* element,Vector<IssmDouble>* gradient,int control_interp,int control_index);
39 void GradientJBbarGradient(Element* element,Vector<IssmDouble>* gradient,int control_interp,int control_index);
40 void GradientJBinitial(Element* element,Vector<IssmDouble>* gradient,int control_interp,int control_index);
41 void GradientJBbarL1L2(Element* element,Vector<IssmDouble>* gradient,int control_interp,int control_index);
42 void GradientJBbarHO(Element* element,Vector<IssmDouble>* gradient,int control_interp,int control_index);
43 void GradientJBbarSSA(Element* element,Vector<IssmDouble>* gradient,int control_interp,int control_index);
44 void GradientJBFS(Element* element,Vector<IssmDouble>* gradient,int control_interp,int control_index);
45 void GradientJBGradient(Element* element,Vector<IssmDouble>* gradient,int control_interp,int control_index);
46 void GradientJBHO(Element* element,Vector<IssmDouble>* gradient,int control_interp,int control_index);
47 void GradientJBSSA(Element* element,Vector<IssmDouble>* gradient,int control_interp,int control_index);
48 void GradientJDragFS(Element* element,Vector<IssmDouble>* gradient,int control_interp,int control_index);
49 void GradientJDragGradient(Element* element,Vector<IssmDouble>* gradient,int control_interp,int control_index);
50 void GradientJDragL1L2(Element* element,Vector<IssmDouble>* gradient,int control_interp,int control_index);
51 void GradientJDragHO(Element* element,Vector<IssmDouble>* gradient,int control_interp,int control_index);
52 void GradientJDragSSA(Element* element,Vector<IssmDouble>* gradient,int control_interp,int control_index);
53 void GradientJDragHydroFS(Element* element,Vector<IssmDouble>* gradient,int control_interp,int control_index);
54 void GradientJDragHydroL1L2(Element* element,Vector<IssmDouble>* gradient,int control_interp,int control_index);
55 void GradientJDragHydroHO(Element* element,Vector<IssmDouble>* gradient,int control_interp,int control_index);
56 void GradientJDragHydroSSA(Element* element,Vector<IssmDouble>* gradient,int control_interp,int control_index);
57 void GradientJDSSA(Element* element,Vector<IssmDouble>* gradient,int control_interp,int control_index);
58 void InputUpdateFromSolution(IssmDouble* solution,Element* element);
59 void InputUpdateFromSolutionFS(IssmDouble* solution,Element* element);
60 void InputUpdateFromSolutionHoriz(IssmDouble* solution,Element* element);
61 void UpdateConstraints(FemModel* femmodel);
62};
63#endif
Note: See TracBrowser for help on using the repository browser.