Changeset 15420


Ignore:
Timestamp:
07/03/13 16:10:55 (12 years ago)
Author:
seroussi
Message:

NEW: starting stokes stabilization implementation

Location:
issm/trunk-jpl/src
Files:
1 added
9 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk-jpl/src/c/classes/Elements/Penta.cpp

    r15417 r15420  
    68226822ElementMatrix* Penta::CreateKMatrixDiagnosticStokes(void){
    68236823
    6824         /*compute all stiffness matrices for this element*/
    6825         ElementMatrix* Ke1=CreateKMatrixDiagnosticStokesViscous();
    6826         ElementMatrix* Ke2=CreateKMatrixDiagnosticStokesFriction();
    6827         ElementMatrix* Ke =new ElementMatrix(Ke1,Ke2);
     6824        int fe_stokes;
     6825        ElementMatrix* Ke1;
     6826        ElementMatrix* Ke2;
     6827        ElementMatrix* Ke;
     6828        parameters->FindParam(&fe_stokes,FlowequationFeStokesEnum);
     6829
     6830        switch(fe_stokes){
     6831                case 0:
     6832                        /*compute all stiffness matrices for this element*/
     6833                        Ke1=CreateKMatrixDiagnosticStokesViscous();
     6834                        Ke2=CreateKMatrixDiagnosticStokesFriction();
     6835                        Ke =new ElementMatrix(Ke1,Ke2);
     6836
     6837                case 1:
     6838                        /*compute all stiffness matrices for this element*/
     6839                        Ke1=CreateKMatrixDiagnosticStokesViscous();
     6840                        Ke2=CreateKMatrixDiagnosticStokesFriction();
     6841                        Ke =new ElementMatrix(Ke1,Ke2);
     6842
     6843                default:
     6844                        _error_("Finite element" << fe_stokes << " not supported yet");
     6845        }
    68286846
    68296847        /*clean-up and return*/
     
    68316849        delete Ke2;
    68326850        return Ke;
     6851
    68336852}
    68346853/*}}}*/
  • issm/trunk-jpl/src/c/modules/ModelProcessorx/CreateParameters.cpp

    r15306 r15420  
    4949        parameters->AddObject(iomodel->CopyConstantObject(FlowequationIsl1l2Enum));
    5050        parameters->AddObject(iomodel->CopyConstantObject(FlowequationIsstokesEnum));
     51        parameters->AddObject(iomodel->CopyConstantObject(FlowequationFeStokesEnum));
    5152        parameters->AddObject(iomodel->CopyConstantObject(SettingsOutputFrequencyEnum));
    5253        parameters->AddObject(iomodel->CopyConstantObject(DiagnosticRestolEnum));
  • issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h

    r15417 r15420  
    7171        FlowequationIsmacayealpattynEnum,
    7272        FlowequationIsstokesEnum,
     73        FlowequationFeStokesEnum,
    7374        FlowequationVertexEquationEnum,
    7475        FrictionCoefficientEnum,
  • issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp

    r15417 r15420  
    7979                case FlowequationIsmacayealpattynEnum : return "FlowequationIsmacayealpattyn";
    8080                case FlowequationIsstokesEnum : return "FlowequationIsstokes";
     81                case FlowequationFeStokesEnum : return "FlowequationFeStokes";
    8182                case FlowequationVertexEquationEnum : return "FlowequationVertexEquation";
    8283                case FrictionCoefficientEnum : return "FrictionCoefficient";
  • issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp

    r15417 r15420  
    7979              else if (strcmp(name,"FlowequationIsmacayealpattyn")==0) return FlowequationIsmacayealpattynEnum;
    8080              else if (strcmp(name,"FlowequationIsstokes")==0) return FlowequationIsstokesEnum;
     81              else if (strcmp(name,"FlowequationFeStokes")==0) return FlowequationFeStokesEnum;
    8182              else if (strcmp(name,"FlowequationVertexEquation")==0) return FlowequationVertexEquationEnum;
    8283              else if (strcmp(name,"FrictionCoefficient")==0) return FrictionCoefficientEnum;
     
    136137              else if (strcmp(name,"InversionMaxParameters")==0) return InversionMaxParametersEnum;
    137138              else if (strcmp(name,"InversionMaxiterPerStep")==0) return InversionMaxiterPerStepEnum;
    138               else if (strcmp(name,"InversionMinParameters")==0) return InversionMinParametersEnum;
    139139         else stage=2;
    140140   }
    141141   if(stage==2){
    142               if (strcmp(name,"InversionNsteps")==0) return InversionNstepsEnum;
     142              if (strcmp(name,"InversionMinParameters")==0) return InversionMinParametersEnum;
     143              else if (strcmp(name,"InversionNsteps")==0) return InversionNstepsEnum;
    143144              else if (strcmp(name,"InversionNumControlParameters")==0) return InversionNumControlParametersEnum;
    144145              else if (strcmp(name,"InversionNumCostFunctions")==0) return InversionNumCostFunctionsEnum;
     
    259260              else if (strcmp(name,"ThermalIsenthalpy")==0) return ThermalIsenthalpyEnum;
    260261              else if (strcmp(name,"GiaMantleViscosity")==0) return GiaMantleViscosityEnum;
    261               else if (strcmp(name,"GiaLithosphereThickness")==0) return GiaLithosphereThicknessEnum;
    262262         else stage=3;
    263263   }
    264264   if(stage==3){
    265               if (strcmp(name,"Thickness")==0) return ThicknessEnum;
     265              if (strcmp(name,"GiaLithosphereThickness")==0) return GiaLithosphereThicknessEnum;
     266              else if (strcmp(name,"Thickness")==0) return ThicknessEnum;
    266267              else if (strcmp(name,"TimesteppingStartTime")==0) return TimesteppingStartTimeEnum;
    267268              else if (strcmp(name,"TimesteppingFinalTime")==0) return TimesteppingFinalTimeEnum;
     
    382383              else if (strcmp(name,"VectorParam")==0) return VectorParamEnum;
    383384              else if (strcmp(name,"Riftfront")==0) return RiftfrontEnum;
    384               else if (strcmp(name,"RiftfrontType")==0) return RiftfrontTypeEnum;
    385385         else stage=4;
    386386   }
    387387   if(stage==4){
    388               if (strcmp(name,"Segment")==0) return SegmentEnum;
     388              if (strcmp(name,"RiftfrontType")==0) return RiftfrontTypeEnum;
     389              else if (strcmp(name,"Segment")==0) return SegmentEnum;
    389390              else if (strcmp(name,"SegmentRiftfront")==0) return SegmentRiftfrontEnum;
    390391              else if (strcmp(name,"SpcDynamic")==0) return SpcDynamicEnum;
     
    505506              else if (strcmp(name,"BoolElementResult")==0) return BoolElementResultEnum;
    506507              else if (strcmp(name,"BoolExternalResult")==0) return BoolExternalResultEnum;
    507               else if (strcmp(name,"DoubleElementResult")==0) return DoubleElementResultEnum;
    508508         else stage=5;
    509509   }
    510510   if(stage==5){
    511               if (strcmp(name,"DoubleExternalResult")==0) return DoubleExternalResultEnum;
     511              if (strcmp(name,"DoubleElementResult")==0) return DoubleElementResultEnum;
     512              else if (strcmp(name,"DoubleExternalResult")==0) return DoubleExternalResultEnum;
    512513              else if (strcmp(name,"DoubleMatExternalResult")==0) return DoubleMatExternalResultEnum;
    513514              else if (strcmp(name,"IntExternalResult")==0) return IntExternalResultEnum;
  • issm/trunk-jpl/src/m/classes/flowequation.m

    r15131 r15420  
    1010                isl1l2               = 0;
    1111                isstokes             = 0;
     12                fe_stokes            = 0;
    1213                vertex_equation      = NaN;
    1314                element_equation     = NaN;
     
    7879                        WriteData(fid,'object',obj,'fieldname','isl1l2','format','Boolean');
    7980                        WriteData(fid,'object',obj,'fieldname','isstokes','format','Boolean');
     81                        WriteData(fid,'object',obj,'fieldname','fe_stokes','format','Integer');
    8082                        WriteData(fid,'object',obj,'fieldname','bordermacayeal','format','DoubleMat','mattype',1);
    8183                        WriteData(fid,'object',obj,'fieldname','borderpattyn','format','DoubleMat','mattype',1);
  • issm/trunk-jpl/src/m/classes/flowequation.py

    r15131 r15420  
    2020                self.isl1l2               = 0
    2121                self.isstokes             = 0
     22                self.fe_stokes            = 0
    2223                self.vertex_equation      = float('NaN')
    2324                self.element_equation     = float('NaN')
     
    7879                WriteData(fid,'object',self,'fieldname','isl1l2','format','Boolean')
    7980                WriteData(fid,'object',self,'fieldname','isstokes','format','Boolean')
     81                WriteData(fid,'object',self,'fieldname','fe_stokes','format','Integer')
    8082                WriteData(fid,'object',self,'fieldname','bordermacayeal','format','DoubleMat','mattype',1)
    8183                WriteData(fid,'object',self,'fieldname','borderpattyn','format','DoubleMat','mattype',1)
  • issm/trunk-jpl/src/m/enum/EnumDefinitions.py

    r15418 r15420  
    877877        return StringToEnum('FlowequationIsstokes')[0]
    878878
     879def FlowequationFeStokesEnum():
     880        """
     881        FLOWEQUATIONFESTOKESENUM - Enum of FlowequationFeStokes
     882
     883        WARNING: DO NOT MODIFY THIS FILE
     884                                this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
     885                                Please read src/c/shared/Enum/README for more information
     886
     887           Usage:
     888              macro=FlowequationFeStokesEnum()
     889        """
     890
     891        return StringToEnum('FlowequationFeStokes')[0]
     892
    879893def FlowequationVertexEquationEnum():
    880894        """
     
    78757889        """
    78767890
    7877         return 561
    7878 
     7891        return 562
     7892
  • issm/trunk-jpl/src/m/enum/MaximumNumberOfEnums.m

    r15401 r15420  
    99%      macro=MaximumNumberOfEnums()
    1010
    11 macro=561;
     11macro=562;
Note: See TracChangeset for help on using the changeset viewer.