Changeset 22306


Ignore:
Timestamp:
12/22/17 09:34:11 (7 years ago)
Author:
Mathieu Morlighem
Message:

CHG: WARNING This is a significant change, we do not average B, D and E over the element anymore because this makes models with few layers but high degree of interpolation useless

Location:
issm/trunk-jpl/src/c/classes/Materials
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk-jpl/src/c/classes/Materials/Matestar.cpp

    r22105 r22306  
    136136        /*
    137137         * A = 1/B^n
    138     */
    139 
    140         IssmDouble B,n;
    141 
    142         element->inputs->GetInputAverage(&B,MaterialsRheologyBEnum);
    143         n=this->GetN();
     138         */
     139
     140        IssmDouble B=this->GetB(gauss);
     141        IssmDouble n=this->GetN();
    144142
    145143        return pow(B,-n);
     
    151149         */
    152150
    153         IssmDouble B,n;
    154 
    155         element->inputs->GetInputAverage(&B,MaterialsRheologyBbarEnum);
    156         n=this->GetN();
     151        IssmDouble B=this->GetBbar(gauss);
     152        IssmDouble n=this->GetN();
    157153
    158154        return pow(B,-n);
     
    164160        IssmDouble B;
    165161
    166         element->inputs->GetInputAverage(&B,MaterialsRheologyBEnum);
     162        Input* B_input = element->GetInput(MaterialsRheologyBEnum); _assert_(B_input);
     163        B_input->GetInputValue(&B,gauss);
    167164        return B;
    168165}
     
    173170        IssmDouble Bbar;
    174171
    175         element->inputs->GetInputAverage(&Bbar,MaterialsRheologyBbarEnum);
     172        Input* B_input = element->GetInput(MaterialsRheologyBbarEnum); _assert_(B_input);
     173        B_input->GetInputValue(&Bbar,gauss);
    176174        return Bbar;
    177175}
     
    191189        IssmDouble Ec;
    192190
    193         element->inputs->GetInputAverage(&Ec,MaterialsRheologyEcEnum);
     191        Input* Ec_input = element->GetInput(MaterialsRheologyEcEnum); _assert_(Ec_input);
     192        Ec_input->GetInputValue(&Ec,gauss);
    194193        return Ec;
    195194}
     
    200199        IssmDouble Ecbar;
    201200
    202         element->inputs->GetInputAverage(&Ecbar,MaterialsRheologyEcbarEnum);
     201        Input* Ecbar_input = element->GetInput(MaterialsRheologyEcbarEnum); _assert_(Ecbar_input);
     202        Ecbar_input->GetInputValue(&Ecbar,gauss);
    203203        return Ecbar;
    204204}
     
    209209        IssmDouble Es;
    210210
    211         element->inputs->GetInputAverage(&Es,MaterialsRheologyEsEnum);
     211        Input* Es_input = element->GetInput(MaterialsRheologyEsEnum); _assert_(Es_input);
     212        Es_input->GetInputValue(&Es,gauss);
    212213        return Es;
    213214}
     
    218219        IssmDouble Esbar;
    219220
    220         element->inputs->GetInputAverage(&Esbar,MaterialsRheologyEsbarEnum);
     221        Input* Esbar_input = element->GetInput(MaterialsRheologyEsbarEnum); _assert_(Esbar_input);
     222        Esbar_input->GetInputValue(&Esbar,gauss);
    221223        return Esbar;
    222224}
  • issm/trunk-jpl/src/c/classes/Materials/Matice.cpp

    r22105 r22306  
    198198         */
    199199
    200         IssmDouble B,n;
    201 
    202         element->inputs->GetInputAverage(&B,MaterialsRheologyBEnum);
    203         n=this->GetN();
     200        IssmDouble B=this->GetB(gauss);
     201        IssmDouble n=this->GetN();
    204202
    205203        return pow(B,-n);
     
    211209         */
    212210
    213         IssmDouble B,n;
    214 
    215         element->inputs->GetInputAverage(&B,MaterialsRheologyBbarEnum);
    216         n=this->GetN();
     211        IssmDouble B=this->GetBbar(gauss);
     212        IssmDouble n=this->GetN();
    217213
    218214        return pow(B,-n);
     
    224220        IssmDouble B;
    225221
    226         element->inputs->GetInputAverage(&B,MaterialsRheologyBEnum);
     222        Input* B_input = element->GetInput(MaterialsRheologyBEnum); _assert_(B_input);
     223        B_input->GetInputValue(&B,gauss);
    227224        return B;
    228225}
     
    233230        IssmDouble Bbar;
    234231
    235         element->inputs->GetInputAverage(&Bbar,MaterialsRheologyBbarEnum);
     232        Input* B_input = element->GetInput(MaterialsRheologyBbarEnum); _assert_(B_input);
     233        B_input->GetInputValue(&Bbar,gauss);
    236234        return Bbar;
    237235}
     
    242240        /*Output*/
    243241        IssmDouble D;
    244         if(this->isdamaged)element->inputs->GetInputAverage(&D,DamageDEnum);
     242        if(this->isdamaged){
     243                Input* D_input = element->GetInput(DamageDEnum); _assert_(D_input);
     244                D_input->GetInputValue(&D,gauss);
     245        }
     246        else{
     247                _error_("Cannot get DamageD for non damaged ice");
     248        }
    245249        return D;
    246250}
     
    251255        /*Output*/
    252256        IssmDouble Dbar;
    253         if(this->isdamaged)element->inputs->GetInputAverage(&Dbar,DamageDbarEnum);
     257        if(this->isdamaged){
     258                Input* D_input = element->GetInput(DamageDbarEnum); _assert_(D_input);
     259                D_input->GetInputValue(&Dbar,gauss);
     260        }
     261        else{
     262                _error_("Cannot get DamageD for non damaged ice");
     263        }
    254264        return Dbar;
    255265}
     
    260270        /*Output*/
    261271        IssmDouble E;
    262         if(this->isenhanced)element->inputs->GetInputAverage(&E,MaterialsRheologyEEnum);
     272        Input* E_input = element->GetInput(MaterialsRheologyEEnum); _assert_(E_input);
     273        E_input->GetInputValue(&E,gauss);
    263274        return E;
    264275}
     
    269280        /*Output*/
    270281        IssmDouble Ebar;
    271         if(this->isenhanced)element->inputs->GetInputAverage(&Ebar,MaterialsRheologyEbarEnum);
     282        Input* E_input = element->GetInput(MaterialsRheologyEbarEnum); _assert_(E_input);
     283        E_input->GetInputValue(&Ebar,gauss);
    272284        return Ebar;
    273285}
Note: See TracChangeset for help on using the changeset viewer.