Changeset 18057
- Timestamp:
- 05/25/14 17:30:19 (11 years ago)
- Location:
- issm/trunk-jpl/src/c/analyses
- Files:
-
- 66 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/src/c/analyses/AdjointBalancethickness2Analysis.cpp
r18055 r18057 123 123 _error_("not implemented yet"); 124 124 }/*}}}*/ 125 void AdjointBalancethickness2Analysis::GradientJ(Vector<IssmDouble>* gradient, int control_index){/*{{{*/125 void AdjointBalancethickness2Analysis::GradientJ(Vector<IssmDouble>* gradient,Element* element,int control_type,int control_index){/*{{{*/ 126 126 _error_("Not implemented yet"); 127 127 }/*}}}*/ -
issm/trunk-jpl/src/c/analyses/AdjointBalancethickness2Analysis.h
r18055 r18057 27 27 ElementVector* CreatePVector(Element* element); 28 28 void GetSolutionFromInputs(Vector<IssmDouble>* solution,Element* element); 29 void GradientJ(Vector<IssmDouble>* gradient, int control_index);29 void GradientJ(Vector<IssmDouble>* gradient,Element* element,int control_type,int control_index); 30 30 void InputUpdateFromSolution(IssmDouble* solution,Element* element); 31 31 void UpdateConstraints(FemModel* femmodel); -
issm/trunk-jpl/src/c/analyses/AdjointBalancethicknessAnalysis.cpp
r18055 r18057 150 150 _error_("not implemented yet"); 151 151 }/*}}}*/ 152 void AdjointBalancethicknessAnalysis::GradientJ(Vector<IssmDouble>* gradient, int control_index){/*{{{*/152 void AdjointBalancethicknessAnalysis::GradientJ(Vector<IssmDouble>* gradient,Element* element,int control_type,int control_index){/*{{{*/ 153 153 _error_("Not implemented yet"); 154 154 }/*}}}*/ -
issm/trunk-jpl/src/c/analyses/AdjointBalancethicknessAnalysis.h
r18055 r18057 27 27 ElementVector* CreatePVector(Element* element); 28 28 void GetSolutionFromInputs(Vector<IssmDouble>* solution,Element* element); 29 void GradientJ(Vector<IssmDouble>* gradient, int control_index);29 void GradientJ(Vector<IssmDouble>* gradient,Element* element,int control_type,int control_index); 30 30 void InputUpdateFromSolution(IssmDouble* solution,Element* element); 31 31 void UpdateConstraints(FemModel* femmodel); -
issm/trunk-jpl/src/c/analyses/AdjointHorizAnalysis.cpp
r18055 r18057 900 900 _error_("not implemented yet"); 901 901 }/*}}}*/ 902 void AdjointHorizAnalysis::GradientJ(Vector<IssmDouble>* gradient,int control_index){/*{{{*/ 903 _error_("Not implemented yet"); 902 void AdjointHorizAnalysis::GradientJ(Vector<IssmDouble>* gradient,Element* element,int control_type,int control_index){/*{{{*/ 903 /*The gradient of the cost function is calculated in 2 parts. 904 * 905 * dJ \partial J \partial lambda^T(KU-F) 906 * -- = ---------- + ------------------------ 907 * dk \partial k \parial k 908 * 909 * */ 910 911 /*If on water, grad = 0: */ 912 if(!element->IsIceInElement()) return; 913 914 /*Get Approximation*/ 915 int approximation; 916 element->GetInputValue(&approximation,ApproximationEnum); 917 918 /*Get list of cost functions*/ 919 int *responses = NULL; 920 int num_responses,resp; 921 element->FindParam(&num_responses,InversionNumCostFunctionsEnum); 922 element->FindParam(&responses,NULL,InversionCostFunctionsEnum); 923 924 /*Check that control_type is supported*/ 925 if(control_type!=MaterialsRheologyBbarEnum || control_type!=FrictionCoefficientEnum || control_type!=DamageDbarEnum){ 926 _error_("Control "<<EnumToStringx(control_type)<<" not supported"); 927 } 928 929 /*Deal with first part (partial derivative a J with respect to k)*/ 930 for(resp=0;resp<num_responses;resp++) switch(responses[resp]){ 931 case SurfaceAbsVelMisfitEnum: /*Nothing, \partial J/\partial k = 0*/ break; 932 case SurfaceRelVelMisfitEnum: /*Nothing, \partial J/\partial k = 0*/ break; 933 case SurfaceLogVelMisfitEnum: /*Nothing, \partial J/\partial k = 0*/ break; 934 case SurfaceLogVxVyMisfitEnum: /*Nothing, \partial J/\partial k = 0*/ break; 935 case SurfaceAverageVelMisfitEnum: /*Nothing, \partial J/\partial k = 0*/ break; 936 case DragCoefficientAbsGradientEnum: GradientJDragGradient(element,gradient,control_index); break; 937 case RheologyBbarAbsGradientEnum: GradientJBGradient(element,gradient,control_index); break; 938 default: _error_("response " << EnumToStringx(responses[resp]) << " not supported yet"); 939 } 940 941 /*Deal with second term*/ 942 switch(control_type){ 943 case FrictionCoefficientEnum: 944 switch(approximation){ 945 case SSAApproximationEnum: GradientJDragSSA(element,gradient,control_index); break; 946 case HOApproximationEnum: GradientJDragHO( element,gradient,control_index); break; 947 case FSApproximationEnum: GradientJDragFS( element,gradient,control_index); break; 948 case NoneApproximationEnum: /*Gradient is 0*/ break; 949 default: _error_("approximation " << EnumToStringx(approximation) << " not supported yet"); 950 } 951 break; 952 case MaterialsRheologyBbarEnum: 953 switch(approximation){ 954 case SSAApproximationEnum: GradientJBbarSSA(element,gradient,control_index); break; 955 case HOApproximationEnum: GradientJBbarHO( element,gradient,control_index); break; 956 case FSApproximationEnum: GradientJBbarFS( element,gradient,control_index); break; 957 case NoneApproximationEnum: /*Gradient is 0*/ break; 958 default: _error_("approximation " << EnumToStringx(approximation) << " not supported yet"); 959 } 960 break; 961 case DamageDbarEnum: 962 switch(approximation){ 963 case SSAApproximationEnum: GradientJDSSA(element,gradient,control_index); break; 964 case NoneApproximationEnum: /*Gradient is 0*/ break; 965 default: _error_("approximation " << EnumToStringx(approximation) << " not supported yet"); 966 } 967 break; 968 default: _error_("control type not supported yet: " << EnumToStringx(control_type)); 969 } 970 971 /*Clean up and return*/ 972 xDelete<int>(responses); 973 974 }/*}}}*/ 975 void AdjointHorizAnalysis::GradientJDragGradient(Element* element,Vector<IssmDouble>* gradient,int control_index){/*{{{*/ 976 _error_("not implemented yet"); 977 }/*}}}*/ 978 void AdjointHorizAnalysis::GradientJBGradient(Element* element,Vector<IssmDouble>* gradient,int control_index){/*{{{*/ 979 _error_("not implemented yet"); 980 }/*}}}*/ 981 void AdjointHorizAnalysis::GradientJDragSSA(Element* element,Vector<IssmDouble>* gradient,int control_index){/*{{{*/ 982 _error_("not implemented yet"); 983 }/*}}}*/ 984 void AdjointHorizAnalysis::GradientJDragHO(Element* element,Vector<IssmDouble>* gradient,int control_index){/*{{{*/ 985 _error_("not implemented yet"); 986 }/*}}}*/ 987 void AdjointHorizAnalysis::GradientJDragFS(Element* element,Vector<IssmDouble>* gradient,int control_index){/*{{{*/ 988 _error_("not implemented yet"); 989 }/*}}}*/ 990 void AdjointHorizAnalysis::GradientJBbarSSA(Element* element,Vector<IssmDouble>* gradient,int control_index){/*{{{*/ 991 _error_("not implemented yet"); 992 }/*}}}*/ 993 void AdjointHorizAnalysis::GradientJBbarHO(Element* element,Vector<IssmDouble>* gradient,int control_index){/*{{{*/ 994 _error_("not implemented yet"); 995 }/*}}}*/ 996 void AdjointHorizAnalysis::GradientJBbarFS(Element* element,Vector<IssmDouble>* gradient,int control_index){/*{{{*/ 997 _error_("not implemented yet"); 998 }/*}}}*/ 999 void AdjointHorizAnalysis::GradientJDSSA(Element* element,Vector<IssmDouble>* gradient,int control_index){/*{{{*/ 1000 _error_("not implemented yet"); 904 1001 }/*}}}*/ 905 1002 void AdjointHorizAnalysis::InputUpdateFromSolution(IssmDouble* solution,Element* element){/*{{{*/ -
issm/trunk-jpl/src/c/analyses/AdjointHorizAnalysis.h
r18055 r18057 33 33 ElementVector* CreatePVectorFS(Element* element); 34 34 void GetSolutionFromInputs(Vector<IssmDouble>* solution,Element* element); 35 void GradientJ(Vector<IssmDouble>* gradient,int control_index); 35 void GradientJ(Vector<IssmDouble>* gradient,Element* element,int control_type,int control_index); 36 void GradientJDragGradient(Element* element,Vector<IssmDouble>* gradient,int control_index); 37 void GradientJBGradient(Element* element,Vector<IssmDouble>* gradient,int control_index); 38 void GradientJDragSSA(Element* element,Vector<IssmDouble>* gradient,int control_index); 39 void GradientJDragHO(Element* element,Vector<IssmDouble>* gradient,int control_index); 40 void GradientJDragFS(Element* element,Vector<IssmDouble>* gradient,int control_index); 41 void GradientJBbarSSA(Element* element,Vector<IssmDouble>* gradient,int control_index); 42 void GradientJBbarHO(Element* element,Vector<IssmDouble>* gradient,int control_index); 43 void GradientJBbarFS(Element* element,Vector<IssmDouble>* gradient,int control_index); 44 void GradientJDSSA(Element* element,Vector<IssmDouble>* gradient,int control_index); 36 45 void InputUpdateFromSolution(IssmDouble* solution,Element* element); 37 46 void UpdateConstraints(FemModel* femmodel); -
issm/trunk-jpl/src/c/analyses/Analysis.h
r18055 r18057 40 40 virtual ElementVector* CreatePVector(Element* element)=0; 41 41 virtual void GetSolutionFromInputs(Vector<IssmDouble>* solution,Element* element)=0; 42 virtual void GradientJ(Vector<IssmDouble>* gradient, int control_index)=0;42 virtual void GradientJ(Vector<IssmDouble>* gradient,Element* element,int control_type,int control_index)=0; 43 43 virtual void InputUpdateFromSolution(IssmDouble* solution,Element* element)=0; 44 44 virtual void UpdateConstraints(FemModel* femmodel)=0; -
issm/trunk-jpl/src/c/analyses/Balancethickness2Analysis.cpp
r18055 r18057 196 196 _error_("not implemented yet"); 197 197 }/*}}}*/ 198 void Balancethickness2Analysis::GradientJ(Vector<IssmDouble>* gradient, int control_index){/*{{{*/198 void Balancethickness2Analysis::GradientJ(Vector<IssmDouble>* gradient,Element* element,int control_type,int control_index){/*{{{*/ 199 199 _error_("Not implemented yet"); 200 200 }/*}}}*/ -
issm/trunk-jpl/src/c/analyses/Balancethickness2Analysis.h
r18055 r18057 29 29 ElementVector* CreatePVectorBoundary(Element* element); 30 30 void GetSolutionFromInputs(Vector<IssmDouble>* solution,Element* element); 31 void GradientJ(Vector<IssmDouble>* gradient, int control_index);31 void GradientJ(Vector<IssmDouble>* gradient,Element* element,int control_type,int control_index); 32 32 void InputUpdateFromSolution(IssmDouble* solution,Element* element); 33 33 void UpdateConstraints(FemModel* femmodel); -
issm/trunk-jpl/src/c/analyses/BalancethicknessAnalysis.cpp
r18055 r18057 479 479 _error_("not implemented yet"); 480 480 }/*}}}*/ 481 void BalancethicknessAnalysis::GradientJ(Vector<IssmDouble>* gradient, int control_index){/*{{{*/481 void BalancethicknessAnalysis::GradientJ(Vector<IssmDouble>* gradient,Element* element,int control_type,int control_index){/*{{{*/ 482 482 _error_("Not implemented yet"); 483 483 }/*}}}*/ -
issm/trunk-jpl/src/c/analyses/BalancethicknessAnalysis.h
r18055 r18057 33 33 void GetBprime(IssmDouble* B,Element* element,IssmDouble* xyz_list,Gauss* gauss); 34 34 void GetSolutionFromInputs(Vector<IssmDouble>* solution,Element* element); 35 void GradientJ(Vector<IssmDouble>* gradient, int control_index);35 void GradientJ(Vector<IssmDouble>* gradient,Element* element,int control_type,int control_index); 36 36 void InputUpdateFromSolution(IssmDouble* solution,Element* element); 37 37 void UpdateConstraints(FemModel* femmodel); -
issm/trunk-jpl/src/c/analyses/BalancethicknessSoftAnalysis.cpp
r18055 r18057 45 45 _error_("not implemented yet"); 46 46 }/*}}}*/ 47 void BalancethicknessSoftAnalysis::GradientJ(Vector<IssmDouble>* gradient, int control_index){/*{{{*/47 void BalancethicknessSoftAnalysis::GradientJ(Vector<IssmDouble>* gradient,Element* element,int control_type,int control_index){/*{{{*/ 48 48 _error_("Not implemented yet"); 49 49 }/*}}}*/ -
issm/trunk-jpl/src/c/analyses/BalancethicknessSoftAnalysis.h
r18055 r18057 27 27 ElementVector* CreatePVector(Element* element); 28 28 void GetSolutionFromInputs(Vector<IssmDouble>* solution,Element* element); 29 void GradientJ(Vector<IssmDouble>* gradient, int control_index);29 void GradientJ(Vector<IssmDouble>* gradient,Element* element,int control_type,int control_index); 30 30 void InputUpdateFromSolution(IssmDouble* solution,Element* element); 31 31 void UpdateConstraints(FemModel* femmodel); -
issm/trunk-jpl/src/c/analyses/BalancevelocityAnalysis.cpp
r18055 r18057 241 241 _error_("not implemented yet"); 242 242 }/*}}}*/ 243 void BalancevelocityAnalysis::GradientJ(Vector<IssmDouble>* gradient, int control_index){/*{{{*/243 void BalancevelocityAnalysis::GradientJ(Vector<IssmDouble>* gradient,Element* element,int control_type,int control_index){/*{{{*/ 244 244 _error_("Not implemented yet"); 245 245 }/*}}}*/ -
issm/trunk-jpl/src/c/analyses/BalancevelocityAnalysis.h
r18055 r18057 27 27 ElementVector* CreatePVector(Element* element); 28 28 void GetSolutionFromInputs(Vector<IssmDouble>* solution,Element* element); 29 void GradientJ(Vector<IssmDouble>* gradient, int control_index);29 void GradientJ(Vector<IssmDouble>* gradient,Element* element,int control_type,int control_index); 30 30 void InputUpdateFromSolution(IssmDouble* solution,Element* element); 31 31 void UpdateConstraints(FemModel* femmodel); -
issm/trunk-jpl/src/c/analyses/DamageEvolutionAnalysis.cpp
r18055 r18057 383 383 _error_("not implemented yet"); 384 384 }/*}}}*/ 385 void DamageEvolutionAnalysis::GradientJ(Vector<IssmDouble>* gradient, int control_index){/*{{{*/385 void DamageEvolutionAnalysis::GradientJ(Vector<IssmDouble>* gradient,Element* element,int control_type,int control_index){/*{{{*/ 386 386 _error_("Not implemented yet"); 387 387 }/*}}}*/ -
issm/trunk-jpl/src/c/analyses/DamageEvolutionAnalysis.h
r18055 r18057 29 29 void GetBprime(IssmDouble* B,Element* element,int dim,IssmDouble* xyz_list,Gauss* gauss); 30 30 void GetSolutionFromInputs(Vector<IssmDouble>* solution,Element* element); 31 void GradientJ(Vector<IssmDouble>* gradient, int control_index);31 void GradientJ(Vector<IssmDouble>* gradient,Element* element,int control_type,int control_index); 32 32 void InputUpdateFromSolution(IssmDouble* solution,Element* element); 33 33 void UpdateConstraints(FemModel* femmodel); -
issm/trunk-jpl/src/c/analyses/DepthAverageAnalysis.cpp
r18055 r18057 160 160 _error_("not implemented yet"); 161 161 }/*}}}*/ 162 void DepthAverageAnalysis::GradientJ(Vector<IssmDouble>* gradient, int control_index){/*{{{*/162 void DepthAverageAnalysis::GradientJ(Vector<IssmDouble>* gradient,Element* element,int control_type,int control_index){/*{{{*/ 163 163 _error_("Not implemented yet"); 164 164 }/*}}}*/ -
issm/trunk-jpl/src/c/analyses/DepthAverageAnalysis.h
r18055 r18057 28 28 void GetB(IssmDouble* B,Element* element,int dim,IssmDouble* xyz_list,Gauss* gauss); 29 29 void GetSolutionFromInputs(Vector<IssmDouble>* solution,Element* element); 30 void GradientJ(Vector<IssmDouble>* gradient, int control_index);30 void GradientJ(Vector<IssmDouble>* gradient,Element* element,int control_type,int control_index); 31 31 void InputUpdateFromSolution(IssmDouble* solution,Element* element); 32 32 void UpdateConstraints(FemModel* femmodel); -
issm/trunk-jpl/src/c/analyses/EnthalpyAnalysis.cpp
r18055 r18057 780 780 element->GetSolutionFromInputsOneDof(solution,EnthalpyEnum); 781 781 }/*}}}*/ 782 void EnthalpyAnalysis::GradientJ(Vector<IssmDouble>* gradient, int control_index){/*{{{*/782 void EnthalpyAnalysis::GradientJ(Vector<IssmDouble>* gradient,Element* element,int control_type,int control_index){/*{{{*/ 783 783 _error_("Not implemented yet"); 784 784 }/*}}}*/ -
issm/trunk-jpl/src/c/analyses/EnthalpyAnalysis.h
r18055 r18057 35 35 void GetBAdvecprime(IssmDouble* B,Element* element,IssmDouble* xyz_list,Gauss* gauss); 36 36 void GetSolutionFromInputs(Vector<IssmDouble>* solution,Element* element); 37 void GradientJ(Vector<IssmDouble>* gradient, int control_index);37 void GradientJ(Vector<IssmDouble>* gradient,Element* element,int control_type,int control_index); 38 38 void InputUpdateFromSolution(IssmDouble* solution,Element* element); 39 39 void UpdateConstraints(FemModel* femmodel); -
issm/trunk-jpl/src/c/analyses/EnumToAnalysis.h
r18055 r18057 22 22 ElementVector* CreatePVector(Element* element); 23 23 void GetSolutionFromInputs(Vector<IssmDouble>* solution,Element* element); 24 void GradientJ(Vector<IssmDouble>* gradient, int control_index);24 void GradientJ(Vector<IssmDouble>* gradient,Element* element,int control_type,int control_index); 25 25 void InputUpdateFromSolution(IssmDouble* solution,Element* element); 26 26 void UpdateConstraints(FemModel* femmodel); -
issm/trunk-jpl/src/c/analyses/ExtrapolationAnalysis.cpp
r18055 r18057 240 240 _error_("not implemented yet"); 241 241 }/*}}}*/ 242 void ExtrapolationAnalysis::GradientJ(Vector<IssmDouble>* gradient, int control_index){/*{{{*/242 void ExtrapolationAnalysis::GradientJ(Vector<IssmDouble>* gradient,Element* element,int control_type,int control_index){/*{{{*/ 243 243 _error_("Not implemented yet"); 244 244 }/*}}}*/ -
issm/trunk-jpl/src/c/analyses/ExtrapolationAnalysis.h
r18055 r18057 27 27 ElementVector* CreatePVector(Element* element); 28 28 void GetSolutionFromInputs(Vector<IssmDouble>* solution,Element* element); 29 void GradientJ(Vector<IssmDouble>* gradient, int control_index);29 void GradientJ(Vector<IssmDouble>* gradient,Element* element,int control_type,int control_index); 30 30 void InputUpdateFromSolution(IssmDouble* solution,Element* element); 31 31 void UpdateConstraints(FemModel* femmodel); -
issm/trunk-jpl/src/c/analyses/ExtrudeFromBaseAnalysis.cpp
r18055 r18057 222 222 _error_("not implemented yet"); 223 223 }/*}}}*/ 224 void ExtrudeFromBaseAnalysis::GradientJ(Vector<IssmDouble>* gradient, int control_index){/*{{{*/224 void ExtrudeFromBaseAnalysis::GradientJ(Vector<IssmDouble>* gradient,Element* element,int control_type,int control_index){/*{{{*/ 225 225 _error_("Not implemented yet"); 226 226 }/*}}}*/ -
issm/trunk-jpl/src/c/analyses/ExtrudeFromBaseAnalysis.h
r18055 r18057 31 31 void GetB(IssmDouble* B,Element* element,int dim,IssmDouble* xyz_list,Gauss* gauss); 32 32 void GetSolutionFromInputs(Vector<IssmDouble>* solution,Element* element); 33 void GradientJ(Vector<IssmDouble>* gradient, int control_index);33 void GradientJ(Vector<IssmDouble>* gradient,Element* element,int control_type,int control_index); 34 34 void InputUpdateFromSolution(IssmDouble* solution,Element* element); 35 35 void UpdateConstraints(FemModel* femmodel); -
issm/trunk-jpl/src/c/analyses/ExtrudeFromTopAnalysis.cpp
r18055 r18057 222 222 _error_("not implemented yet"); 223 223 }/*}}}*/ 224 void ExtrudeFromTopAnalysis::GradientJ(Vector<IssmDouble>* gradient, int control_index){/*{{{*/224 void ExtrudeFromTopAnalysis::GradientJ(Vector<IssmDouble>* gradient,Element* element,int control_type,int control_index){/*{{{*/ 225 225 _error_("Not implemented yet"); 226 226 }/*}}}*/ -
issm/trunk-jpl/src/c/analyses/ExtrudeFromTopAnalysis.h
r18055 r18057 31 31 void GetB(IssmDouble* B,Element* element,int dim,IssmDouble* xyz_list,Gauss* gauss); 32 32 void GetSolutionFromInputs(Vector<IssmDouble>* solution,Element* element); 33 void GradientJ(Vector<IssmDouble>* gradient, int control_index);33 void GradientJ(Vector<IssmDouble>* gradient,Element* element,int control_type,int control_index); 34 34 void InputUpdateFromSolution(IssmDouble* solution,Element* element); 35 35 void UpdateConstraints(FemModel* femmodel); -
issm/trunk-jpl/src/c/analyses/FreeSurfaceBaseAnalysis.cpp
r18055 r18057 364 364 _error_("not implemented yet"); 365 365 }/*}}}*/ 366 void FreeSurfaceBaseAnalysis::GradientJ(Vector<IssmDouble>* gradient, int control_index){/*{{{*/366 void FreeSurfaceBaseAnalysis::GradientJ(Vector<IssmDouble>* gradient,Element* element,int control_type,int control_index){/*{{{*/ 367 367 _error_("Not implemented yet"); 368 368 }/*}}}*/ -
issm/trunk-jpl/src/c/analyses/FreeSurfaceBaseAnalysis.h
r18055 r18057 29 29 void GetBprime(IssmDouble* B,Element* element,int dim,IssmDouble* xyz_list,Gauss* gauss); 30 30 void GetSolutionFromInputs(Vector<IssmDouble>* solution,Element* element); 31 void GradientJ(Vector<IssmDouble>* gradient, int control_index);31 void GradientJ(Vector<IssmDouble>* gradient,Element* element,int control_type,int control_index); 32 32 void InputUpdateFromSolution(IssmDouble* solution,Element* element); 33 33 void UpdateConstraints(FemModel* femmodel); -
issm/trunk-jpl/src/c/analyses/FreeSurfaceTopAnalysis.cpp
r18055 r18057 367 367 _error_("not implemented yet"); 368 368 }/*}}}*/ 369 void FreeSurfaceTopAnalysis::GradientJ(Vector<IssmDouble>* gradient, int control_index){/*{{{*/369 void FreeSurfaceTopAnalysis::GradientJ(Vector<IssmDouble>* gradient,Element* element,int control_type,int control_index){/*{{{*/ 370 370 _error_("Not implemented yet"); 371 371 }/*}}}*/ -
issm/trunk-jpl/src/c/analyses/FreeSurfaceTopAnalysis.h
r18055 r18057 29 29 void GetBprime(IssmDouble* B,Element* element,int dim,IssmDouble* xyz_list,Gauss* gauss); 30 30 void GetSolutionFromInputs(Vector<IssmDouble>* solution,Element* element); 31 void GradientJ(Vector<IssmDouble>* gradient, int control_index);31 void GradientJ(Vector<IssmDouble>* gradient,Element* element,int control_type,int control_index); 32 32 void InputUpdateFromSolution(IssmDouble* solution,Element* element); 33 33 void UpdateConstraints(FemModel* femmodel); -
issm/trunk-jpl/src/c/analyses/GiaAnalysis.cpp
r18055 r18057 57 57 _error_("not implemented yet"); 58 58 }/*}}}*/ 59 void GiaAnalysis::GradientJ(Vector<IssmDouble>* gradient, int control_index){/*{{{*/59 void GiaAnalysis::GradientJ(Vector<IssmDouble>* gradient,Element* element,int control_type,int control_index){/*{{{*/ 60 60 _error_("Not implemented yet"); 61 61 }/*}}}*/ -
issm/trunk-jpl/src/c/analyses/GiaAnalysis.h
r18055 r18057 27 27 ElementVector* CreatePVector(Element* element); 28 28 void GetSolutionFromInputs(Vector<IssmDouble>* solution,Element* element); 29 void GradientJ(Vector<IssmDouble>* gradient, int control_index);29 void GradientJ(Vector<IssmDouble>* gradient,Element* element,int control_type,int control_index); 30 30 void InputUpdateFromSolution(IssmDouble* solution,Element* element); 31 31 void UpdateConstraints(FemModel* femmodel); -
issm/trunk-jpl/src/c/analyses/HydrologyDCEfficientAnalysis.cpp
r18055 r18057 317 317 element->GetSolutionFromInputsOneDof(solution,EplHeadEnum); 318 318 }/*}}}*/ 319 void HydrologyDCEfficientAnalysis::GradientJ(Vector<IssmDouble>* gradient, int control_index){/*{{{*/319 void HydrologyDCEfficientAnalysis::GradientJ(Vector<IssmDouble>* gradient,Element* element,int control_type,int control_index){/*{{{*/ 320 320 _error_("Not implemented yet"); 321 321 }/*}}}*/ -
issm/trunk-jpl/src/c/analyses/HydrologyDCEfficientAnalysis.h
r18055 r18057 28 28 ElementVector* CreatePVector(Element* element); 29 29 void GetSolutionFromInputs(Vector<IssmDouble>* solution,Element* element); 30 void GradientJ(Vector<IssmDouble>* gradient, int control_index);30 void GradientJ(Vector<IssmDouble>* gradient,Element* element,int control_type,int control_index); 31 31 void InputUpdateFromSolution(IssmDouble* solution,Element* element); 32 32 void UpdateConstraints(FemModel* femmodel); -
issm/trunk-jpl/src/c/analyses/HydrologyDCInefficientAnalysis.cpp
r18055 r18057 393 393 element->GetSolutionFromInputsOneDof(solution,SedimentHeadEnum); 394 394 }/*}}}*/ 395 void HydrologyDCInefficientAnalysis::GradientJ(Vector<IssmDouble>* gradient, int control_index){/*{{{*/395 void HydrologyDCInefficientAnalysis::GradientJ(Vector<IssmDouble>* gradient,Element* element,int control_type,int control_index){/*{{{*/ 396 396 _error_("Not implemented yet"); 397 397 }/*}}}*/ -
issm/trunk-jpl/src/c/analyses/HydrologyDCInefficientAnalysis.h
r18055 r18057 28 28 ElementVector* CreatePVector(Element* element); 29 29 void GetSolutionFromInputs(Vector<IssmDouble>* solution,Element* element); 30 void GradientJ(Vector<IssmDouble>* gradient, int control_index);30 void GradientJ(Vector<IssmDouble>* gradient,Element* element,int control_type,int control_index); 31 31 void InputUpdateFromSolution(IssmDouble* solution,Element* element); 32 32 void UpdateConstraints(FemModel* femmodel); -
issm/trunk-jpl/src/c/analyses/HydrologyShreveAnalysis.cpp
r18055 r18057 292 292 element->GetSolutionFromInputsOneDof(solution,WatercolumnEnum); 293 293 }/*}}}*/ 294 void HydrologyShreveAnalysis::GradientJ(Vector<IssmDouble>* gradient, int control_index){/*{{{*/294 void HydrologyShreveAnalysis::GradientJ(Vector<IssmDouble>* gradient,Element* element,int control_type,int control_index){/*{{{*/ 295 295 _error_("Not implemented yet"); 296 296 }/*}}}*/ -
issm/trunk-jpl/src/c/analyses/HydrologyShreveAnalysis.h
r18055 r18057 27 27 ElementVector* CreatePVector(Element* element); 28 28 void GetSolutionFromInputs(Vector<IssmDouble>* solution,Element* element); 29 void GradientJ(Vector<IssmDouble>* gradient, int control_index);29 void GradientJ(Vector<IssmDouble>* gradient,Element* element,int control_type,int control_index); 30 30 void InputUpdateFromSolution(IssmDouble* solution,Element* element); 31 31 void UpdateConstraints(FemModel* femmodel); -
issm/trunk-jpl/src/c/analyses/L2ProjectionBaseAnalysis.cpp
r18055 r18057 199 199 _error_("not implemented yet"); 200 200 }/*}}}*/ 201 void L2ProjectionBaseAnalysis::GradientJ(Vector<IssmDouble>* gradient, int control_index){/*{{{*/201 void L2ProjectionBaseAnalysis::GradientJ(Vector<IssmDouble>* gradient,Element* element,int control_type,int control_index){/*{{{*/ 202 202 _error_("Not implemented yet"); 203 203 }/*}}}*/ -
issm/trunk-jpl/src/c/analyses/L2ProjectionBaseAnalysis.h
r18055 r18057 27 27 ElementVector* CreatePVector(Element* element); 28 28 void GetSolutionFromInputs(Vector<IssmDouble>* solution,Element* element); 29 void GradientJ(Vector<IssmDouble>* gradient, int control_index);29 void GradientJ(Vector<IssmDouble>* gradient,Element* element,int control_type,int control_index); 30 30 void InputUpdateFromSolution(IssmDouble* solution,Element* element); 31 31 void UpdateConstraints(FemModel* femmodel); -
issm/trunk-jpl/src/c/analyses/L2ProjectionEPLAnalysis.cpp
r18055 r18057 229 229 _error_("not implemented yet"); 230 230 }/*}}}*/ 231 void L2ProjectionEPLAnalysis::GradientJ(Vector<IssmDouble>* gradient, int control_index){/*{{{*/231 void L2ProjectionEPLAnalysis::GradientJ(Vector<IssmDouble>* gradient,Element* element,int control_type,int control_index){/*{{{*/ 232 232 _error_("Not implemented yet"); 233 233 }/*}}}*/ -
issm/trunk-jpl/src/c/analyses/L2ProjectionEPLAnalysis.h
r18055 r18057 27 27 ElementVector* CreatePVector(Element* element); 28 28 void GetSolutionFromInputs(Vector<IssmDouble>* solution,Element* element); 29 void GradientJ(Vector<IssmDouble>* gradient, int control_index);29 void GradientJ(Vector<IssmDouble>* gradient,Element* element,int control_type,int control_index); 30 30 void InputUpdateFromSolution(IssmDouble* solution,Element* element); 31 31 void UpdateConstraints(FemModel* femmodel); -
issm/trunk-jpl/src/c/analyses/LevelsetAnalysis.cpp
r18055 r18057 308 308 _error_("not implemented yet"); 309 309 }/*}}}*/ 310 void LevelsetAnalysis::GradientJ(Vector<IssmDouble>* gradient, int control_index){/*{{{*/310 void LevelsetAnalysis::GradientJ(Vector<IssmDouble>* gradient,Element* element,int control_type,int control_index){/*{{{*/ 311 311 _error_("Not implemented yet"); 312 312 }/*}}}*/ -
issm/trunk-jpl/src/c/analyses/LevelsetAnalysis.h
r18055 r18057 27 27 ElementVector* CreatePVector(Element* element); 28 28 void GetSolutionFromInputs(Vector<IssmDouble>* solution,Element* element); 29 void GradientJ(Vector<IssmDouble>* gradient, int control_index);29 void GradientJ(Vector<IssmDouble>* gradient,Element* element,int control_type,int control_index); 30 30 void InputUpdateFromSolution(IssmDouble* solution,Element* element); 31 31 void UpdateConstraints(FemModel* femmodel); -
issm/trunk-jpl/src/c/analyses/LsfReinitializationAnalysis.cpp
r18055 r18057 284 284 285 285 }/*}}}*/ 286 void LsfReinitializationAnalysis::GradientJ(Vector<IssmDouble>* gradient, int control_index){/*{{{*/286 void LsfReinitializationAnalysis::GradientJ(Vector<IssmDouble>* gradient,Element* element,int control_type,int control_index){/*{{{*/ 287 287 _error_("Not implemented yet"); 288 288 }/*}}}*/ -
issm/trunk-jpl/src/c/analyses/LsfReinitializationAnalysis.h
r18055 r18057 27 27 ElementVector* CreatePVector(Element* element); 28 28 void GetSolutionFromInputs(Vector<IssmDouble>* solution,Element* element); 29 void GradientJ(Vector<IssmDouble>* gradient, int control_index);29 void GradientJ(Vector<IssmDouble>* gradient,Element* element,int control_type,int control_index); 30 30 void InputUpdateFromSolution(IssmDouble* solution,Element* element); 31 31 void UpdateConstraints(FemModel* femmodel); -
issm/trunk-jpl/src/c/analyses/MasstransportAnalysis.cpp
r18055 r18057 675 675 _error_("not implemented yet"); 676 676 }/*}}}*/ 677 void MasstransportAnalysis::GradientJ(Vector<IssmDouble>* gradient, int control_index){/*{{{*/677 void MasstransportAnalysis::GradientJ(Vector<IssmDouble>* gradient,Element* element,int control_type,int control_index){/*{{{*/ 678 678 _error_("Not implemented yet"); 679 679 }/*}}}*/ -
issm/trunk-jpl/src/c/analyses/MasstransportAnalysis.h
r18055 r18057 33 33 void GetBprime(IssmDouble* B,Element* element,int dim,IssmDouble* xyz_list,Gauss* gauss); 34 34 void GetSolutionFromInputs(Vector<IssmDouble>* solution,Element* element); 35 void GradientJ(Vector<IssmDouble>* gradient, int control_index);35 void GradientJ(Vector<IssmDouble>* gradient,Element* element,int control_type,int control_index); 36 36 void InputUpdateFromSolution(IssmDouble* solution,Element* element); 37 37 void UpdateConstraints(FemModel* femmodel); -
issm/trunk-jpl/src/c/analyses/MeltingAnalysis.cpp
r18055 r18057 151 151 _error_("not implemented yet"); 152 152 }/*}}}*/ 153 void MeltingAnalysis::GradientJ(Vector<IssmDouble>* gradient, int control_index){/*{{{*/153 void MeltingAnalysis::GradientJ(Vector<IssmDouble>* gradient,Element* element,int control_type,int control_index){/*{{{*/ 154 154 _error_("Not implemented yet"); 155 155 }/*}}}*/ -
issm/trunk-jpl/src/c/analyses/MeltingAnalysis.h
r18055 r18057 27 27 ElementVector* CreatePVector(Element* element); 28 28 void GetSolutionFromInputs(Vector<IssmDouble>* solution,Element* element); 29 void GradientJ(Vector<IssmDouble>* gradient, int control_index);29 void GradientJ(Vector<IssmDouble>* gradient,Element* element,int control_type,int control_index); 30 30 void InputUpdateFromSolution(IssmDouble* solution,Element* element); 31 31 void UpdateConstraints(FemModel* femmodel); -
issm/trunk-jpl/src/c/analyses/MeshdeformationAnalysis.cpp
r18055 r18057 45 45 _error_("not implemented yet"); 46 46 }/*}}}*/ 47 void MeshdeformationAnalysis::GradientJ(Vector<IssmDouble>* gradient, int control_index){/*{{{*/47 void MeshdeformationAnalysis::GradientJ(Vector<IssmDouble>* gradient,Element* element,int control_type,int control_index){/*{{{*/ 48 48 _error_("Not implemented yet"); 49 49 }/*}}}*/ -
issm/trunk-jpl/src/c/analyses/MeshdeformationAnalysis.h
r18055 r18057 27 27 ElementVector* CreatePVector(Element* element); 28 28 void GetSolutionFromInputs(Vector<IssmDouble>* solution,Element* element); 29 void GradientJ(Vector<IssmDouble>* gradient, int control_index);29 void GradientJ(Vector<IssmDouble>* gradient,Element* element,int control_type,int control_index); 30 30 void InputUpdateFromSolution(IssmDouble* solution,Element* element); 31 31 void UpdateConstraints(FemModel* femmodel); -
issm/trunk-jpl/src/c/analyses/SmoothedSurfaceSlopeXAnalysis.cpp
r18055 r18057 172 172 _error_("not implemented yet"); 173 173 }/*}}}*/ 174 void SmoothedSurfaceSlopeXAnalysis::GradientJ(Vector<IssmDouble>* gradient, int control_index){/*{{{*/174 void SmoothedSurfaceSlopeXAnalysis::GradientJ(Vector<IssmDouble>* gradient,Element* element,int control_type,int control_index){/*{{{*/ 175 175 _error_("Not implemented yet"); 176 176 }/*}}}*/ -
issm/trunk-jpl/src/c/analyses/SmoothedSurfaceSlopeXAnalysis.h
r18055 r18057 27 27 ElementVector* CreatePVector(Element* element); 28 28 void GetSolutionFromInputs(Vector<IssmDouble>* solution,Element* element); 29 void GradientJ(Vector<IssmDouble>* gradient, int control_index);29 void GradientJ(Vector<IssmDouble>* gradient,Element* element,int control_type,int control_index); 30 30 void InputUpdateFromSolution(IssmDouble* solution,Element* element); 31 31 void UpdateConstraints(FemModel* femmodel); -
issm/trunk-jpl/src/c/analyses/SmoothedSurfaceSlopeYAnalysis.cpp
r18055 r18057 171 171 _error_("not implemented yet"); 172 172 }/*}}}*/ 173 void SmoothedSurfaceSlopeYAnalysis::GradientJ(Vector<IssmDouble>* gradient, int control_index){/*{{{*/173 void SmoothedSurfaceSlopeYAnalysis::GradientJ(Vector<IssmDouble>* gradient,Element* element,int control_type,int control_index){/*{{{*/ 174 174 _error_("Not implemented yet"); 175 175 }/*}}}*/ -
issm/trunk-jpl/src/c/analyses/SmoothedSurfaceSlopeYAnalysis.h
r18055 r18057 27 27 ElementVector* CreatePVector(Element* element); 28 28 void GetSolutionFromInputs(Vector<IssmDouble>* solution,Element* element); 29 void GradientJ(Vector<IssmDouble>* gradient, int control_index);29 void GradientJ(Vector<IssmDouble>* gradient,Element* element,int control_type,int control_index); 30 30 void InputUpdateFromSolution(IssmDouble* solution,Element* element); 31 31 void UpdateConstraints(FemModel* femmodel); -
issm/trunk-jpl/src/c/analyses/StressbalanceAnalysis.cpp
r18055 r18057 1040 1040 xDelete<int>(doflist); 1041 1041 }/*}}}*/ 1042 void StressbalanceAnalysis::GradientJ(Vector<IssmDouble>* gradient, int control_index){/*{{{*/1042 void StressbalanceAnalysis::GradientJ(Vector<IssmDouble>* gradient,Element* element,int control_type,int control_index){/*{{{*/ 1043 1043 _error_("Not implemented yet"); 1044 1044 }/*}}}*/ -
issm/trunk-jpl/src/c/analyses/StressbalanceAnalysis.h
r18055 r18057 27 27 ElementVector* CreatePVector(Element* element); 28 28 void GetSolutionFromInputs(Vector<IssmDouble>* solution,Element* element); 29 void GradientJ(Vector<IssmDouble>* gradient, int control_index);29 void GradientJ(Vector<IssmDouble>* gradient,Element* element,int control_type,int control_index); 30 30 void GetSolutionFromInputsHoriz(Vector<IssmDouble>* solution,Element* element); 31 31 void InputUpdateFromSolution(IssmDouble* solution,Element* element); -
issm/trunk-jpl/src/c/analyses/StressbalanceSIAAnalysis.cpp
r18055 r18057 493 493 xDelete<IssmDouble>(values); 494 494 }/*}}}*/ 495 void StressbalanceSIAAnalysis::GradientJ(Vector<IssmDouble>* gradient, int control_index){/*{{{*/495 void StressbalanceSIAAnalysis::GradientJ(Vector<IssmDouble>* gradient,Element* element,int control_type,int control_index){/*{{{*/ 496 496 _error_("Not implemented yet"); 497 497 }/*}}}*/ -
issm/trunk-jpl/src/c/analyses/StressbalanceSIAAnalysis.h
r18055 r18057 31 31 ElementVector* CreatePVector3D(Element* element); 32 32 void GetSolutionFromInputs(Vector<IssmDouble>* solution,Element* element); 33 void GradientJ(Vector<IssmDouble>* gradient, int control_index);33 void GradientJ(Vector<IssmDouble>* gradient,Element* element,int control_type,int control_index); 34 34 void InputUpdateFromSolution(IssmDouble* solution,Element* element); 35 35 void UpdateConstraints(FemModel* femmodel); -
issm/trunk-jpl/src/c/analyses/StressbalanceVerticalAnalysis.cpp
r18055 r18057 357 357 element->GetSolutionFromInputsOneDof(solution,VzEnum); 358 358 }/*}}}*/ 359 void StressbalanceVerticalAnalysis::GradientJ(Vector<IssmDouble>* gradient, int control_index){/*{{{*/359 void StressbalanceVerticalAnalysis::GradientJ(Vector<IssmDouble>* gradient,Element* element,int control_type,int control_index){/*{{{*/ 360 360 _error_("Not implemented yet"); 361 361 }/*}}}*/ -
issm/trunk-jpl/src/c/analyses/StressbalanceVerticalAnalysis.h
r18055 r18057 33 33 void GetBprime(IssmDouble* B,Element* element,IssmDouble* xyz_list,Gauss* gauss); 34 34 void GetSolutionFromInputs(Vector<IssmDouble>* solution,Element* element); 35 void GradientJ(Vector<IssmDouble>* gradient, int control_index);35 void GradientJ(Vector<IssmDouble>* gradient,Element* element,int control_type,int control_index); 36 36 void InputUpdateFromSolution(IssmDouble* solution,Element* element); 37 37 void UpdateConstraints(FemModel* femmodel); -
issm/trunk-jpl/src/c/analyses/ThermalAnalysis.cpp
r18055 r18057 654 654 xDelete<IssmDouble>(dbasis); 655 655 }/*}}}*/ 656 void ThermalAnalysis::GradientJ(Vector<IssmDouble>* gradient, int control_index){/*{{{*/656 void ThermalAnalysis::GradientJ(Vector<IssmDouble>* gradient,Element* element,int control_type,int control_index){/*{{{*/ 657 657 _error_("Not implemented yet"); 658 658 }/*}}}*/ -
issm/trunk-jpl/src/c/analyses/ThermalAnalysis.h
r18055 r18057 35 35 void GetBAdvecprime(IssmDouble* B,Element* element,IssmDouble* xyz_list,Gauss* gauss); 36 36 void GetSolutionFromInputs(Vector<IssmDouble>* solution,Element* element); 37 void GradientJ(Vector<IssmDouble>* gradient, int control_index);37 void GradientJ(Vector<IssmDouble>* gradient,Element* element,int control_type,int control_index); 38 38 void InputUpdateFromSolution(IssmDouble* solution,Element* element); 39 39 void UpdateConstraints(FemModel* femmodel);
Note:
See TracChangeset
for help on using the changeset viewer.