Changeset 8608


Ignore:
Timestamp:
06/10/11 17:24:33 (14 years ago)
Author:
Mathieu Morlighem
Message:

Added new modules for Thikonov regularization (now treated as a cost function, which makes more sense)

Location:
issm/trunk/src/c
Files:
9 added
11 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk/src/c/EnumDefinitions/EnumDefinitions.h

    r8600 r8608  
    459459        NumResponsesEnum,
    460460        StepResponsesEnum,
    461         IntMatParamEnum
     461        IntMatParamEnum,
     462        RheologyBbarAbsGradientEnum,
     463        DragCoefficientAbsGradientEnum
    462464};
    463465
  • issm/trunk/src/c/Makefile.am

    r8605 r8608  
    683683                                        ./modules/Bamgx/Bamgx.h\
    684684                                        ./modules/BamgConvertMeshx/BamgConvertMeshx.cpp\
    685                                         ./modules/BamgConvertMeshx/BamgConvertMeshx.h
     685                                        ./modules/BamgConvertMeshx/BamgConvertMeshx.h\
     686                                        ./modules/DragCoefficientAbsGradientx/DragCoefficientAbsGradientx.cpp\
     687                                        ./modules/DragCoefficientAbsGradientx/DragCoefficientAbsGradientx.h\
     688                                        ./modules/ThicknessAbsGradientx/ThicknessAbsGradientx.cpp\
     689                                        ./modules/ThicknessAbsGradientx/ThicknessAbsGradientx.h\
     690                                        ./modules/RheologyBbarAbsGradientx/RheologyBbarAbsGradientx.cpp\
     691                                        ./modules/RheologyBbarAbsGradientx/RheologyBbarAbsGradientx.h
     692
    686693
    687694libISSM_a_CXXFLAGS = -fPIC -DMATLAB -D_SERIAL_ -ansi -D_GNU_SOURCE -fno-omit-frame-pointer -pthread -D_CPP_  $(CXXOPTFLAGS)
     
    13401347                                        ./modules/OutputRiftsx/OutputRiftsx.h\
    13411348                                        ./modules/OutputRiftsx/OutputRiftsx.cpp\
     1349                                        ./modules/DragCoefficientAbsGradientx/DragCoefficientAbsGradientx.cpp\
     1350                                        ./modules/DragCoefficientAbsGradientx/DragCoefficientAbsGradientx.h\
     1351                                        ./modules/ThicknessAbsGradientx/ThicknessAbsGradientx.cpp\
     1352                                        ./modules/ThicknessAbsGradientx/ThicknessAbsGradientx.h\
     1353                                        ./modules/RheologyBbarAbsGradientx/RheologyBbarAbsGradientx.cpp\
     1354                                        ./modules/RheologyBbarAbsGradientx/RheologyBbarAbsGradientx.h\
    13421355                                        ./solutions/diagnostic_core.cpp\
    13431356                                        ./solutions/convergence.cpp\
  • issm/trunk/src/c/modules/EnumToStringx/EnumToStringx.cpp

    r8600 r8608  
    403403                case StepResponsesEnum : return "StepResponses";
    404404                case IntMatParamEnum : return "IntMatParam";
     405                case RheologyBbarAbsGradientEnum : return "RheologyBbarAbsGradient";
     406                case DragCoefficientAbsGradientEnum : return "DragCoefficientAbsGradient";
    405407                default : return "unknown";
    406408
  • issm/trunk/src/c/modules/Responsex/Responsex.cpp

    r8607 r8608  
    3838                case SurfaceAverageVelMisfitEnum:SurfaceAverageVelMisfitx( responses, elements,nodes, vertices, loads, materials, parameters,process_units,weight_index); break;
    3939                case ThicknessAbsMisfitEnum:     ThicknessAbsMisfitx(      responses, elements,nodes, vertices, loads, materials, parameters,process_units,weight_index); break;
     40                case ThicknessAbsGradientEnum:   ThicknessAbsGradientx(    responses, elements,nodes, vertices, loads, materials, parameters,process_units,weight_index); break;
     41                case RheologyBbarAbsGradientEnum:RheologyBbarAbsGradientx( responses, elements,nodes, vertices, loads, materials, parameters,process_units,weight_index); break;
     42                case DragCoefficientAbsGradientEnum:DragCoefficientAbsGradientx(responses, elements,nodes, vertices, loads, materials, parameters,process_units,weight_index); break;
    4043                default: _error_(" response descriptor \"%s\" not supported yet!",response_descriptor); break;
    4144        }
  • issm/trunk/src/c/modules/StringToEnumx/StringToEnumx.cpp

    r8600 r8608  
    401401        else if (strcmp(name,"StepResponses")==0) return StepResponsesEnum;
    402402        else if (strcmp(name,"IntMatParam")==0) return IntMatParamEnum;
     403        else if (strcmp(name,"RheologyBbarAbsGradient")==0) return RheologyBbarAbsGradientEnum;
     404        else if (strcmp(name,"DragCoefficientAbsGradient")==0) return DragCoefficientAbsGradientEnum;
    403405        else _error_("Enum %s not found",name);
    404406
  • issm/trunk/src/c/modules/modules.h

    r8605 r8608  
    2525#include "./CreateNodalConstraintsx/CreateNodalConstraintsx.h"
    2626#include "./DakotaResponsesx/DakotaResponsesx.h"
     27#include "./DragCoefficientAbsGradientx/DragCoefficientAbsGradientx.h"
    2728#include "./ElementConnectivityx/ElementConnectivityx.h"
    2829#include "./EnumToStringx/EnumToStringx.h"
     
    8990#include "./Reducevectorgtofx/Reducevectorgtofx.h"
    9091#include "./Responsex/Responsex.h"
     92#include "./RheologyBbarAbsGradientx/RheologyBbarAbsGradientx.h"
    9193#include "./Scotchx/Scotchx.h"
    9294#include "./Solverx/Solverx.h"
     
    9799#include "./TriaSearchx/TriaSearchx.h"
    98100#include "./ThicknessAbsMisfitx/ThicknessAbsMisfitx.h"
     101#include "./ThicknessAbsGradientx/ThicknessAbsGradientx.h"
    99102#include "./UpdateVertexPositionsx/UpdateVertexPositionsx.h"
    100103#include "./VerticesDofx/VerticesDofx.h"
  • issm/trunk/src/c/objects/Elements/Element.h

    r8607 r8608  
    4949                virtual double SurfaceLogVxVyMisfit(bool process_units,int weight_index)=0;
    5050                virtual double SurfaceAverageVelMisfit(bool process_units,int weight_index)=0;
     51                virtual double ThicknessAbsGradient(bool process_units,int weight_index)=0;
     52                virtual double RheologyBbarAbsGradient(bool process_units,int weight_index)=0;
     53                virtual double DragCoefficientAbsGradient(bool process_units,int weight_index)=0;
    5154                virtual double RegularizeInversion(void)=0;
    5255                virtual double SurfaceArea(void)=0;
  • issm/trunk/src/c/objects/Elements/Penta.cpp

    r8607 r8608  
    38443844        this->results=new Results();
    38453845
     3846}
     3847/*}}}*/
     3848/*FUNCTION Penta::DragCoefficientAbsGradient{{{1*/
     3849double Penta::DragCoefficientAbsGradient(bool process_units,int weight_index){
     3850
     3851        _error_("Not implemented yet");
    38463852}
    38473853/*}}}*/
     
    67426748}
    67436749/*}}}*/
     6750/*FUNCTION Penta::RheologyBbarAbsGradient{{{1*/
     6751double Penta::RheologyBbarAbsGradient(bool process_units,int weight_index){
     6752
     6753        _error_("Not implemented yet");
     6754}
     6755/*}}}*/
    67446756/*FUNCTION Penta::SetClone {{{1*/
    67456757void  Penta::SetClone(int* minranks){
     
    70537065                return J;
    70547066        }
     7067}
     7068/*}}}*/
     7069/*FUNCTION Penta::ThicknessAbsGradient{{{1*/
     7070double Penta::ThicknessAbsGradient(bool process_units,int weight_index){
     7071
     7072        _error_("Not implemented yet");
    70557073}
    70567074/*}}}*/
  • issm/trunk/src/c/objects/Elements/Penta.h

    r8607 r8608  
    8383                void   CreatePVector(Vec pg, Vec pf);
    8484                void   DeleteResults(void);
     85                double DragCoefficientAbsGradient(bool process_units,int weight_index);
    8586                int    GetNodeIndex(Node* node);
    8687                void   GetSolutionFromInputs(Vec solution);
     
    113114                void   PotentialSheetUngrounding(Vec potential_sheet_ungrounding);
    114115                void   ShelfSync();
     116                double RheologyBbarAbsGradient(bool process_units,int weight_index);
     117                double ThicknessAbsGradient(bool process_units,int weight_index);
    115118                void   MigrateGroundingLine();
    116119                void   MinVel(double* pminvel, bool process_units);
  • issm/trunk/src/c/objects/Elements/Tria.cpp

    r8607 r8608  
    23932393}
    23942394/*}}}*/
     2395/*FUNCTION Tria::DragCoefficientAbsGradient{{{1*/
     2396double Tria::DragCoefficientAbsGradient(bool process_units,int weight_index){
     2397
     2398        _error_("Not implemented yet");
     2399}
     2400/*}}}*/
    23952401/*FUNCTION Tria::Echo{{{1*/
    23962402void Tria::Echo(void){
     
    46704676}
    46714677/*}}}*/
     4678/*FUNCTION Tria::RheologyBbarAbsGradient{{{1*/
     4679double Tria::RheologyBbarAbsGradient(bool process_units,int weight_index){
     4680
     4681        _error_("Not implemented yet");
     4682}
     4683/*}}}*/
    46724684/*FUNCTION Tria::SetClone {{{1*/
    46734685void  Tria::SetClone(int* minranks){
     
    51945206        delete gauss;
    51955207        return Jelem;
     5208}
     5209/*}}}*/
     5210/*FUNCTION Tria::ThicknessAbsGradient{{{1*/
     5211double Tria::ThicknessAbsGradient(bool process_units,int weight_index){
     5212
     5213        _error_("Not implemented yet");
    51965214}
    51975215/*}}}*/
  • issm/trunk/src/c/objects/Elements/Tria.h

    r8607 r8608  
    7979                void   CreateKMatrix(Mat Kgg, Mat Kff, Mat Kfs,Vec dg,Vec df);
    8080                void   CreatePVector(Vec pg, Vec pf);
     81                double DragCoefficientAbsGradient(bool process_units,int weight_index);
    8182                int    GetNodeIndex(Node* node);
    8283                int    Sid();
     
    123124                void   MinVy(double* pminvy, bool process_units);
    124125                void   MinVz(double* pminvz, bool process_units);
     126                double RheologyBbarAbsGradient(bool process_units,int weight_index);
    125127                double ThicknessAbsMisfit(     bool process_units,int weight_index);
    126128                double SurfaceAbsVelMisfit(    bool process_units,int weight_index);
     129                double ThicknessAbsGradient(bool process_units,int weight_index);
    127130                double SurfaceRelVelMisfit(    bool process_units,int weight_index);
    128131                double SurfaceLogVelMisfit(    bool process_units,int weight_index);
Note: See TracChangeset for help on using the changeset viewer.