Changeset 22105


Ignore:
Timestamp:
09/18/17 15:06:27 (8 years ago)
Author:
Mathieu Morlighem
Message:

CHG: passing gauss as argument so that B is not necessarily averaged

Location:
issm/trunk-jpl/src/c
Files:
12 edited

Legend:

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

    r21983 r22105  
    105105
    106106                element->StrainRateHO(&epsilon[0],xyz_list,gauss,vx_input,vy_input);
    107                 element->material->ViscosityFSDerivativeEpsSquare(&mu_prime,&epsilon[0]);
     107                element->material->ViscosityFSDerivativeEpsSquare(&mu_prime,&epsilon[0],gauss);
    108108                eps1[0]=epsilon[0];   eps2[0]=epsilon[2];   eps3[0]=epsilon[3];
    109109                eps1[1]=epsilon[2];   eps2[1]=epsilon[1];   eps3[1]=epsilon[4];
     
    179179
    180180                element->StrainRateHO(&epsilon[0],xyz_list,gauss,vx_input,vy_input);
    181                 element->material->ViscosityHODerivativeEpsSquare(&mu_prime,&epsilon[0]);
     181                element->material->ViscosityHODerivativeEpsSquare(&mu_prime,&epsilon[0],gauss);
    182182                eps1[0]=2.*epsilon[0]+epsilon[1];   eps2[0]=epsilon[2];
    183183                eps1[1]=epsilon[2];                 eps2[1]=epsilon[0]+2.*epsilon[1];
     
    286286                thickness_input->GetInputValue(&thickness, gauss);
    287287                basalelement->StrainRateSSA(&epsilon[0],xyz_list,gauss,vx_input,vy_input);
    288                 basalelement->material->ViscositySSADerivativeEpsSquare(&mu_prime,&epsilon[0]);
     288                basalelement->material->ViscositySSADerivativeEpsSquare(&mu_prime,&epsilon[0],gauss);
    289289                eps1[0]=2.*epsilon[0]+epsilon[1]; eps2[0]=epsilon[2];
    290290                eps1[1]=epsilon[2];               eps2[1]=epsilon[0]+2*epsilon[1];
  • issm/trunk-jpl/src/c/analyses/StressbalanceAnalysis.cpp

    r22050 r22105  
    12071207                thickness_input->GetInputValue(&thickness, gauss);
    12081208                basalelement->StrainRateSSA(&epsilon[0],xyz_list,gauss,vx_input,vy_input);
    1209                 basalelement->material->ViscositySSADerivativeEpsSquare(&mu_prime,&epsilon[0]);
     1209                basalelement->material->ViscositySSADerivativeEpsSquare(&mu_prime,&epsilon[0],gauss);
    12101210                eps1[0]=2*epsilon[0]+epsilon[1];   eps2[0]=epsilon[2];
    12111211                eps1[1]=epsilon[2];                eps2[1]=epsilon[0]+2*epsilon[1];
     
    22682268
    22692269                element->StrainRateHO(&epsilon[0],xyz_list,gauss,vx_input,vy_input);
    2270                 element->material->ViscosityHODerivativeEpsSquare(&mu_prime,&epsilon[0]);
     2270                element->material->ViscosityHODerivativeEpsSquare(&mu_prime,&epsilon[0],gauss);
    22712271                eps1[0]=2*epsilon[0]+epsilon[1];   eps2[0]=epsilon[2];
    22722272                eps1[1]=epsilon[2];                eps2[1]=epsilon[0]+2*epsilon[1];
     
    29582958                eps1[1]=epsilon[2];   eps2[1]=epsilon[1];   eps3[1]=epsilon[4];
    29592959                eps1[2]=epsilon[3];   eps2[2]=epsilon[4];   eps3[2]= -epsilon[0] -epsilon[1];
    2960                 element->material->ViscosityFSDerivativeEpsSquare(&mu_prime,&epsilon[0]);
     2960                element->material->ViscosityFSDerivativeEpsSquare(&mu_prime,&epsilon[0],gauss);
    29612961
    29622962                for(i=0;i<vnumnodes;i++){
  • issm/trunk-jpl/src/c/classes/Elements/Element.cpp

    r22066 r22105  
    693693        switch(materialstype){
    694694                case MaticeEnum:
    695                         material->GetViscosity_B(&dmudB,eps_eff);
     695                        material->GetViscosity_B(&dmudB,eps_eff,gauss);
    696696                        break;
    697697                case MatestarEnum:
     
    730730        switch(materialstype){
    731731                case MaticeEnum:
    732                         material->GetViscosity_B(&dmudB,eps_eff);
     732                        material->GetViscosity_B(&dmudB,eps_eff,gauss);
    733733                        break;
    734734                case MatestarEnum:
     
    767767        switch(materialstype){
    768768                case MaticeEnum:
    769                         material->GetViscosity_B(&dmudB,eps_eff);
     769                        material->GetViscosity_B(&dmudB,eps_eff,gauss);
    770770                        break;
    771771                case MatestarEnum:
     
    800800
    801801        /*Get viscosity*/
    802         material->GetViscosity_D(&dmudB,eps_eff);
     802        material->GetViscosity_D(&dmudB,eps_eff,gauss);
    803803
    804804        /*Assign output pointer*/
     
    11331133
    11341134        _assert_(this->matpar);
    1135         switch(enum_in){ // FIXME: change this to material
     1135        switch(enum_in){ // FIXME: change this to material and replace NULL by gauss
    11361136                case MaterialsRheologyNEnum:
    11371137                        return this->material->GetN();
    11381138                case MaterialsRheologyBEnum:
    1139                         return this->material->GetB();
     1139                        return this->material->GetB(NULL);
    11401140                case MaterialsRheologyBbarEnum:
    1141                         return this->material->GetBbar();
     1141                        return this->material->GetBbar(NULL);
    11421142                default:
    11431143                        return this->matpar->GetMaterialParameter(enum_in);
  • issm/trunk-jpl/src/c/classes/Elements/Penta.cpp

    r22077 r22105  
    622622        switch(response_enum){
    623623                case MaterialsRheologyBbarEnum:
    624                         *presponse=this->material->GetBbar();
     624                        *presponse=this->material->GetBbar(NULL);
    625625                        break;
    626626                case DamageDbarEnum:
    627                         *presponse=this->material->GetDbar();
     627                        *presponse=this->material->GetDbar(NULL);
    628628                        break;
    629629                case VelEnum:
  • issm/trunk-jpl/src/c/classes/Elements/Tria.cpp

    r22044 r22105  
    734734        switch(response_enum){
    735735                case MaterialsRheologyBbarEnum:
    736                         *presponse=this->material->GetBbar();
     736                        *presponse=this->material->GetBbar(NULL);
    737737                        break;
    738738
  • issm/trunk-jpl/src/c/classes/Materials/Material.h

    r22010 r22105  
    2727                virtual void       Configure(Elements* elements)=0;
    2828                virtual Material*  copy2(Element* element)=0;
    29                 virtual IssmDouble GetA()=0;
    30                 virtual IssmDouble GetAbar()=0;
    31                 virtual IssmDouble GetB()=0;
    32                 virtual IssmDouble GetBbar()=0;
    33                 virtual IssmDouble GetD()=0;
    34                 virtual IssmDouble GetDbar()=0;
     29                virtual IssmDouble GetA(Gauss* gauss)=0;
     30                virtual IssmDouble GetAbar(Gauss* gauss)=0;
     31                virtual IssmDouble GetB(Gauss* gauss)=0;
     32                virtual IssmDouble GetBbar(Gauss* gauss)=0;
     33                virtual IssmDouble GetD(Gauss* gauss)=0;
     34                virtual IssmDouble GetDbar(Gauss* gauss)=0;
    3535                virtual IssmDouble GetN()=0;
    36                 virtual void       GetViscosity(IssmDouble* pviscosity,IssmDouble epseff)=0;
    37                 virtual void       GetViscosityBar(IssmDouble* pviscosity,IssmDouble epseff)=0;
    38                 virtual void       GetViscosityComplement(IssmDouble* pviscosity_complement, IssmDouble* pepsilon)=0;
    39                 virtual void       GetViscosityDComplement(IssmDouble* pviscosity_complement, IssmDouble* pepsilon)=0;
    40                 virtual void       GetViscosityDerivativeEpsSquare(IssmDouble* pmu_prime, IssmDouble* pepsilon)=0;
    41                 virtual void       GetViscosity_B(IssmDouble* pviscosity,IssmDouble epseff)=0;
    42                 virtual void       GetViscosity_D(IssmDouble* pviscosity,IssmDouble epseff)=0;
    43                 virtual void       GetViscosity2dDerivativeEpsSquare(IssmDouble* pmu_prime, IssmDouble* pepsilon)=0;
     36                virtual void       GetViscosity(IssmDouble* pviscosity,IssmDouble epseff,Gauss* gauss)=0;
     37                virtual void       GetViscosityBar(IssmDouble* pviscosity,IssmDouble epseff,Gauss* gauss)=0;
     38                virtual void       GetViscosityComplement(IssmDouble* pviscosity_complement, IssmDouble* pepsilon,Gauss* gauss)=0;
     39                virtual void       GetViscosityDComplement(IssmDouble* pviscosity_complement, IssmDouble* pepsilon,Gauss* gauss)=0;
     40                virtual void       GetViscosityDerivativeEpsSquare(IssmDouble* pmu_prime, IssmDouble* pepsilon,Gauss* gauss)=0;
     41                virtual void       GetViscosity_B(IssmDouble* pviscosity,IssmDouble epseff,Gauss* gauss)=0;
     42                virtual void       GetViscosity_D(IssmDouble* pviscosity,IssmDouble epseff,Gauss* gauss)=0;
     43                virtual void       GetViscosity2dDerivativeEpsSquare(IssmDouble* pmu_prime, IssmDouble* pepsilon,Gauss* gauss)=0;
    4444                virtual bool       IsDamage()=0;
    4545                virtual bool       IsEnhanced()=0;
     
    4747
    4848                virtual void       ViscosityFS(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,Input* vz_input)=0;
    49                 virtual void       ViscosityFSDerivativeEpsSquare(IssmDouble* pmu_prime,IssmDouble* epsilon)=0;
     49                virtual void       ViscosityFSDerivativeEpsSquare(IssmDouble* pmu_prime,IssmDouble* epsilon,Gauss* gauss)=0;
    5050                virtual void       ViscosityHO(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input)=0;
    51                 virtual void       ViscosityHODerivativeEpsSquare(IssmDouble* pmu_prime,IssmDouble* epsilon)=0;
     51                virtual void       ViscosityHODerivativeEpsSquare(IssmDouble* pmu_prime,IssmDouble* epsilon,Gauss* gauss)=0;
    5252                virtual void       ViscosityL1L2(IssmDouble* pviscosity,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,Input* surf)=0;
    5353                virtual void       ViscositySSA(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input)=0;
    54                 virtual void       ViscositySSADerivativeEpsSquare(IssmDouble* pmu_prime,IssmDouble* epsilon)=0;
     54                virtual void       ViscositySSADerivativeEpsSquare(IssmDouble* pmu_prime,IssmDouble* epsilon,Gauss* gauss)=0;
    5555                virtual void       ViscosityBFS(IssmDouble* pmudB,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,Input* vz_input,IssmDouble epseff)=0;
    5656                virtual void       ViscosityBHO(IssmDouble* pmudB,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,IssmDouble epseff)=0;
  • issm/trunk-jpl/src/c/classes/Materials/Matestar.cpp

    r22010 r22105  
    133133}
    134134/*}}}*/
    135 IssmDouble Matestar::GetA(){/*{{{*/
     135IssmDouble Matestar::GetA(Gauss* gauss){/*{{{*/
    136136        /*
    137137         * A = 1/B^n
     
    146146}
    147147/*}}}*/
    148 IssmDouble Matestar::GetAbar(){/*{{{*/
     148IssmDouble Matestar::GetAbar(Gauss* gauss){/*{{{*/
    149149        /*
    150150         * A = 1/B^n
     
    159159}
    160160/*}}}*/
    161 IssmDouble Matestar::GetB(){/*{{{*/
     161IssmDouble Matestar::GetB(Gauss* gauss){/*{{{*/
    162162
    163163        /*Output*/
     
    168168}
    169169/*}}}*/
    170 IssmDouble Matestar::GetBbar(){/*{{{*/
     170IssmDouble Matestar::GetBbar(Gauss* gauss){/*{{{*/
    171171
    172172        /*Output*/
     
    177177}
    178178/*}}}*/
    179 IssmDouble Matestar::GetD(){/*{{{*/
    180         _error_("not implemented yet");
    181 }
    182 /*}}}*/
    183 IssmDouble Matestar::GetDbar(){/*{{{*/
    184 
    185         _error_("not implemented yet");
    186 }
    187 /*}}}*/
    188 IssmDouble Matestar::GetEc(){/*{{{*/
     179IssmDouble Matestar::GetD(Gauss* gauss){/*{{{*/
     180        _error_("not implemented yet");
     181}
     182/*}}}*/
     183IssmDouble Matestar::GetDbar(Gauss* gauss){/*{{{*/
     184
     185        _error_("not implemented yet");
     186}
     187/*}}}*/
     188IssmDouble Matestar::GetEc(Gauss* gauss){/*{{{*/
    189189
    190190        /*Output*/
     
    195195}
    196196/*}}}*/
    197 IssmDouble Matestar::GetEcbar(){/*{{{*/
     197IssmDouble Matestar::GetEcbar(Gauss* gauss){/*{{{*/
    198198
    199199        /*Output*/
     
    204204}
    205205/*}}}*/
    206 IssmDouble Matestar::GetEs(){/*{{{*/
     206IssmDouble Matestar::GetEs(Gauss* gauss){/*{{{*/
    207207
    208208        /*Output*/
     
    213213}
    214214/*}}}*/
    215 IssmDouble Matestar::GetEsbar(){/*{{{*/
     215IssmDouble Matestar::GetEsbar(Gauss* gauss){/*{{{*/
    216216
    217217        /*Output*/
     
    229229}
    230230/*}}}*/
    231 void  Matestar::GetViscosity(IssmDouble* pviscosity,IssmDouble eps_eff){/*{{{*/
    232         _error_("not implemented yet");
    233 }
    234 /*}}}*/
    235 void  Matestar::GetViscosityBar(IssmDouble* pviscosity,IssmDouble eps_eff){/*{{{*/
    236         _error_("not implemented yet");
    237 }
    238 /*}}}*/
    239 void  Matestar::GetViscosityComplement(IssmDouble* pviscosity_complement, IssmDouble* epsilon){/*{{{*/
    240         _error_("not implemented yet");
    241 }
    242 /*}}}*/
    243 void  Matestar::GetViscosityDComplement(IssmDouble* pviscosity_complement, IssmDouble* epsilon){/*{{{*/
    244         _error_("not implemented yet");
    245 }
    246 /*}}}*/
    247 void  Matestar::GetViscosityDerivativeEpsSquare(IssmDouble* pmu_prime, IssmDouble* epsilon){/*{{{*/
    248         _error_("not implemented yet");
    249 }
    250 /*}}}*/
    251 IssmDouble Matestar::GetViscosityGeneral(IssmDouble vx,IssmDouble vy,IssmDouble vz,IssmDouble* dvx,IssmDouble* dvy,IssmDouble* dvz,IssmDouble eps_eff,bool isdepthaveraged){/*{{{*/
     231void  Matestar::GetViscosity(IssmDouble* pviscosity,IssmDouble eps_eff,Gauss* gauss){/*{{{*/
     232        _error_("not implemented yet");
     233}
     234/*}}}*/
     235void  Matestar::GetViscosityBar(IssmDouble* pviscosity,IssmDouble eps_eff,Gauss* gauss){/*{{{*/
     236        _error_("not implemented yet");
     237}
     238/*}}}*/
     239void  Matestar::GetViscosityComplement(IssmDouble* pviscosity_complement, IssmDouble* epsilon,Gauss* gauss){/*{{{*/
     240        _error_("not implemented yet");
     241}
     242/*}}}*/
     243void  Matestar::GetViscosityDComplement(IssmDouble* pviscosity_complement, IssmDouble* epsilon,Gauss* gauss){/*{{{*/
     244        _error_("not implemented yet");
     245}
     246/*}}}*/
     247void  Matestar::GetViscosityDerivativeEpsSquare(IssmDouble* pmu_prime, IssmDouble* epsilon,Gauss* gauss){/*{{{*/
     248        _error_("not implemented yet");
     249}
     250/*}}}*/
     251IssmDouble Matestar::GetViscosityGeneral(IssmDouble vx,IssmDouble vy,IssmDouble vz,IssmDouble* dvx,IssmDouble* dvy,IssmDouble* dvz,IssmDouble eps_eff,bool isdepthaveraged,Gauss* gauss){/*{{{*/
    252252
    253253        /*output: */
     
    279279        n=GetN(); _assert_(n>0.);
    280280        if (isdepthaveraged==0.){
    281                 B=GetB(); _assert_(B>0.);
    282                 Ec=GetEc(); _assert_(Ec>=0.);
    283                 Es=GetEs(); _assert_(Es>=0.);
    284         }
    285         else{
    286                 B=GetBbar(); _assert_(B>0.);
    287                 Ec=GetEcbar(); _assert_(Ec>=0.);
    288                 Es=GetEsbar(); _assert_(Es>=0.);
     281                B=GetB(gauss);   _assert_(B>0.);
     282                Ec=GetEc(gauss); _assert_(Ec>=0.); Es=GetEs(gauss); _assert_(Es>=0.);
     283        }
     284        else{
     285                B=GetBbar(gauss);   _assert_(B>0.);
     286                Ec=GetEcbar(gauss); _assert_(Ec>=0.);
     287                Es=GetEsbar(gauss); _assert_(Es>=0.);
    289288        }
    290289
     
    310309}
    311310/*}}}*/
    312 IssmDouble Matestar::GetViscosity_BGeneral(IssmDouble vx,IssmDouble vy,IssmDouble vz,IssmDouble* dvx,IssmDouble* dvy,IssmDouble* dvz,IssmDouble eps_eff,bool isdepthaveraged){/*{{{*/
     311IssmDouble Matestar::GetViscosity_BGeneral(IssmDouble vx,IssmDouble vy,IssmDouble vz,IssmDouble* dvx,IssmDouble* dvy,IssmDouble* dvz,IssmDouble eps_eff,bool isdepthaveraged,Gauss* gauss){/*{{{*/
    313312
    314313        /*Intermediaries*/
     
    337336        /*Get enhancement*/
    338337        if (isdepthaveraged==0.){
    339                 Ec=GetEc(); _assert_(Ec>=0.);
    340                 Es=GetEs(); _assert_(Es>=0.);
    341         }
    342         else{
    343                 Ec=GetEcbar(); _assert_(Ec>=0.);
    344                 Es=GetEsbar(); _assert_(Es>=0.);
     338                Ec=GetEc(gauss); _assert_(Ec>=0.);
     339                Es=GetEs(gauss); _assert_(Es>=0.);
     340        }
     341        else{
     342                Ec=GetEcbar(gauss); _assert_(Ec>=0.);
     343                Es=GetEsbar(gauss); _assert_(Es>=0.);
    345344        }
    346345
     
    350349        /*Compute dmudB*/
    351350        if(eps_eff==0.) dmudB = 0.;
    352         else           dmudB = 1./(2.*pow(E,1./3.)*pow(eps_eff,2./3.));
     351        else            dmudB = 1./(2.*pow(E,1./3.)*pow(eps_eff,2./3.));
    353352
    354353        /*Assign output*/
     
    357356}
    358357/*}}}*/
    359 void  Matestar::GetViscosity_B(IssmDouble* pdmudB,IssmDouble eps_eff){/*{{{*/
     358void  Matestar::GetViscosity_B(IssmDouble* pdmudB,IssmDouble eps_eff,Gauss* gauss){/*{{{*/
    360359         _error_("not implemented yet");
    361360}
    362361/*}}}*/
    363 void  Matestar::GetViscosity_D(IssmDouble* pdmudD,IssmDouble eps_eff){/*{{{*/
     362void  Matestar::GetViscosity_D(IssmDouble* pdmudD,IssmDouble eps_eff,Gauss* gauss){/*{{{*/
    364363         _error_("not implemented yet");
    365364}
    366365/*}}}*/
    367 void  Matestar::GetViscosity2dDerivativeEpsSquare(IssmDouble* pmu_prime, IssmDouble* epsilon){/*{{{*/
     366void  Matestar::GetViscosity2dDerivativeEpsSquare(IssmDouble* pmu_prime, IssmDouble* epsilon,Gauss* gauss){/*{{{*/
    368367        _error_("not implemented yet");
    369368}
     
    437436
    438437        /*Compute dmudB*/
    439         *pdmudB=GetViscosity_BGeneral(vx,vy,vz,&dvx[0],&dvy[0],&dvz[0],eps_eff,isdepthaveraged);
     438        *pdmudB=GetViscosity_BGeneral(vx,vy,vz,&dvx[0],&dvy[0],&dvz[0],eps_eff,isdepthaveraged,gauss);
    440439}
    441440/*}}}*/
     
    466465
    467466        /*Compute viscosity*/
    468         *pdmudB=GetViscosity_BGeneral(vx,vy,vz,&dvx[0],&dvy[0],&dvz[0],eps_eff,isdepthaveraged);
     467        *pdmudB=GetViscosity_BGeneral(vx,vy,vz,&dvx[0],&dvy[0],&dvz[0],eps_eff,isdepthaveraged,gauss);
    469468}/*}}}*/
    470469void  Matestar::ViscosityBSSA(IssmDouble* pdmudB,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,IssmDouble eps_eff){/*{{{*/
     
    496495
    497496        /*Compute viscosity*/
    498         *pdmudB=GetViscosity_BGeneral(vx,vy,vz,&dvx[0],&dvy[0],&dvz[0],eps_eff,isdepthaveraged);
     497        *pdmudB=GetViscosity_BGeneral(vx,vy,vz,&dvx[0],&dvy[0],&dvz[0],eps_eff,isdepthaveraged,gauss);
    499498}/*}}}*/
    500499void  Matestar::ViscosityFS(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,Input* vz_input){/*{{{*/
     
    538537
    539538        /*Compute viscosity*/
    540         *pviscosity=GetViscosityGeneral(vx,vy,vz,&dvx[0],&dvy[0],&dvz[0],eps_eff,isdepthaveraged);
    541 }
    542 /*}}}*/
    543 void  Matestar::ViscosityFSDerivativeEpsSquare(IssmDouble* pmu_prime,IssmDouble* epsilon){/*{{{*/
    544         this->GetViscosityDerivativeEpsSquare(pmu_prime,epsilon);
     539        *pviscosity=GetViscosityGeneral(vx,vy,vz,&dvx[0],&dvy[0],&dvz[0],eps_eff,isdepthaveraged,gauss);
     540}
     541/*}}}*/
     542void  Matestar::ViscosityFSDerivativeEpsSquare(IssmDouble* pmu_prime,IssmDouble* epsilon,Gauss* gauss){/*{{{*/
     543        this->GetViscosityDerivativeEpsSquare(pmu_prime,epsilon,gauss);
    545544}/*}}}*/
    546545void  Matestar::ViscosityHO(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input){/*{{{*/
     
    584583
    585584        /*Compute viscosity*/
    586         *pviscosity=GetViscosityGeneral(vx,vy,vz,&dvx[0],&dvy[0],&dvz[0],eps_eff,isdepthaveraged);
    587 }/*}}}*/
    588 void  Matestar::ViscosityHODerivativeEpsSquare(IssmDouble* pmu_prime,IssmDouble* epsilon){/*{{{*/
     585        *pviscosity=GetViscosityGeneral(vx,vy,vz,&dvx[0],&dvy[0],&dvz[0],eps_eff,isdepthaveraged,gauss);
     586}/*}}}*/
     587void  Matestar::ViscosityHODerivativeEpsSquare(IssmDouble* pmu_prime,IssmDouble* epsilon,Gauss* gauss){/*{{{*/
    589588        _error_("not implemented yet");
    590589}/*}}}*/
     
    635634
    636635        /*Compute viscosity*/
    637         *pviscosity=GetViscosityGeneral(vx,vy,vz,&dvx[0],&dvy[0],&dvz[0],eps_eff,isdepthaveraged);
    638 }/*}}}*/
    639 void  Matestar::ViscositySSADerivativeEpsSquare(IssmDouble* pmu_prime,IssmDouble* epsilon){/*{{{*/
    640         _error_("not implemented yet");
    641 }/*}}}*/
     636        *pviscosity=GetViscosityGeneral(vx,vy,vz,&dvx[0],&dvy[0],&dvz[0],eps_eff,isdepthaveraged,gauss);
     637}/*}}}*/
     638void  Matestar::ViscositySSADerivativeEpsSquare(IssmDouble* pmu_prime,IssmDouble* epsilon,Gauss* gauss){/*{{{*/
     639        _error_("not implemented yet");
     640}/*}}}*/
  • issm/trunk-jpl/src/c/classes/Materials/Matestar.h

    r22010 r22105  
    5656                void   Configure(Elements* elements);
    5757                Material*  copy2(Element* element);
    58                 void       GetViscosity(IssmDouble* pviscosity, IssmDouble eps_eff);
    59                 void       GetViscosityBar(IssmDouble* pviscosity, IssmDouble eps_eff);
    60                 void       GetViscosityComplement(IssmDouble* pviscosity_complement, IssmDouble* pepsilon);
    61                 void       GetViscosityDComplement(IssmDouble*, IssmDouble*);
    62                 void       GetViscosityDerivativeEpsSquare(IssmDouble* pmu_prime, IssmDouble* pepsilon);
    63                 void       GetViscosity_B(IssmDouble* pviscosity, IssmDouble eps_eff);
    64                 void       GetViscosity_D(IssmDouble* pviscosity, IssmDouble eps_eff);
    65                 void       GetViscosity2dDerivativeEpsSquare(IssmDouble* pmu_prime, IssmDouble* pepsilon);
    66                 IssmDouble GetA();
    67                 IssmDouble GetAbar();
    68                 IssmDouble GetB();
    69                 IssmDouble GetBbar();
    70                 IssmDouble GetD();
    71                 IssmDouble GetDbar();
    72                 IssmDouble GetEc();
    73                 IssmDouble GetEcbar();
    74                 IssmDouble GetEs();
    75                 IssmDouble GetEsbar();
     58                void       GetViscosity(IssmDouble* pviscosity, IssmDouble eps_eff,Gauss* gauss);
     59                void       GetViscosityBar(IssmDouble* pviscosity, IssmDouble eps_eff,Gauss* gauss);
     60                void       GetViscosityComplement(IssmDouble* pviscosity_complement, IssmDouble* pepsilon,Gauss* gauss);
     61                void       GetViscosityDComplement(IssmDouble*, IssmDouble*,Gauss* gauss);
     62                void       GetViscosityDerivativeEpsSquare(IssmDouble* pmu_prime, IssmDouble* pepsilon,Gauss* gauss);
     63                void       GetViscosity_B(IssmDouble* pviscosity, IssmDouble eps_eff,Gauss* gauss);
     64                void       GetViscosity_D(IssmDouble* pviscosity, IssmDouble eps_eff,Gauss* gauss);
     65                void       GetViscosity2dDerivativeEpsSquare(IssmDouble* pmu_prime, IssmDouble* pepsilon,Gauss* gauss);
     66                IssmDouble GetA(Gauss* gauss);
     67                IssmDouble GetAbar(Gauss* gauss);
     68                IssmDouble GetB(Gauss* gauss);
     69                IssmDouble GetBbar(Gauss* gauss);
     70                IssmDouble GetD(Gauss* gauss);
     71                IssmDouble GetDbar(Gauss* gauss);
     72                IssmDouble GetEc(Gauss* gauss);
     73                IssmDouble GetEcbar(Gauss* gauss);
     74                IssmDouble GetEs(Gauss* gauss);
     75                IssmDouble GetEsbar(Gauss* gauss);
    7676                IssmDouble GetN();
    7777                bool       IsDamage();
     
    8181
    8282                void       ViscosityFS(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,Input* vz_input);
    83                 void       ViscosityFSDerivativeEpsSquare(IssmDouble* pmu_prime,IssmDouble* epsilon);
     83                void       ViscosityFSDerivativeEpsSquare(IssmDouble* pmu_prime,IssmDouble* epsilon,Gauss* gauss);
    8484                void       ViscosityHO(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input);
    85                 void       ViscosityHODerivativeEpsSquare(IssmDouble* pmu_prime,IssmDouble* epsilon);
     85                void       ViscosityHODerivativeEpsSquare(IssmDouble* pmu_prime,IssmDouble* epsilon,Gauss* gauss);
    8686                void       ViscosityL1L2(IssmDouble* pviscosity,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,Input* surf);
    8787                void       ViscositySSA(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input);
    88                 void       ViscositySSADerivativeEpsSquare(IssmDouble* pmu_prime,IssmDouble* epsilon);
     88                void       ViscositySSADerivativeEpsSquare(IssmDouble* pmu_prime,IssmDouble* epsilon,Gauss* gauss);
    8989                void       ViscosityBFS(IssmDouble* pmudB,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,Input* vz_input,IssmDouble eps_eff);
    9090                void       ViscosityBHO(IssmDouble* pmudB,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,IssmDouble eps_eff);
    9191                void       ViscosityBSSA(IssmDouble* pmudB,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,IssmDouble eps_eff);
    9292                /*}}}*/
    93                 IssmDouble GetViscosityGeneral(IssmDouble vx,IssmDouble vy,IssmDouble vz,IssmDouble* dvx,IssmDouble* dvy,IssmDouble* dvz,IssmDouble eps_eff,bool isdepthaveraged);
    94                 IssmDouble GetViscosity_BGeneral(IssmDouble vx,IssmDouble vy,IssmDouble vz,IssmDouble* dvx,IssmDouble* dvy,IssmDouble* dvz,IssmDouble eps_eff,bool isdepthaveraged);
     93                IssmDouble GetViscosityGeneral(IssmDouble vx,IssmDouble vy,IssmDouble vz,IssmDouble* dvx,IssmDouble* dvy,IssmDouble* dvz,IssmDouble eps_eff,bool isdepthaveraged,Gauss* gauss);
     94                IssmDouble GetViscosity_BGeneral(IssmDouble vx,IssmDouble vy,IssmDouble vz,IssmDouble* dvx,IssmDouble* dvy,IssmDouble* dvz,IssmDouble eps_eff,bool isdepthaveraged,Gauss* gauss);
    9595};
    9696
  • issm/trunk-jpl/src/c/classes/Materials/Matice.cpp

    r22010 r22105  
    193193}
    194194/*}}}*/
    195 IssmDouble Matice::GetA(){/*{{{*/
     195IssmDouble Matice::GetA(Gauss* gauss){/*{{{*/
    196196        /*
    197197         * A = 1/B^n
     
    206206}
    207207/*}}}*/
    208 IssmDouble Matice::GetAbar(){/*{{{*/
     208IssmDouble Matice::GetAbar(Gauss* gauss){/*{{{*/
    209209        /*
    210210         * A = 1/B^n
     
    219219}
    220220/*}}}*/
    221 IssmDouble Matice::GetB(){/*{{{*/
     221IssmDouble Matice::GetB(Gauss* gauss){/*{{{*/
    222222
    223223        /*Output*/
     
    228228}
    229229/*}}}*/
    230 IssmDouble Matice::GetBbar(){/*{{{*/
     230IssmDouble Matice::GetBbar(Gauss* gauss){/*{{{*/
    231231
    232232        /*Output*/
     
    237237}
    238238/*}}}*/
    239 IssmDouble Matice::GetD(){/*{{{*/
     239IssmDouble Matice::GetD(Gauss* gauss){/*{{{*/
    240240
    241241        _assert_(this->isdamaged);
     
    246246}
    247247/*}}}*/
    248 IssmDouble Matice::GetDbar(){/*{{{*/
     248IssmDouble Matice::GetDbar(Gauss* gauss){/*{{{*/
    249249
    250250        _assert_(this->isdamaged);
     
    255255}
    256256/*}}}*/
    257 IssmDouble Matice::GetE(){/*{{{*/
     257IssmDouble Matice::GetE(Gauss* gauss){/*{{{*/
    258258
    259259        _assert_(this->isenhanced);
     
    264264}
    265265/*}}}*/
    266 IssmDouble Matice::GetEbar(){/*{{{*/
     266IssmDouble Matice::GetEbar(Gauss* gauss){/*{{{*/
    267267
    268268        _assert_(this->isenhanced);
     
    292292}
    293293/*}}}*/
    294 void  Matice::GetViscosity(IssmDouble* pviscosity,IssmDouble eps_eff){/*{{{*/
     294void  Matice::GetViscosity(IssmDouble* pviscosity,IssmDouble eps_eff,Gauss* gauss){/*{{{*/
    295295        /*From a string tensor and a material object, return viscosity, using Glen's flow law.
    296296                                                                (1-D) B
     
    312312
    313313        /*Get B and n*/
    314         B=GetB(); _assert_(B>0.);
     314        B=GetB(gauss); _assert_(B>0.);
    315315        n=GetN(); _assert_(n>0.);
    316316        if(this->isdamaged){
    317                 D=GetD();
     317                D=GetD(gauss);
    318318                _assert_(D>=0. && D<1.);
    319319        }
    320320        if(this->isenhanced){
    321                 E=GetE();
     321                E=GetE(gauss);
    322322                _assert_(E>0.);
    323323        }
     
    348348}
    349349/*}}}*/
    350 void  Matice::GetViscosityBar(IssmDouble* pviscosity,IssmDouble eps_eff){/*{{{*/
     350void  Matice::GetViscosityBar(IssmDouble* pviscosity,IssmDouble eps_eff,Gauss* gauss){/*{{{*/
    351351        /*From a string tensor and a material object, return viscosity, using Glen's flow law.
    352352                                                                (1-D) B
     
    368368
    369369        /*Get B and n*/
    370         B=GetBbar(); _assert_(B>0.);
     370        B=GetBbar(gauss); _assert_(B>0.);
    371371        n=GetN();    _assert_(n>0.);
    372372        if(this->isdamaged){
    373                 D=GetDbar();
     373                D=GetDbar(gauss);
    374374                _assert_(D>=0. && D<1.);
    375375        }
    376376        if(this->isenhanced){
    377                 E=GetEbar();
     377                E=GetEbar(gauss);
    378378                _assert_(E>0.);
    379379        }
     
    403403}
    404404/*}}}*/
    405 void  Matice::GetViscosityComplement(IssmDouble* pviscosity_complement, IssmDouble* epsilon){/*{{{*/
     405void  Matice::GetViscosityComplement(IssmDouble* pviscosity_complement, IssmDouble* epsilon,Gauss* gauss){/*{{{*/
    406406        /*Return viscosity accounting for steady state power law creep [Thomas and SSA, 1982]:
    407407         *
     
    426426        /*Get D and n*/
    427427        if(this->isdamaged){
    428                 D=GetDbar(); /* GetD()? */
     428                D=GetDbar(gauss); /* GetD()? */
    429429                _assert_(D>=0. && D<1.);
    430430        }
     
    461461}
    462462/*}}}*/
    463 void  Matice::GetViscosityDComplement(IssmDouble* pviscosity_complement, IssmDouble* epsilon){/*{{{*/
     463void  Matice::GetViscosityDComplement(IssmDouble* pviscosity_complement, IssmDouble* epsilon,Gauss* gauss){/*{{{*/
    464464        /*Return viscosity derivative for control method d(mu)/dD:
    465465         *
     
    483483
    484484        /*Get B and n*/
    485         B=GetBbar();
     485        B=GetBbar(gauss);
    486486        n=GetN();
    487487
     
    516516}
    517517/*}}}*/
    518 void  Matice::GetViscosityDerivativeEpsSquare(IssmDouble* pmu_prime, IssmDouble* epsilon){/*{{{*/
     518void  Matice::GetViscosityDerivativeEpsSquare(IssmDouble* pmu_prime, IssmDouble* epsilon,Gauss* gauss){/*{{{*/
    519519
    520520        /*output: */
     
    532532        else{
    533533
    534                 /*Retrive strain rate components: */
     534                /*Retrieve strain rate components: */
    535535                exx=epsilon[0];
    536536                eyy=epsilon[1];
     
    540540                eff2 = exx*exx + eyy*eyy + exx*eyy + exy*exy + exz*exz + eyz*eyz;
    541541
    542                 GetViscosity(&mu,sqrt(eff2));
     542                GetViscosity(&mu,sqrt(eff2),gauss);
    543543                n=GetN();
    544544                mu_prime=(1.-n)/(2.*n) * mu/eff2;
     
    549549}
    550550/*}}}*/
    551 void  Matice::GetViscosity_B(IssmDouble* pdmudB,IssmDouble eps_eff){/*{{{*/
     551void  Matice::GetViscosity_B(IssmDouble* pdmudB,IssmDouble eps_eff,Gauss* gauss){/*{{{*/
    552552
    553553        /*output: */
     
    560560        n=GetN(); _assert_(n>0.);
    561561        if(this->isdamaged){
    562                 D=GetD();
     562                D=GetD(gauss);
    563563                _assert_(D>=0. && D<1.);
    564564        }
    565565        if(this->isenhanced){
    566                 E=GetE();
     566                E=GetE(gauss);
    567567                _assert_(E>0.);
    568568        }
     
    581581}
    582582/*}}}*/
    583 void  Matice::GetViscosity_D(IssmDouble* pdmudD,IssmDouble eps_eff){/*{{{*/
     583void  Matice::GetViscosity_D(IssmDouble* pdmudD,IssmDouble eps_eff,Gauss* gauss){/*{{{*/
    584584
    585585        /*output: */
     
    591591        /*Get B and n*/
    592592        n=GetN(); _assert_(n>0.);
    593         B=GetBbar();
     593        B=GetBbar(gauss);
    594594        _assert_(this->isdamaged);
    595595        if(this->isenhanced){
    596                 E=GetE();
     596                E=GetE(gauss);
    597597                _assert_(E>0.);
    598598        }
     
    611611}
    612612/*}}}*/
    613 void  Matice::GetViscosity2dDerivativeEpsSquare(IssmDouble* pmu_prime, IssmDouble* epsilon){/*{{{*/
     613void  Matice::GetViscosity2dDerivativeEpsSquare(IssmDouble* pmu_prime, IssmDouble* epsilon,Gauss* gauss){/*{{{*/
    614614
    615615        /*output: */
     
    630630                eff2 = exx*exx + eyy*eyy + exx*eyy + exy*exy ;
    631631
    632                 GetViscosityBar(&mu,sqrt(eff2));
     632                GetViscosityBar(&mu,sqrt(eff2),gauss);
    633633                n=GetN();
    634634                mu_prime=(1.-n)/(2.*n)*mu/eff2;
     
    709709
    710710        /*Get viscosity*/
    711         this->GetViscosity(&viscosity,eps_eff);
     711        this->GetViscosity(&viscosity,eps_eff,gauss);
    712712
    713713        /*Assign output pointer*/
     
    715715}
    716716/*}}}*/
    717 void  Matice::ViscosityFSDerivativeEpsSquare(IssmDouble* pmu_prime,IssmDouble* epsilon){/*{{{*/
    718         this->GetViscosityDerivativeEpsSquare(pmu_prime,epsilon);
     717void  Matice::ViscosityFSDerivativeEpsSquare(IssmDouble* pmu_prime,IssmDouble* epsilon,Gauss* gauss){/*{{{*/
     718        this->GetViscosityDerivativeEpsSquare(pmu_prime,epsilon,gauss);
    719719}/*}}}*/
    720720void  Matice::ViscosityHO(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input){/*{{{*/
     
    738738
    739739        /*Get viscosity*/
    740         this->GetViscosity(&viscosity,eps_eff);
     740        this->GetViscosity(&viscosity,eps_eff,gauss);
    741741        _assert_(!xIsNan<IssmDouble>(viscosity));
    742742
     
    744744        *pviscosity=viscosity;
    745745}/*}}}*/
    746 void  Matice::ViscosityHODerivativeEpsSquare(IssmDouble* pmu_prime,IssmDouble* epsilon){/*{{{*/
    747         this->GetViscosityDerivativeEpsSquare(pmu_prime,epsilon);
     746void  Matice::ViscosityHODerivativeEpsSquare(IssmDouble* pmu_prime,IssmDouble* epsilon,Gauss* gauss){/*{{{*/
     747        this->GetViscosityDerivativeEpsSquare(pmu_prime,epsilon,gauss);
    748748}/*}}}*/
    749749void  Matice::ViscosityL1L2(IssmDouble* pviscosity,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,Input* surface_input){/*{{{*/
     
    789789        /*Get A*/
    790790        _assert_(this->GetN()==3.0);
    791         A=this->GetA();
     791        A=this->GetA(gauss);
    792792
    793793        /*Solve for tau_perp (http://fr.wikipedia.org/wiki/Méthode_de_Cardan)*/
     
    826826
    827827        /*Get viscosity*/
    828         this->GetViscosityBar(&viscosity,eps_eff);
     828        this->GetViscosityBar(&viscosity,eps_eff,gauss);
    829829
    830830        /*Assign output pointer*/
    831831        *pviscosity=viscosity;
    832832}/*}}}*/
    833 void  Matice::ViscositySSADerivativeEpsSquare(IssmDouble* pmu_prime,IssmDouble* epsilon){/*{{{*/
    834         this->GetViscosity2dDerivativeEpsSquare(pmu_prime,epsilon);
     833void  Matice::ViscositySSADerivativeEpsSquare(IssmDouble* pmu_prime,IssmDouble* epsilon,Gauss* gauss){/*{{{*/
     834        this->GetViscosity2dDerivativeEpsSquare(pmu_prime,epsilon,gauss);
    835835}/*}}}*/
  • issm/trunk-jpl/src/c/classes/Materials/Matice.h

    r22010 r22105  
    6060                void   Configure(Elements* elements);
    6161                Material*  copy2(Element* element);
    62                 void       GetViscosity(IssmDouble* pviscosity, IssmDouble eps_eff);
    63                 void       GetViscosityBar(IssmDouble* pviscosity, IssmDouble eps_eff);
    64                 void       GetViscosityComplement(IssmDouble* pviscosity_complement, IssmDouble* pepsilon);
    65                 void       GetViscosityDComplement(IssmDouble*, IssmDouble*);
    66                 void       GetViscosityDerivativeEpsSquare(IssmDouble* pmu_prime, IssmDouble* pepsilon);
    67                 void       GetViscosity_B(IssmDouble* pviscosity, IssmDouble eps_eff);
    68                 void       GetViscosity_D(IssmDouble* pviscosity, IssmDouble eps_eff);
    69                 void       GetViscosity2dDerivativeEpsSquare(IssmDouble* pmu_prime, IssmDouble* pepsilon);
    70                 IssmDouble GetA();
    71                 IssmDouble GetAbar();
    72                 IssmDouble GetB();
    73                 IssmDouble GetBbar();
    74                 IssmDouble GetD();
    75                 IssmDouble GetDbar();
    76                 IssmDouble GetE();
    77                 IssmDouble GetEbar();
     62                void       GetViscosity(IssmDouble* pviscosity, IssmDouble eps_eff,Gauss* gauss);
     63                void       GetViscosityBar(IssmDouble* pviscosity, IssmDouble eps_eff,Gauss* gauss);
     64                void       GetViscosityComplement(IssmDouble* pviscosity_complement, IssmDouble* pepsilon,Gauss* gauss);
     65                void       GetViscosityDComplement(IssmDouble*, IssmDouble*,Gauss* gauss);
     66                void       GetViscosityDerivativeEpsSquare(IssmDouble* pmu_prime, IssmDouble* pepsilon,Gauss* gauss);
     67                void       GetViscosity_B(IssmDouble* pviscosity, IssmDouble eps_eff,Gauss* gauss);
     68                void       GetViscosity_D(IssmDouble* pviscosity, IssmDouble eps_eff,Gauss* gauss);
     69                void       GetViscosity2dDerivativeEpsSquare(IssmDouble* pmu_prime, IssmDouble* pepsilon,Gauss* gauss);
     70                IssmDouble GetA(Gauss* gauss);
     71                IssmDouble GetAbar(Gauss* gauss);
     72                IssmDouble GetB(Gauss* gauss);
     73                IssmDouble GetBbar(Gauss* gauss);
     74                IssmDouble GetD(Gauss* gauss);
     75                IssmDouble GetDbar(Gauss* gauss);
     76                IssmDouble GetE(Gauss* gauss);
     77                IssmDouble GetEbar(Gauss* gauss);
    7878                IssmDouble GetN();
    7979                bool       IsDamage();
     
    8383
    8484                void       ViscosityFS(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,Input* vz_input);
    85                 void       ViscosityFSDerivativeEpsSquare(IssmDouble* pmu_prime,IssmDouble* epsilon);
     85                void       ViscosityFSDerivativeEpsSquare(IssmDouble* pmu_prime,IssmDouble* epsilon,Gauss* gauss);
    8686                void       ViscosityHO(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input);
    87                 void       ViscosityHODerivativeEpsSquare(IssmDouble* pmu_prime,IssmDouble* epsilon);
     87                void       ViscosityHODerivativeEpsSquare(IssmDouble* pmu_prime,IssmDouble* epsilon,Gauss* gauss);
    8888                void       ViscosityL1L2(IssmDouble* pviscosity,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,Input* surf);
    8989                void       ViscositySSA(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input);
    90                 void       ViscositySSADerivativeEpsSquare(IssmDouble* pmu_prime,IssmDouble* epsilon);
     90                void       ViscositySSADerivativeEpsSquare(IssmDouble* pmu_prime,IssmDouble* epsilon,Gauss* gauss);
    9191                void       ViscosityBFS(IssmDouble* pmudB,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,Input* vz_input,IssmDouble eps_eff){_error_("not supported");};
    9292                void       ViscosityBHO(IssmDouble* pmudB,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,IssmDouble eps_eff){_error_("not supported");};
  • issm/trunk-jpl/src/c/classes/Materials/Matlitho.h

    r22013 r22105  
    5252                Material*  copy2(Element* element){_error_("not implemented");};
    5353                void       Configure(Elements* elements);
    54                 void       GetViscosity(IssmDouble* pviscosity,IssmDouble eps_eff){_error_("not supported");};
    55                 void       GetViscosityBar(IssmDouble* pviscosity,IssmDouble eps_eff){_error_("not supported");};
    56                 void       GetViscosityComplement(IssmDouble* pviscosity_complement, IssmDouble* pepsilon){_error_("not supported");};
    57                 void       GetViscosityDComplement(IssmDouble* pviscosity_complement, IssmDouble* pepsilon){_error_("not supported");};
    58                 void       GetViscosityDerivativeEpsSquare(IssmDouble* pmu_prime, IssmDouble* pepsilon){_error_("not supported");};
    59                 void       GetViscosity_B(IssmDouble* pviscosity,IssmDouble eps_eff){_error_("not supported");};
    60                 void       GetViscosity_D(IssmDouble* pviscosity,IssmDouble eps_eff){_error_("not supported");};
    61                 void       GetViscosity2dDerivativeEpsSquare(IssmDouble* pmu_prime, IssmDouble* pepsilon){_error_("not supported");};
    62                 IssmDouble GetA(){_error_("not supported");};
    63                 IssmDouble GetAbar(){_error_("not supported");};
    64                 IssmDouble GetB(){_error_("not supported");};
    65                 IssmDouble GetBbar(){_error_("not supported");};
    66                 IssmDouble GetD(){_error_("not supported");};
    67                 IssmDouble GetDbar(){_error_("not supported");};
     54                void       GetViscosity(IssmDouble* pviscosity,IssmDouble eps_eff,Gauss* gauss){_error_("not supported");};
     55                void       GetViscosityBar(IssmDouble* pviscosity,IssmDouble eps_eff,Gauss* gauss){_error_("not supported");};
     56                void       GetViscosityComplement(IssmDouble* pviscosity_complement, IssmDouble* pepsilon,Gauss* gauss){_error_("not supported");};
     57                void       GetViscosityDComplement(IssmDouble* pviscosity_complement, IssmDouble* pepsilon,Gauss* gauss){_error_("not supported");};
     58                void       GetViscosityDerivativeEpsSquare(IssmDouble* pmu_prime, IssmDouble* pepsilon,Gauss* gauss){_error_("not supported");};
     59                void       GetViscosity_B(IssmDouble* pviscosity,IssmDouble eps_eff,Gauss* gauss){_error_("not supported");};
     60                void       GetViscosity_D(IssmDouble* pviscosity,IssmDouble eps_eff,Gauss* gauss){_error_("not supported");};
     61                void       GetViscosity2dDerivativeEpsSquare(IssmDouble* pmu_prime, IssmDouble* pepsilon,Gauss* gauss){_error_("not supported");};
     62                IssmDouble GetA(Gauss* gauss){_error_("not supported");};
     63                IssmDouble GetAbar(Gauss* gauss){_error_("not supported");};
     64                IssmDouble GetB(Gauss* gauss){_error_("not supported");};
     65                IssmDouble GetBbar(Gauss* gauss){_error_("not supported");};
     66                IssmDouble GetD(Gauss* gauss){_error_("not supported");};
     67                IssmDouble GetDbar(Gauss* gauss){_error_("not supported");};
    6868                IssmDouble GetN(){_error_("not supported");};
    6969                bool       IsDamage(){_error_("not supported");};
     
    7272
    7373                void       ViscosityFS(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,Input* vz_input){_error_("not supported");};
    74                 void       ViscosityFSDerivativeEpsSquare(IssmDouble* pmu_prime,IssmDouble* epsilon){_error_("not supported");};
     74                void       ViscosityFSDerivativeEpsSquare(IssmDouble* pmu_prime,IssmDouble* epsilon,Gauss* gauss){_error_("not supported");};
    7575                void       ViscosityHO(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input){_error_("not supported");};
    76                 void       ViscosityHODerivativeEpsSquare(IssmDouble* pmu_prime,IssmDouble* epsilon){_error_("not supported");};
     76                void       ViscosityHODerivativeEpsSquare(IssmDouble* pmu_prime,IssmDouble* epsilon,Gauss* gauss){_error_("not supported");};
    7777                void       ViscosityL1L2(IssmDouble* pviscosity,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,Input* surf){_error_("not supported");};
    7878                void       ViscositySSA(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input){_error_("not supported");};
    79                 void       ViscositySSADerivativeEpsSquare(IssmDouble* pmu_prime,IssmDouble* epsilon){_error_("not supported");};
     79                void       ViscositySSADerivativeEpsSquare(IssmDouble* pmu_prime,IssmDouble* epsilon,Gauss* gauss){_error_("not supported");};
    8080                void       ViscosityBFS(IssmDouble* pmudB,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,Input* vz_input,IssmDouble epseff){_error_("not supported");};
    8181                void       ViscosityBHO(IssmDouble* pmudB,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,IssmDouble epseff){_error_("not supported");};
  • issm/trunk-jpl/src/c/classes/Materials/Matpar.h

    r22016 r22105  
    8989                Material*  copy2(Element* element){_error_("not implemented");};
    9090                void       Configure(Elements* elements);
    91                 void       GetViscosity(IssmDouble* pviscosity,IssmDouble eps_eff){_error_("not supported");};
    92                 void       GetViscosityBar(IssmDouble* pviscosity,IssmDouble eps_eff){_error_("not supported");};
    93                 void       GetViscosityComplement(IssmDouble* pviscosity_complement, IssmDouble* pepsilon){_error_("not supported");};
    94                 void       GetViscosityDComplement(IssmDouble* pviscosity_complement, IssmDouble* pepsilon){_error_("not supported");};
    95                 void       GetViscosityDerivativeEpsSquare(IssmDouble* pmu_prime, IssmDouble* pepsilon){_error_("not supported");};
    96                 void       GetViscosity_B(IssmDouble* pviscosity,IssmDouble eps_eff){_error_("not supported");};
    97                 void       GetViscosity_D(IssmDouble* pviscosity,IssmDouble eps_eff){_error_("not supported");};
    98                 void       GetViscosity2dDerivativeEpsSquare(IssmDouble* pmu_prime, IssmDouble* pepsilon){_error_("not supported");};
    99                 IssmDouble GetA(){_error_("not supported");};
    100                 IssmDouble GetAbar(){_error_("not supported");};
    101                 IssmDouble GetB(){_error_("not supported");};
    102                 IssmDouble GetBbar(){_error_("not supported");};
    103                 IssmDouble GetD(){_error_("not supported");};
    104                 IssmDouble GetDbar(){_error_("not supported");};
     91                void       GetViscosity(IssmDouble* pviscosity,IssmDouble eps_eff,Gauss* gauss){_error_("not supported");};
     92                void       GetViscosityBar(IssmDouble* pviscosity,IssmDouble eps_eff,Gauss* gauss){_error_("not supported");};
     93                void       GetViscosityComplement(IssmDouble* pviscosity_complement, IssmDouble* pepsilon,Gauss* gauss){_error_("not supported");};
     94                void       GetViscosityDComplement(IssmDouble* pviscosity_complement, IssmDouble* pepsilon,Gauss* gauss){_error_("not supported");};
     95                void       GetViscosityDerivativeEpsSquare(IssmDouble* pmu_prime, IssmDouble* pepsilon,Gauss* gauss){_error_("not supported");};
     96                void       GetViscosity_B(IssmDouble* pviscosity,IssmDouble eps_eff,Gauss* gauss){_error_("not supported");};
     97                void       GetViscosity_D(IssmDouble* pviscosity,IssmDouble eps_eff,Gauss* gauss){_error_("not supported");};
     98                void       GetViscosity2dDerivativeEpsSquare(IssmDouble* pmu_prime, IssmDouble* pepsilon,Gauss* gauss){_error_("not supported");};
     99                IssmDouble GetA(Gauss* gauss){_error_("not supported");};
     100                IssmDouble GetAbar(Gauss* gauss){_error_("not supported");};
     101                IssmDouble GetB(Gauss* gauss){_error_("not supported");};
     102                IssmDouble GetBbar(Gauss* gauss){_error_("not supported");};
     103                IssmDouble GetD(Gauss* gauss){_error_("not supported");};
     104                IssmDouble GetDbar(Gauss* gauss){_error_("not supported");};
    105105                IssmDouble GetN(){_error_("not supported");};
    106106                bool       IsDamage(){_error_("not supported");};
     
    109109
    110110                void       ViscosityFS(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,Input* vz_input){_error_("not supported");};
    111                 void       ViscosityFSDerivativeEpsSquare(IssmDouble* pmu_prime,IssmDouble* epsilon){_error_("not supported");};
     111                void       ViscosityFSDerivativeEpsSquare(IssmDouble* pmu_prime,IssmDouble* epsilon,Gauss* gauss){_error_("not supported");};
    112112                void       ViscosityHO(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input){_error_("not supported");};
    113                 void       ViscosityHODerivativeEpsSquare(IssmDouble* pmu_prime,IssmDouble* epsilon){_error_("not supported");};
     113                void       ViscosityHODerivativeEpsSquare(IssmDouble* pmu_prime,IssmDouble* epsilon,Gauss* gauss){_error_("not supported");};
    114114                void       ViscosityL1L2(IssmDouble* pviscosity,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,Input* surf){_error_("not supported");};
    115115                void       ViscositySSA(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input){_error_("not supported");};
    116                 void       ViscositySSADerivativeEpsSquare(IssmDouble* pmu_prime,IssmDouble* epsilon){_error_("not supported");};
     116                void       ViscositySSADerivativeEpsSquare(IssmDouble* pmu_prime,IssmDouble* epsilon,Gauss* gauss){_error_("not supported");};
    117117                void       ViscosityBFS(IssmDouble* pmudB,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,Input* vz_input,IssmDouble eps_eff){_error_("not supported");};
    118118                void       ViscosityBHO(IssmDouble* pmudB,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,IssmDouble eps_eff){_error_("not supported");};
Note: See TracChangeset for help on using the changeset viewer.