Changeset 17535


Ignore:
Timestamp:
03/25/14 10:25:44 (11 years ago)
Author:
Mathieu Morlighem
Message:

CHG: constructing d and tau from inputs

Location:
issm/trunk-jpl/src
Files:
14 added
5 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk-jpl/src/c/analyses/StressbalanceAnalysis.cpp

    r17528 r17535  
    33893389        int         i,tausize,meshtype,dim;
    33903390        IssmDouble  Jdet,r;
     3391        IssmDouble  epsxx,epsyy,epszz,epsxy,epsxz,epsyz;
     3392        IssmDouble  sigmapxx,sigmapyy,sigmapzz,sigmapxy,sigmapxz,sigmapyz;
    33913393        IssmDouble *xyz_list = NULL;
     3394        Gauss*      gauss    = NULL;
    33923395
    33933396        /*Get problem dimension*/
     
    34123415        if(dim==2) for(i=0;i<vnumnodes;i++) cs_list[i] = XYEnum;
    34133416        else       for(i=0;i<vnumnodes;i++) cs_list[i] = XYZEnum;
    3414         for(i=0;i<pnumnodes;i++) cs_list[vnumnodes+i] = PressureEnum;
     3417        for(i=0;i<pnumnodes;i++) cs_list[vnumnodes+i]  = PressureEnum;
    34153418
    34163419        /*Initialize vectors*/
    34173420        ElementVector* pe    = element->NewElementVector(FSvelocityEnum);
    3418         IssmDouble*    Dstar = xNew<IssmDouble>(tausize*tnumnodes);
    3419         IssmDouble*    tau   = xNew<IssmDouble>(tausize);
     3421        IssmDouble*    Dstar = xNew<IssmDouble>((dim*vnumnodes)*(tausize*tnumnodes));
     3422        IssmDouble*    tau   = xNew<IssmDouble>(tausize*tnumnodes);
     3423        IssmDouble*    d     = xNew<IssmDouble>(tausize*tnumnodes);
    34203424
    34213425        /*Retrieve all inputs and parameters*/
    34223426        element->GetVerticesCoordinates(&xyz_list);
    34233427
     3428        /*Get d and tau*/
     3429        Input* epsxx_input=element->GetInput(StrainRatexxEnum); _assert_(epsxx_input);
     3430        Input* epsyy_input=element->GetInput(StrainRateyyEnum); _assert_(epsyy_input);
     3431        Input* epsxy_input=element->GetInput(StrainRatexyEnum); _assert_(epsxy_input);
     3432        Input* epszz_input=NULL; Input* epsxz_input=NULL; Input* epsyz_input=NULL;
     3433        Input* sigmapxx_input=element->GetInput(DeviatoricStressxxEnum); _assert_(sigmapxx_input);
     3434        Input* sigmapyy_input=element->GetInput(DeviatoricStressyyEnum); _assert_(sigmapyy_input);
     3435        Input* sigmapxy_input=element->GetInput(DeviatoricStressxyEnum); _assert_(sigmapxy_input);
     3436        Input* sigmapzz_input=NULL; Input* sigmapxz_input=NULL; Input* sigmapyz_input=NULL;
     3437        if(dim==3){
     3438                epszz_input=element->GetInput(StrainRatezzEnum); _assert_(epszz_input);
     3439                epsxz_input=element->GetInput(StrainRatexzEnum); _assert_(epsxz_input);
     3440                epsyz_input=element->GetInput(StrainRateyzEnum); _assert_(epsyz_input);
     3441                sigmapzz_input=element->GetInput(DeviatoricStresszzEnum); _assert_(sigmapzz_input);
     3442                sigmapxz_input=element->GetInput(DeviatoricStressxzEnum); _assert_(sigmapxz_input);
     3443                sigmapyz_input=element->GetInput(DeviatoricStressyzEnum); _assert_(sigmapyz_input);
     3444        }
     3445        gauss = element->NewGauss();
     3446        for(int i=0;i<tnumnodes;i++){
     3447                gauss->GaussNode(P1DGEnum,i);
     3448
     3449                epsxx_input->GetInputValue(&epsxx,gauss); sigmapxx_input->GetInputValue(&sigmapxx,gauss);
     3450                epsyy_input->GetInputValue(&epsyy,gauss); sigmapyy_input->GetInputValue(&sigmapyy,gauss);
     3451                epsxy_input->GetInputValue(&epsxy,gauss); sigmapxy_input->GetInputValue(&sigmapxy,gauss);
     3452                if(dim==2){
     3453                        d[i*tausize+0]=epsxx;  tau[i*tausize+0]=sigmapxx;
     3454                        d[i*tausize+1]=epsyy;  tau[i*tausize+1]=sigmapyy;
     3455                        d[i*tausize+2]=epsxy;  tau[i*tausize+2]=sigmapxy;
     3456                }
     3457                else{
     3458                        epszz_input->GetInputValue(&epszz,gauss); sigmapzz_input->GetInputValue(&sigmapzz,gauss);
     3459                        epsxz_input->GetInputValue(&epsxz,gauss); sigmapxz_input->GetInputValue(&sigmapxz,gauss);
     3460                        epsyz_input->GetInputValue(&epsyz,gauss); sigmapyz_input->GetInputValue(&sigmapyz,gauss);
     3461                        d[i*tausize+0]=epsxx;  tau[i*tausize+0]=sigmapxx;
     3462                        d[i*tausize+1]=epsyy;  tau[i*tausize+1]=sigmapyy;
     3463                        d[i*tausize+2]=epszz;  tau[i*tausize+2]=sigmapzz;
     3464                        d[i*tausize+3]=epsxy;  tau[i*tausize+3]=sigmapxy;
     3465                        d[i*tausize+4]=epsxz;  tau[i*tausize+4]=sigmapxz;
     3466                        d[i*tausize+5]=epsyz;  tau[i*tausize+5]=sigmapyz;
     3467                }
     3468        }
     3469
    34243470        /* Start  looping on the number of gaussian points: */
    3425         Gauss* gauss=element->NewGauss(5);
     3471        delete gauss;
     3472        gauss=element->NewGauss(5);
    34263473        for(int ig=gauss->begin();ig<gauss->end();ig++){
    34273474                gauss->GaussPoint(ig);
    34283475                element->JacobianDeterminant(&Jdet,xyz_list,gauss);
     3476
     3477                /*Create Dstar*/
    34293478                _error_("STOP");
    34303479        }
     
    34373486        xDelete<int>(cs_list);
    34383487        xDelete<IssmDouble>(xyz_list);
     3488        xDelete<IssmDouble>(Dstar);
     3489        xDelete<IssmDouble>(d);
     3490        xDelete<IssmDouble>(tau);
    34393491        return pe;
    34403492}/*}}}*/
  • issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h

    r17522 r17535  
    539539        StressTensoryzEnum,
    540540        StressTensorzzEnum,
     541        DeviatoricStressEnum,
     542        DeviatoricStressxxEnum,
     543        DeviatoricStressxyEnum,
     544        DeviatoricStressxzEnum,
     545        DeviatoricStressyyEnum,
     546        DeviatoricStressyzEnum,
     547        DeviatoricStresszzEnum,
     548        StrainRateEnum,
     549        StrainRatexxEnum,
     550        StrainRatexyEnum,
     551        StrainRatexzEnum,
     552        StrainRateyyEnum,
     553        StrainRateyzEnum,
     554        StrainRatezzEnum,
    541555        DivergenceEnum,
    542556        GiaCrossSectionShapeEnum,
  • issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp

    r17522 r17535  
    528528                case StressTensoryzEnum : return "StressTensoryz";
    529529                case StressTensorzzEnum : return "StressTensorzz";
     530                case DeviatoricStressEnum : return "DeviatoricStress";
     531                case DeviatoricStressxxEnum : return "DeviatoricStressxx";
     532                case DeviatoricStressxyEnum : return "DeviatoricStressxy";
     533                case DeviatoricStressxzEnum : return "DeviatoricStressxz";
     534                case DeviatoricStressyyEnum : return "DeviatoricStressyy";
     535                case DeviatoricStressyzEnum : return "DeviatoricStressyz";
     536                case DeviatoricStresszzEnum : return "DeviatoricStresszz";
     537                case StrainRateEnum : return "StrainRate";
     538                case StrainRatexxEnum : return "StrainRatexx";
     539                case StrainRatexyEnum : return "StrainRatexy";
     540                case StrainRatexzEnum : return "StrainRatexz";
     541                case StrainRateyyEnum : return "StrainRateyy";
     542                case StrainRateyzEnum : return "StrainRateyz";
     543                case StrainRatezzEnum : return "StrainRatezz";
    530544                case DivergenceEnum : return "Divergence";
    531545                case GiaCrossSectionShapeEnum : return "GiaCrossSectionShape";
  • issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp

    r17522 r17535  
    540540              else if (strcmp(name,"StressTensoryz")==0) return StressTensoryzEnum;
    541541              else if (strcmp(name,"StressTensorzz")==0) return StressTensorzzEnum;
     542              else if (strcmp(name,"DeviatoricStress")==0) return DeviatoricStressEnum;
     543              else if (strcmp(name,"DeviatoricStressxx")==0) return DeviatoricStressxxEnum;
     544              else if (strcmp(name,"DeviatoricStressxy")==0) return DeviatoricStressxyEnum;
     545              else if (strcmp(name,"DeviatoricStressxz")==0) return DeviatoricStressxzEnum;
     546              else if (strcmp(name,"DeviatoricStressyy")==0) return DeviatoricStressyyEnum;
     547              else if (strcmp(name,"DeviatoricStressyz")==0) return DeviatoricStressyzEnum;
     548              else if (strcmp(name,"DeviatoricStresszz")==0) return DeviatoricStresszzEnum;
     549              else if (strcmp(name,"StrainRate")==0) return StrainRateEnum;
     550              else if (strcmp(name,"StrainRatexx")==0) return StrainRatexxEnum;
     551              else if (strcmp(name,"StrainRatexy")==0) return StrainRatexyEnum;
     552              else if (strcmp(name,"StrainRatexz")==0) return StrainRatexzEnum;
     553              else if (strcmp(name,"StrainRateyy")==0) return StrainRateyyEnum;
     554              else if (strcmp(name,"StrainRateyz")==0) return StrainRateyzEnum;
     555              else if (strcmp(name,"StrainRatezz")==0) return StrainRatezzEnum;
    542556              else if (strcmp(name,"Divergence")==0) return DivergenceEnum;
    543557              else if (strcmp(name,"GiaCrossSectionShape")==0) return GiaCrossSectionShapeEnum;
     
    615629              else if (strcmp(name,"Adjoint")==0) return AdjointEnum;
    616630              else if (strcmp(name,"Colinear")==0) return ColinearEnum;
    617               else if (strcmp(name,"ControlSteady")==0) return ControlSteadyEnum;
     631         else stage=6;
     632   }
     633   if(stage==6){
     634              if (strcmp(name,"ControlSteady")==0) return ControlSteadyEnum;
    618635              else if (strcmp(name,"Fset")==0) return FsetEnum;
    619636              else if (strcmp(name,"Gradient1")==0) return Gradient1Enum;
     
    629646              else if (strcmp(name,"OldGradient")==0) return OldGradientEnum;
    630647              else if (strcmp(name,"OutputFilePointer")==0) return OutputFilePointerEnum;
    631          else stage=6;
    632    }
    633    if(stage==6){
    634               if (strcmp(name,"OutputFileName")==0) return OutputFileNameEnum;
     648              else if (strcmp(name,"OutputFileName")==0) return OutputFileNameEnum;
    635649              else if (strcmp(name,"LockFileName")==0) return LockFileNameEnum;
    636650              else if (strcmp(name,"ToolkitsOptionsAnalyses")==0) return ToolkitsOptionsAnalysesEnum;
  • issm/trunk-jpl/src/m/enum/EnumDefinitions.py

    r17522 r17535  
    520520def StressTensoryzEnum(): return StringToEnum("StressTensoryz")[0]
    521521def StressTensorzzEnum(): return StringToEnum("StressTensorzz")[0]
     522def DeviatoricStressEnum(): return StringToEnum("DeviatoricStress")[0]
     523def DeviatoricStressxxEnum(): return StringToEnum("DeviatoricStressxx")[0]
     524def DeviatoricStressxyEnum(): return StringToEnum("DeviatoricStressxy")[0]
     525def DeviatoricStressxzEnum(): return StringToEnum("DeviatoricStressxz")[0]
     526def DeviatoricStressyyEnum(): return StringToEnum("DeviatoricStressyy")[0]
     527def DeviatoricStressyzEnum(): return StringToEnum("DeviatoricStressyz")[0]
     528def DeviatoricStresszzEnum(): return StringToEnum("DeviatoricStresszz")[0]
     529def StrainRateEnum(): return StringToEnum("StrainRate")[0]
     530def StrainRatexxEnum(): return StringToEnum("StrainRatexx")[0]
     531def StrainRatexyEnum(): return StringToEnum("StrainRatexy")[0]
     532def StrainRatexzEnum(): return StringToEnum("StrainRatexz")[0]
     533def StrainRateyyEnum(): return StringToEnum("StrainRateyy")[0]
     534def StrainRateyzEnum(): return StringToEnum("StrainRateyz")[0]
     535def StrainRatezzEnum(): return StringToEnum("StrainRatezz")[0]
    522536def DivergenceEnum(): return StringToEnum("Divergence")[0]
    523537def GiaCrossSectionShapeEnum(): return StringToEnum("GiaCrossSectionShape")[0]
Note: See TracChangeset for help on using the changeset viewer.