Index: ../trunk-jpl/src/c/analyses/StressbalanceAnalysis.cpp =================================================================== --- ../trunk-jpl/src/c/analyses/StressbalanceAnalysis.cpp (revision 17534) +++ ../trunk-jpl/src/c/analyses/StressbalanceAnalysis.cpp (revision 17535) @@ -3388,7 +3388,10 @@ int i,tausize,meshtype,dim; IssmDouble Jdet,r; + IssmDouble epsxx,epsyy,epszz,epsxy,epsxz,epsyz; + IssmDouble sigmapxx,sigmapyy,sigmapzz,sigmapxy,sigmapxz,sigmapyz; IssmDouble *xyz_list = NULL; + Gauss* gauss = NULL; /*Get problem dimension*/ element->FindParam(&meshtype,MeshTypeEnum); @@ -3411,21 +3414,67 @@ int* cs_list = xNew(vnumnodes+pnumnodes); if(dim==2) for(i=0;iNewElementVector(FSvelocityEnum); - IssmDouble* Dstar = xNew(tausize*tnumnodes); - IssmDouble* tau = xNew(tausize); + IssmDouble* Dstar = xNew((dim*vnumnodes)*(tausize*tnumnodes)); + IssmDouble* tau = xNew(tausize*tnumnodes); + IssmDouble* d = xNew(tausize*tnumnodes); /*Retrieve all inputs and parameters*/ element->GetVerticesCoordinates(&xyz_list); + /*Get d and tau*/ + Input* epsxx_input=element->GetInput(StrainRatexxEnum); _assert_(epsxx_input); + Input* epsyy_input=element->GetInput(StrainRateyyEnum); _assert_(epsyy_input); + Input* epsxy_input=element->GetInput(StrainRatexyEnum); _assert_(epsxy_input); + Input* epszz_input=NULL; Input* epsxz_input=NULL; Input* epsyz_input=NULL; + Input* sigmapxx_input=element->GetInput(DeviatoricStressxxEnum); _assert_(sigmapxx_input); + Input* sigmapyy_input=element->GetInput(DeviatoricStressyyEnum); _assert_(sigmapyy_input); + Input* sigmapxy_input=element->GetInput(DeviatoricStressxyEnum); _assert_(sigmapxy_input); + Input* sigmapzz_input=NULL; Input* sigmapxz_input=NULL; Input* sigmapyz_input=NULL; + if(dim==3){ + epszz_input=element->GetInput(StrainRatezzEnum); _assert_(epszz_input); + epsxz_input=element->GetInput(StrainRatexzEnum); _assert_(epsxz_input); + epsyz_input=element->GetInput(StrainRateyzEnum); _assert_(epsyz_input); + sigmapzz_input=element->GetInput(DeviatoricStresszzEnum); _assert_(sigmapzz_input); + sigmapxz_input=element->GetInput(DeviatoricStressxzEnum); _assert_(sigmapxz_input); + sigmapyz_input=element->GetInput(DeviatoricStressyzEnum); _assert_(sigmapyz_input); + } + gauss = element->NewGauss(); + for(int i=0;iGaussNode(P1DGEnum,i); + + epsxx_input->GetInputValue(&epsxx,gauss); sigmapxx_input->GetInputValue(&sigmapxx,gauss); + epsyy_input->GetInputValue(&epsyy,gauss); sigmapyy_input->GetInputValue(&sigmapyy,gauss); + epsxy_input->GetInputValue(&epsxy,gauss); sigmapxy_input->GetInputValue(&sigmapxy,gauss); + if(dim==2){ + d[i*tausize+0]=epsxx; tau[i*tausize+0]=sigmapxx; + d[i*tausize+1]=epsyy; tau[i*tausize+1]=sigmapyy; + d[i*tausize+2]=epsxy; tau[i*tausize+2]=sigmapxy; + } + else{ + epszz_input->GetInputValue(&epszz,gauss); sigmapzz_input->GetInputValue(&sigmapzz,gauss); + epsxz_input->GetInputValue(&epsxz,gauss); sigmapxz_input->GetInputValue(&sigmapxz,gauss); + epsyz_input->GetInputValue(&epsyz,gauss); sigmapyz_input->GetInputValue(&sigmapyz,gauss); + d[i*tausize+0]=epsxx; tau[i*tausize+0]=sigmapxx; + d[i*tausize+1]=epsyy; tau[i*tausize+1]=sigmapyy; + d[i*tausize+2]=epszz; tau[i*tausize+2]=sigmapzz; + d[i*tausize+3]=epsxy; tau[i*tausize+3]=sigmapxy; + d[i*tausize+4]=epsxz; tau[i*tausize+4]=sigmapxz; + d[i*tausize+5]=epsyz; tau[i*tausize+5]=sigmapyz; + } + } + /* Start looping on the number of gaussian points: */ - Gauss* gauss=element->NewGauss(5); + delete gauss; + gauss=element->NewGauss(5); for(int ig=gauss->begin();igend();ig++){ gauss->GaussPoint(ig); element->JacobianDeterminant(&Jdet,xyz_list,gauss); + + /*Create Dstar*/ _error_("STOP"); } @@ -3436,6 +3485,9 @@ delete gauss; xDelete(cs_list); xDelete(xyz_list); + xDelete(Dstar); + xDelete(d); + xDelete(tau); return pe; }/*}}}*/ ElementVector* StressbalanceAnalysis::CreatePVectorFSShelf(Element* element){/*{{{*/ Index: ../trunk-jpl/src/c/shared/Enum/EnumDefinitions.h =================================================================== --- ../trunk-jpl/src/c/shared/Enum/EnumDefinitions.h (revision 17534) +++ ../trunk-jpl/src/c/shared/Enum/EnumDefinitions.h (revision 17535) @@ -538,6 +538,20 @@ StressTensoryyEnum, StressTensoryzEnum, StressTensorzzEnum, + DeviatoricStressEnum, + DeviatoricStressxxEnum, + DeviatoricStressxyEnum, + DeviatoricStressxzEnum, + DeviatoricStressyyEnum, + DeviatoricStressyzEnum, + DeviatoricStresszzEnum, + StrainRateEnum, + StrainRatexxEnum, + StrainRatexyEnum, + StrainRatexzEnum, + StrainRateyyEnum, + StrainRateyzEnum, + StrainRatezzEnum, DivergenceEnum, GiaCrossSectionShapeEnum, GiadWdtEnum, Index: ../trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp =================================================================== --- ../trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp (revision 17534) +++ ../trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp (revision 17535) @@ -527,6 +527,20 @@ case StressTensoryyEnum : return "StressTensoryy"; case StressTensoryzEnum : return "StressTensoryz"; case StressTensorzzEnum : return "StressTensorzz"; + case DeviatoricStressEnum : return "DeviatoricStress"; + case DeviatoricStressxxEnum : return "DeviatoricStressxx"; + case DeviatoricStressxyEnum : return "DeviatoricStressxy"; + case DeviatoricStressxzEnum : return "DeviatoricStressxz"; + case DeviatoricStressyyEnum : return "DeviatoricStressyy"; + case DeviatoricStressyzEnum : return "DeviatoricStressyz"; + case DeviatoricStresszzEnum : return "DeviatoricStresszz"; + case StrainRateEnum : return "StrainRate"; + case StrainRatexxEnum : return "StrainRatexx"; + case StrainRatexyEnum : return "StrainRatexy"; + case StrainRatexzEnum : return "StrainRatexz"; + case StrainRateyyEnum : return "StrainRateyy"; + case StrainRateyzEnum : return "StrainRateyz"; + case StrainRatezzEnum : return "StrainRatezz"; case DivergenceEnum : return "Divergence"; case GiaCrossSectionShapeEnum : return "GiaCrossSectionShape"; case GiadWdtEnum : return "GiadWdt"; Index: ../trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp =================================================================== --- ../trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp (revision 17534) +++ ../trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp (revision 17535) @@ -539,6 +539,20 @@ else if (strcmp(name,"StressTensoryy")==0) return StressTensoryyEnum; else if (strcmp(name,"StressTensoryz")==0) return StressTensoryzEnum; else if (strcmp(name,"StressTensorzz")==0) return StressTensorzzEnum; + else if (strcmp(name,"DeviatoricStress")==0) return DeviatoricStressEnum; + else if (strcmp(name,"DeviatoricStressxx")==0) return DeviatoricStressxxEnum; + else if (strcmp(name,"DeviatoricStressxy")==0) return DeviatoricStressxyEnum; + else if (strcmp(name,"DeviatoricStressxz")==0) return DeviatoricStressxzEnum; + else if (strcmp(name,"DeviatoricStressyy")==0) return DeviatoricStressyyEnum; + else if (strcmp(name,"DeviatoricStressyz")==0) return DeviatoricStressyzEnum; + else if (strcmp(name,"DeviatoricStresszz")==0) return DeviatoricStresszzEnum; + else if (strcmp(name,"StrainRate")==0) return StrainRateEnum; + else if (strcmp(name,"StrainRatexx")==0) return StrainRatexxEnum; + else if (strcmp(name,"StrainRatexy")==0) return StrainRatexyEnum; + else if (strcmp(name,"StrainRatexz")==0) return StrainRatexzEnum; + else if (strcmp(name,"StrainRateyy")==0) return StrainRateyyEnum; + else if (strcmp(name,"StrainRateyz")==0) return StrainRateyzEnum; + else if (strcmp(name,"StrainRatezz")==0) return StrainRatezzEnum; else if (strcmp(name,"Divergence")==0) return DivergenceEnum; else if (strcmp(name,"GiaCrossSectionShape")==0) return GiaCrossSectionShapeEnum; else if (strcmp(name,"GiadWdt")==0) return GiadWdtEnum; @@ -614,7 +628,10 @@ else if (strcmp(name,"FSSolver")==0) return FSSolverEnum; else if (strcmp(name,"Adjoint")==0) return AdjointEnum; else if (strcmp(name,"Colinear")==0) return ColinearEnum; - else if (strcmp(name,"ControlSteady")==0) return ControlSteadyEnum; + else stage=6; + } + if(stage==6){ + if (strcmp(name,"ControlSteady")==0) return ControlSteadyEnum; else if (strcmp(name,"Fset")==0) return FsetEnum; else if (strcmp(name,"Gradient1")==0) return Gradient1Enum; else if (strcmp(name,"Gradient2")==0) return Gradient2Enum; @@ -628,10 +645,7 @@ else if (strcmp(name,"Nodal")==0) return NodalEnum; else if (strcmp(name,"OldGradient")==0) return OldGradientEnum; else if (strcmp(name,"OutputFilePointer")==0) return OutputFilePointerEnum; - else stage=6; - } - if(stage==6){ - if (strcmp(name,"OutputFileName")==0) return OutputFileNameEnum; + else if (strcmp(name,"OutputFileName")==0) return OutputFileNameEnum; else if (strcmp(name,"LockFileName")==0) return LockFileNameEnum; else if (strcmp(name,"ToolkitsOptionsAnalyses")==0) return ToolkitsOptionsAnalysesEnum; else if (strcmp(name,"ToolkitsOptionsStrings")==0) return ToolkitsOptionsStringsEnum; Index: ../trunk-jpl/src/m/enum/DeviatoricStressxzEnum.m =================================================================== --- ../trunk-jpl/src/m/enum/DeviatoricStressxzEnum.m (revision 0) +++ ../trunk-jpl/src/m/enum/DeviatoricStressxzEnum.m (revision 17535) @@ -0,0 +1,11 @@ +function macro=DeviatoricStressxzEnum() +%DEVIATORICSTRESSXZENUM - Enum of DeviatoricStressxz +% +% WARNING: DO NOT MODIFY THIS FILE +% this file has been automatically generated by src/c/shared/Enum/Synchronize.sh +% Please read src/c/shared/Enum/README for more information +% +% Usage: +% macro=DeviatoricStressxzEnum() + +macro=StringToEnum('DeviatoricStressxz'); Index: ../trunk-jpl/src/m/enum/DeviatoricStressyyEnum.m =================================================================== --- ../trunk-jpl/src/m/enum/DeviatoricStressyyEnum.m (revision 0) +++ ../trunk-jpl/src/m/enum/DeviatoricStressyyEnum.m (revision 17535) @@ -0,0 +1,11 @@ +function macro=DeviatoricStressyyEnum() +%DEVIATORICSTRESSYYENUM - Enum of DeviatoricStressyy +% +% WARNING: DO NOT MODIFY THIS FILE +% this file has been automatically generated by src/c/shared/Enum/Synchronize.sh +% Please read src/c/shared/Enum/README for more information +% +% Usage: +% macro=DeviatoricStressyyEnum() + +macro=StringToEnum('DeviatoricStressyy'); Index: ../trunk-jpl/src/m/enum/StrainRateyzEnum.m =================================================================== --- ../trunk-jpl/src/m/enum/StrainRateyzEnum.m (revision 0) +++ ../trunk-jpl/src/m/enum/StrainRateyzEnum.m (revision 17535) @@ -0,0 +1,11 @@ +function macro=StrainRateyzEnum() +%STRAINRATEYZENUM - Enum of StrainRateyz +% +% WARNING: DO NOT MODIFY THIS FILE +% this file has been automatically generated by src/c/shared/Enum/Synchronize.sh +% Please read src/c/shared/Enum/README for more information +% +% Usage: +% macro=StrainRateyzEnum() + +macro=StringToEnum('StrainRateyz'); Index: ../trunk-jpl/src/m/enum/DeviatoricStressyzEnum.m =================================================================== --- ../trunk-jpl/src/m/enum/DeviatoricStressyzEnum.m (revision 0) +++ ../trunk-jpl/src/m/enum/DeviatoricStressyzEnum.m (revision 17535) @@ -0,0 +1,11 @@ +function macro=DeviatoricStressyzEnum() +%DEVIATORICSTRESSYZENUM - Enum of DeviatoricStressyz +% +% WARNING: DO NOT MODIFY THIS FILE +% this file has been automatically generated by src/c/shared/Enum/Synchronize.sh +% Please read src/c/shared/Enum/README for more information +% +% Usage: +% macro=DeviatoricStressyzEnum() + +macro=StringToEnum('DeviatoricStressyz'); Index: ../trunk-jpl/src/m/enum/StrainRatezzEnum.m =================================================================== --- ../trunk-jpl/src/m/enum/StrainRatezzEnum.m (revision 0) +++ ../trunk-jpl/src/m/enum/StrainRatezzEnum.m (revision 17535) @@ -0,0 +1,11 @@ +function macro=StrainRatezzEnum() +%STRAINRATEZZENUM - Enum of StrainRatezz +% +% WARNING: DO NOT MODIFY THIS FILE +% this file has been automatically generated by src/c/shared/Enum/Synchronize.sh +% Please read src/c/shared/Enum/README for more information +% +% Usage: +% macro=StrainRatezzEnum() + +macro=StringToEnum('StrainRatezz'); Index: ../trunk-jpl/src/m/enum/DeviatoricStresszzEnum.m =================================================================== --- ../trunk-jpl/src/m/enum/DeviatoricStresszzEnum.m (revision 0) +++ ../trunk-jpl/src/m/enum/DeviatoricStresszzEnum.m (revision 17535) @@ -0,0 +1,11 @@ +function macro=DeviatoricStresszzEnum() +%DEVIATORICSTRESSZZENUM - Enum of DeviatoricStresszz +% +% WARNING: DO NOT MODIFY THIS FILE +% this file has been automatically generated by src/c/shared/Enum/Synchronize.sh +% Please read src/c/shared/Enum/README for more information +% +% Usage: +% macro=DeviatoricStresszzEnum() + +macro=StringToEnum('DeviatoricStresszz'); Index: ../trunk-jpl/src/m/enum/StrainRatexxEnum.m =================================================================== --- ../trunk-jpl/src/m/enum/StrainRatexxEnum.m (revision 0) +++ ../trunk-jpl/src/m/enum/StrainRatexxEnum.m (revision 17535) @@ -0,0 +1,11 @@ +function macro=StrainRatexxEnum() +%STRAINRATEXXENUM - Enum of StrainRatexx +% +% WARNING: DO NOT MODIFY THIS FILE +% this file has been automatically generated by src/c/shared/Enum/Synchronize.sh +% Please read src/c/shared/Enum/README for more information +% +% Usage: +% macro=StrainRatexxEnum() + +macro=StringToEnum('StrainRatexx'); Index: ../trunk-jpl/src/m/enum/DeviatoricStressxxEnum.m =================================================================== --- ../trunk-jpl/src/m/enum/DeviatoricStressxxEnum.m (revision 0) +++ ../trunk-jpl/src/m/enum/DeviatoricStressxxEnum.m (revision 17535) @@ -0,0 +1,11 @@ +function macro=DeviatoricStressxxEnum() +%DEVIATORICSTRESSXXENUM - Enum of DeviatoricStressxx +% +% WARNING: DO NOT MODIFY THIS FILE +% this file has been automatically generated by src/c/shared/Enum/Synchronize.sh +% Please read src/c/shared/Enum/README for more information +% +% Usage: +% macro=DeviatoricStressxxEnum() + +macro=StringToEnum('DeviatoricStressxx'); Index: ../trunk-jpl/src/m/enum/StrainRatexyEnum.m =================================================================== --- ../trunk-jpl/src/m/enum/StrainRatexyEnum.m (revision 0) +++ ../trunk-jpl/src/m/enum/StrainRatexyEnum.m (revision 17535) @@ -0,0 +1,11 @@ +function macro=StrainRatexyEnum() +%STRAINRATEXYENUM - Enum of StrainRatexy +% +% WARNING: DO NOT MODIFY THIS FILE +% this file has been automatically generated by src/c/shared/Enum/Synchronize.sh +% Please read src/c/shared/Enum/README for more information +% +% Usage: +% macro=StrainRatexyEnum() + +macro=StringToEnum('StrainRatexy'); Index: ../trunk-jpl/src/m/enum/StrainRateEnum.m =================================================================== --- ../trunk-jpl/src/m/enum/StrainRateEnum.m (revision 0) +++ ../trunk-jpl/src/m/enum/StrainRateEnum.m (revision 17535) @@ -0,0 +1,11 @@ +function macro=StrainRateEnum() +%STRAINRATEENUM - Enum of StrainRate +% +% WARNING: DO NOT MODIFY THIS FILE +% this file has been automatically generated by src/c/shared/Enum/Synchronize.sh +% Please read src/c/shared/Enum/README for more information +% +% Usage: +% macro=StrainRateEnum() + +macro=StringToEnum('StrainRate'); Index: ../trunk-jpl/src/m/enum/DeviatoricStressEnum.m =================================================================== --- ../trunk-jpl/src/m/enum/DeviatoricStressEnum.m (revision 0) +++ ../trunk-jpl/src/m/enum/DeviatoricStressEnum.m (revision 17535) @@ -0,0 +1,11 @@ +function macro=DeviatoricStressEnum() +%DEVIATORICSTRESSENUM - Enum of DeviatoricStress +% +% WARNING: DO NOT MODIFY THIS FILE +% this file has been automatically generated by src/c/shared/Enum/Synchronize.sh +% Please read src/c/shared/Enum/README for more information +% +% Usage: +% macro=DeviatoricStressEnum() + +macro=StringToEnum('DeviatoricStress'); Index: ../trunk-jpl/src/m/enum/EnumDefinitions.py =================================================================== --- ../trunk-jpl/src/m/enum/EnumDefinitions.py (revision 17534) +++ ../trunk-jpl/src/m/enum/EnumDefinitions.py (revision 17535) @@ -519,6 +519,20 @@ def StressTensoryyEnum(): return StringToEnum("StressTensoryy")[0] def StressTensoryzEnum(): return StringToEnum("StressTensoryz")[0] def StressTensorzzEnum(): return StringToEnum("StressTensorzz")[0] +def DeviatoricStressEnum(): return StringToEnum("DeviatoricStress")[0] +def DeviatoricStressxxEnum(): return StringToEnum("DeviatoricStressxx")[0] +def DeviatoricStressxyEnum(): return StringToEnum("DeviatoricStressxy")[0] +def DeviatoricStressxzEnum(): return StringToEnum("DeviatoricStressxz")[0] +def DeviatoricStressyyEnum(): return StringToEnum("DeviatoricStressyy")[0] +def DeviatoricStressyzEnum(): return StringToEnum("DeviatoricStressyz")[0] +def DeviatoricStresszzEnum(): return StringToEnum("DeviatoricStresszz")[0] +def StrainRateEnum(): return StringToEnum("StrainRate")[0] +def StrainRatexxEnum(): return StringToEnum("StrainRatexx")[0] +def StrainRatexyEnum(): return StringToEnum("StrainRatexy")[0] +def StrainRatexzEnum(): return StringToEnum("StrainRatexz")[0] +def StrainRateyyEnum(): return StringToEnum("StrainRateyy")[0] +def StrainRateyzEnum(): return StringToEnum("StrainRateyz")[0] +def StrainRatezzEnum(): return StringToEnum("StrainRatezz")[0] def DivergenceEnum(): return StringToEnum("Divergence")[0] def GiaCrossSectionShapeEnum(): return StringToEnum("GiaCrossSectionShape")[0] def GiadWdtEnum(): return StringToEnum("GiadWdt")[0] Index: ../trunk-jpl/src/m/enum/DeviatoricStressxyEnum.m =================================================================== --- ../trunk-jpl/src/m/enum/DeviatoricStressxyEnum.m (revision 0) +++ ../trunk-jpl/src/m/enum/DeviatoricStressxyEnum.m (revision 17535) @@ -0,0 +1,11 @@ +function macro=DeviatoricStressxyEnum() +%DEVIATORICSTRESSXYENUM - Enum of DeviatoricStressxy +% +% WARNING: DO NOT MODIFY THIS FILE +% this file has been automatically generated by src/c/shared/Enum/Synchronize.sh +% Please read src/c/shared/Enum/README for more information +% +% Usage: +% macro=DeviatoricStressxyEnum() + +macro=StringToEnum('DeviatoricStressxy'); Index: ../trunk-jpl/src/m/enum/StrainRatexzEnum.m =================================================================== --- ../trunk-jpl/src/m/enum/StrainRatexzEnum.m (revision 0) +++ ../trunk-jpl/src/m/enum/StrainRatexzEnum.m (revision 17535) @@ -0,0 +1,11 @@ +function macro=StrainRatexzEnum() +%STRAINRATEXZENUM - Enum of StrainRatexz +% +% WARNING: DO NOT MODIFY THIS FILE +% this file has been automatically generated by src/c/shared/Enum/Synchronize.sh +% Please read src/c/shared/Enum/README for more information +% +% Usage: +% macro=StrainRatexzEnum() + +macro=StringToEnum('StrainRatexz'); Index: ../trunk-jpl/src/m/enum/StrainRateyyEnum.m =================================================================== --- ../trunk-jpl/src/m/enum/StrainRateyyEnum.m (revision 0) +++ ../trunk-jpl/src/m/enum/StrainRateyyEnum.m (revision 17535) @@ -0,0 +1,11 @@ +function macro=StrainRateyyEnum() +%STRAINRATEYYENUM - Enum of StrainRateyy +% +% WARNING: DO NOT MODIFY THIS FILE +% this file has been automatically generated by src/c/shared/Enum/Synchronize.sh +% Please read src/c/shared/Enum/README for more information +% +% Usage: +% macro=StrainRateyyEnum() + +macro=StringToEnum('StrainRateyy');