Changeset 16167
- Timestamp:
- 09/18/13 12:09:59 (12 years ago)
- Location:
- issm/trunk-jpl
- Files:
-
- 7 deleted
- 62 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/src/c/Makefile.am
r16126 r16167 100 100 ./classes/Materials/Matice.h\ 101 101 ./classes/Materials/Matice.cpp\ 102 ./classes/Materials/Matdamageice.h\103 ./classes/Materials/Matdamageice.cpp\104 102 ./classes/Materials/Matpar.h\ 105 103 ./classes/Materials/Matpar.cpp\ -
issm/trunk-jpl/src/c/classes/Elements/Penta.cpp
r16166 r16167 2142 2142 2143 2143 /*Go through all the input objects, and find the one corresponding to enum_type, if it exists: */ 2144 if (enum_type==MaterialsRheologyBbarEnum) 2145 input=this->material->inputs->GetInput(MaterialsRheologyBEnum); 2146 else if (enum_type==MaterialsRheologyZbarEnum) 2147 input=this->material->inputs->GetInput(MaterialsRheologyZEnum); 2148 else 2149 input=this->inputs->GetInput(enum_type); 2144 if (enum_type==MaterialsRheologyBbarEnum) input=this->material->inputs->GetInput(MaterialsRheologyBEnum); 2145 else if (enum_type==DamageDbarEnum) input=this->material->inputs->GetInput(DamageDEnum); 2146 else input=this->inputs->GetInput(enum_type); 2150 2147 //if (!input) _error_("Input " << EnumToStringx(enum_type) << " not found in penta->inputs"); why error out? if the requested input does not exist, we should still 2151 2148 //try and output whatever we can instead of just failing. … … 2258 2255 } 2259 2256 break; 2260 case MaterialsRheologyBbarEnum:2261 case MaterialsRheology ZbarEnum:2262 /*Material will take care of it*/break;2257 /*Material will take care of it*/ 2258 case MaterialsRheologyBbarEnum: break; 2259 case DamageDbarEnum:break; 2263 2260 default: 2264 2261 _error_("Control " << EnumToStringx(reCast<int,IssmDouble>(iomodel->Data(InversionControlParametersEnum)[i])) << " not implemented yet"); … … 2667 2664 } 2668 2665 /*update input*/ 2669 if (name==MaterialsRheologyZEnum || name==MaterialsRheologyZbarEnum){ 2670 material->inputs->AddInput(new PentaInput(name,values,P1Enum)); 2671 } 2672 else{ 2673 this->inputs->AddInput(new PentaInput(name,values,P1Enum)); 2674 } 2666 this->inputs->AddInput(new PentaInput(name,values,P1Enum)); 2675 2667 return; 2676 2668 … … 2680 2672 } 2681 2673 /*update input*/ 2682 if (name==MaterialsRheologyZEnum || name==MaterialsRheologyZbarEnum){ 2683 material->inputs->AddInput(new PentaInput(name,values,P1Enum)); 2684 } 2685 else{ 2686 this->inputs->AddInput(new PentaInput(name,values,P1Enum)); 2687 } 2674 this->inputs->AddInput(new PentaInput(name,values,P1Enum)); 2688 2675 return; 2689 2676 … … 3980 3967 *presponse=this->material->GetBbar(); 3981 3968 break; 3982 case MaterialsRheologyZbarEnum:3983 *presponse=this->material->Get Zbar();3969 case DamageDbarEnum: 3970 *presponse=this->material->GetDbar(); 3984 3971 break; 3985 3972 case VelEnum: … … 5433 5420 input=(Input*)material->inputs->GetInput(MaterialsRheologyBEnum); 5434 5421 } 5435 else if(enum_type== MaterialsRheologyZbarEnum){5422 else if(enum_type==DamageDbarEnum){ 5436 5423 if(!IsOnBed()) return; 5437 input=(Input*)material->inputs->GetInput(MaterialsRheologyZEnum); 5438 } 5439 5424 input=(Input*)material->inputs->GetInput(DamageDEnum); 5425 } 5440 5426 else{ 5441 5427 input=inputs->GetInput(enum_type); … … 5456 5442 input=(Input*)material->inputs->GetInput(MaterialsRheologyBEnum); 5457 5443 } 5458 else if(enum_type== MaterialsRheologyZbarEnum){5459 input=(Input*)material->inputs->GetInput( MaterialsRheologyZEnum);5444 else if(enum_type==DamageDbarEnum){ 5445 input=(Input*)material->inputs->GetInput(DamageDEnum); 5460 5446 } 5461 5447 else{ … … 5478 5464 input=(Input*)material->inputs->GetInput(MaterialsRheologyBEnum); 5479 5465 } 5480 else if(enum_type== MaterialsRheologyZbarEnum){5481 input=(Input*)material->inputs->GetInput( MaterialsRheologyZEnum);5466 else if(enum_type==DamageDbarEnum){ 5467 input=(Input*)material->inputs->GetInput(DamageDEnum); 5482 5468 } 5483 5469 else{ … … 5525 5511 case MaticeEnum: 5526 5512 this->InputDepthAverageAtBase(MaterialsRheologyBEnum,MaterialsRheologyBbarEnum,MaterialsEnum); 5527 break; 5528 case MatdamageiceEnum: 5529 this->InputDepthAverageAtBase(MaterialsRheologyBEnum,MaterialsRheologyBbarEnum,MaterialsEnum); 5530 this->InputDepthAverageAtBase(MaterialsRheologyZEnum,MaterialsRheologyZbarEnum,MaterialsEnum); 5513 this->InputDepthAverageAtBase(DamageDEnum,DamageDbarEnum,MaterialsEnum); 5531 5514 break; 5532 5515 default: … … 5541 5524 /*Delete averaged fields*/ 5542 5525 this->material->inputs->DeleteInput(MaterialsRheologyBbarEnum); 5543 this->material->inputs->DeleteInput( MaterialsRheologyZbarEnum);5526 this->material->inputs->DeleteInput(DamageDbarEnum); 5544 5527 5545 5528 /*clean up and return*/ … … 6137 6120 /*If on water, skip grad (=0): */ 6138 6121 if(NoIceInElement())return; 6139 6122 6140 6123 /*First deal with ∂/∂alpha(KU-F)*/ 6141 6124 switch(control_type){ … … 6404 6387 /*Depth Average B*/ 6405 6388 this->InputDepthAverageAtBase(MaterialsRheologyBEnum,MaterialsRheologyBbarEnum,MaterialsEnum); 6389 this->InputDepthAverageAtBase(DamageDEnum,DamageDbarEnum,MaterialsEnum); 6406 6390 6407 6391 /*Collapse element to the base*/ … … 6412 6396 /*delete Average B*/ 6413 6397 this->material->inputs->DeleteInput(MaterialsRheologyBbarEnum); 6398 this->material->inputs->DeleteInput(DamageDbarEnum); 6414 6399 6415 6400 } /*}}}*/ … … 6420 6405 if (!IsOnBed()) return; 6421 6406 6422 /*Depth Average B */6407 /*Depth Average B and D*/ 6423 6408 this->InputDepthAverageAtBase(MaterialsRheologyBEnum,MaterialsRheologyBbarEnum,MaterialsEnum); 6409 this->InputDepthAverageAtBase(DamageDEnum,DamageDbarEnum,MaterialsEnum); 6424 6410 6425 6411 /*Collapse element to the base*/ … … 6430 6416 /*delete Average B*/ 6431 6417 this->material->inputs->DeleteInput(MaterialsRheologyBbarEnum); 6418 this->material->inputs->DeleteInput(DamageDbarEnum); 6432 6419 } /*}}}*/ 6433 6420 /*FUNCTION Penta::GradjBbarFS {{{*/ … … 6437 6424 if (!IsOnBed()) return; 6438 6425 6439 /*Depth Average B */6426 /*Depth Average B and D*/ 6440 6427 this->InputDepthAverageAtBase(MaterialsRheologyBEnum,MaterialsRheologyBbarEnum,MaterialsEnum); 6428 this->InputDepthAverageAtBase(DamageDEnum,DamageDbarEnum,MaterialsEnum); 6441 6429 6442 6430 /*Collapse element to the base*/ … … 6447 6435 /*delete Average B*/ 6448 6436 this->material->inputs->DeleteInput(MaterialsRheologyBbarEnum); 6437 this->material->inputs->DeleteInput(DamageDbarEnum); 6449 6438 } /*}}}*/ 6450 6439 /*FUNCTION Penta::InputControlUpdate{{{*/ … … 6466 6455 input=(Input*)material->inputs->GetInput(MaterialsRheologyBEnum); _assert_(input); 6467 6456 } 6468 else if(control_type[i]== MaterialsRheologyZbarEnum){6457 else if(control_type[i]==DamageDbarEnum){ 6469 6458 if (!IsOnBed()) goto cleanup_and_return; 6470 input=(Input*)material->inputs->GetInput( MaterialsRheologyZEnum); _assert_(input);6459 input=(Input*)material->inputs->GetInput(DamageDEnum); _assert_(input); 6471 6460 } 6472 6461 else{ … … 6483 6472 this->InputExtrude(MaterialsRheologyBEnum,MaterialsEnum); 6484 6473 } 6485 else if(control_type[i]== MaterialsRheologyZbarEnum){6486 this->InputExtrude( MaterialsRheologyZEnum,MaterialsEnum);6474 else if(control_type[i]==DamageDbarEnum){ 6475 this->InputExtrude(DamageDEnum,MaterialsEnum); 6487 6476 } 6488 6477 } … … 7695 7684 case MaticeEnum: 7696 7685 this->InputDepthAverageAtBase(MaterialsRheologyBEnum,MaterialsRheologyBbarEnum,MaterialsEnum); 7697 break; 7698 case MatdamageiceEnum: 7699 this->InputDepthAverageAtBase(MaterialsRheologyBEnum,MaterialsRheologyBbarEnum,MaterialsEnum); 7700 this->InputDepthAverageAtBase(MaterialsRheologyZEnum,MaterialsRheologyZbarEnum,MaterialsEnum); 7686 this->InputDepthAverageAtBase(DamageDEnum,DamageDbarEnum,MaterialsEnum); 7701 7687 break; 7702 7688 default: … … 7711 7697 /*Delete averaged fields*/ 7712 7698 this->material->inputs->DeleteInput(MaterialsRheologyBbarEnum); 7713 this->material->inputs->DeleteInput( MaterialsRheologyZbarEnum);7699 this->material->inputs->DeleteInput(DamageDbarEnum); 7714 7700 7715 7701 /*clean up and return*/ … … 9737 9723 case MaticeEnum: 9738 9724 this->InputDepthAverageAtBase(MaterialsRheologyBEnum,MaterialsRheologyBbarEnum,MaterialsEnum); 9739 break; 9740 case MatdamageiceEnum: 9741 this->InputDepthAverageAtBase(MaterialsRheologyBEnum,MaterialsRheologyBbarEnum,MaterialsEnum); 9742 this->InputDepthAverageAtBase(MaterialsRheologyZEnum,MaterialsRheologyZbarEnum,MaterialsEnum); 9725 this->InputDepthAverageAtBase(DamageDEnum,DamageDbarEnum,MaterialsEnum); 9743 9726 break; 9744 9727 default: … … 9753 9736 /*Delete averaged inputs*/ 9754 9737 this->material->inputs->DeleteInput(MaterialsRheologyBbarEnum); 9755 this->material->inputs->DeleteInput( MaterialsRheologyZbarEnum);9738 this->material->inputs->DeleteInput(DamageDbarEnum); 9756 9739 9757 9740 /*clean up and return*/ -
issm/trunk-jpl/src/c/classes/Elements/Tria.cpp
r16164 r16167 1561 1561 } 1562 1562 break; 1563 case MaterialsRheologyBbarEnum:1564 case DamageDbarEnum:1565 /*Material will take care of it*/break;1563 /*Material will take care of it*/ 1564 case MaterialsRheologyBbarEnum:break; 1565 case DamageDbarEnum: break; 1566 1566 default: 1567 1567 _error_("Control " << EnumToStringx(reCast<int,IssmDouble>(iomodel->Data(InversionControlParametersEnum)[i])) << " not implemented yet"); -
issm/trunk-jpl/src/c/classes/Inputs/ControlInput.cpp
r15737 r16167 61 61 /*FUNCTION ControlInput::Echo {{{*/ 62 62 void ControlInput::Echo(void){ 63 printf("I'm here\n"); 63 64 this->DeepEcho(); 64 65 } -
issm/trunk-jpl/src/c/classes/Materials/Matice.cpp
r16125 r16167 175 175 } 176 176 /*}}}*/ 177 /*FUNCTION Matice::GetD {{{*/ 178 IssmDouble Matice::GetD(){ 179 180 /*Output*/ 181 IssmDouble D; 182 183 inputs->GetInputAverage(&D,DamageDEnum); 184 return D; 185 } 186 /*}}}*/ 187 /*FUNCTION Matice::GetZ {{{*/ 188 IssmDouble Matice::GetZ(){ 189 190 /*Output*/ 191 IssmDouble D; 192 193 inputs->GetInputAverage(&D,DamageDEnum); 194 return 1/(1-D); 195 } 196 /*}}}*/ 197 /*FUNCTION Matice::GetZbar {{{*/ 198 IssmDouble Matice::GetZbar(){ 199 200 /*Output*/ 201 IssmDouble Dbar; 202 inputs->GetInputAverage(&Dbar,DamageDbarEnum); 203 return 1/(1-Dbar); 204 } 205 /*}}}*/ 206 /*FUNCTION Matice::GetDbar {{{*/ 207 IssmDouble Matice::GetDbar(){ 208 209 /*Output*/ 210 IssmDouble Dbar; 211 inputs->GetInputAverage(&Dbar,DamageDbarEnum); 212 return Dbar; 213 } 214 /*}}}*/ 177 215 /*FUNCTION Matice::GetVectorFromInputs{{{*/ 178 216 void Matice::GetVectorFromInputs(Vector<IssmDouble>* vector,int input_enum){ … … 210 248 void Matice::GetViscosity2d(IssmDouble* pviscosity, IssmDouble* epsilon){ 211 249 /*From a string tensor and a material object, return viscosity, using Glen's flow law. 212 B250 (1-D) B 213 251 viscosity= ------------------------------------------------------------------- 214 252 2[ exx^2+eyy^2+exx*eyy+exy^2+exz^2+eyz^2 ]^[(n-1)/2n] … … 229 267 /*Intermediary: */ 230 268 IssmDouble A,e; 231 IssmDouble B, n;269 IssmDouble B,D,n; 232 270 233 271 /*Get B and n*/ 234 272 B=GetBbar(); 235 273 n=GetN(); 274 D=GetDbar(); 236 275 237 276 if (n==1){ 238 277 /*Viscous behaviour! viscosity=B: */ 239 viscosity= B/2;278 viscosity=(1-D)*B/2; 240 279 } 241 280 else{ … … 257 296 else{ 258 297 e=(n-1)/(2*n); 259 viscosity= B/(2*pow(A,e));298 viscosity=(1-D)*B/(2*pow(A,e)); 260 299 } 261 300 } … … 266 305 _assert_(B>0); 267 306 _assert_(n>0); 307 _assert_(D>=0 && D<1); 268 308 269 309 /*Return: */ … … 276 316 /*Return viscosity accounting for steady state power law creep [Thomas and SSA, 1982]: 277 317 * 278 * B318 * (1-D)*B 279 319 * viscosity3d= ------------------------------------------------------------------- 280 320 * 2[ exx^2+eyy^2+exx*eyy+exy^2+exz^2+eyz^2 ]^[(n-1)/2n] … … 295 335 /*Intermediaries: */ 296 336 IssmDouble A,e; 297 IssmDouble B, n;337 IssmDouble B,D,n; 298 338 299 339 /*Get B and n*/ 300 340 B=GetB(); 341 D=GetD(); 301 342 n=GetN(); 302 343 303 344 if (n==1){ 304 345 /*Viscous behaviour! viscosity3d=B: */ 305 viscosity3d= B/2;346 viscosity3d=(1-D)*B/2; 306 347 } 307 348 else{ … … 328 369 e=(n-1)/2/n; 329 370 330 viscosity3d= B/(2*pow(A,e));371 viscosity3d=(1-D)*B/(2*pow(A,e)); 331 372 } 332 373 } … … 337 378 _assert_(B>0); 338 379 _assert_(n>0); 380 _assert_(D>=0 && D<1); 339 381 340 382 /*Assign output pointers:*/ … … 346 388 /*Return viscosity accounting for steady state power law creep [Thomas and SSA, 1982]: 347 389 * 348 * B390 * (1-D)*B 349 391 * viscosity3d= ------------------------------------------------------------------- 350 392 * 2[ exx^2+eyy^2+exx*eyy+exy^2+exz^2+eyz^2 ]^[(n-1)/2n] … … 365 407 /*Intermediaries: */ 366 408 IssmDouble A,e; 367 IssmDouble B, n;409 IssmDouble B,D,n; 368 410 IssmDouble eps0; 369 411 … … 371 413 eps0=pow(10.,-27); 372 414 B=GetB(); 415 D=GetD(); 373 416 n=GetN(); 374 417 375 418 if (n==1){ 376 419 /*Viscous behaviour! viscosity3d=B: */ 377 viscosity3d= B/2;420 viscosity3d=(1-D)*B/2; 378 421 } 379 422 else{ … … 400 443 else{ 401 444 e=(n-1)/2/n; 402 viscosity3d= B/(2*pow(A,e));445 viscosity3d=(1-D)*B/(2*pow(A,e)); 403 446 } 404 447 } … … 409 452 _assert_(B>0); 410 453 _assert_(n>0); 454 _assert_(D>=0 && D<1); 411 455 412 456 /*Assign output pointers:*/ … … 418 462 /*Return viscosity accounting for steady state power law creep [Thomas and SSA, 1982]: 419 463 * 420 * 1464 * (1-D) 421 465 * viscosity= ------------------------------------------------------------------- 422 466 * 2[ exx^2+eyy^2+exx*eyy+exy^2+exz^2+eyz^2 ]^[(n-1)/2n] … … 434 478 /*Intermediary value A and exponent e: */ 435 479 IssmDouble A,e; 436 IssmDouble B,n;437 438 /*Get Band n*/439 B=GetBbar();480 IssmDouble D,n; 481 482 /*Get D and n*/ 483 D=GetDbar(); 440 484 n=GetN(); 441 485 … … 445 489 exy=*(epsilon+2); 446 490 491 /*Build viscosity: mu2=(1-D)/(2*A^e) */ 492 A=pow(exx,2)+pow(eyy,2)+pow(exy,2)+exx*eyy; 493 if(A==0){ 494 /*Maximum viscosity_complement for 0 shear areas: */ 495 viscosity_complement=2.25*pow(10.,17); 496 } 497 else{ 498 e=(n-1)/(2*n); 499 500 viscosity_complement=(1-D)/(2*pow(A,e)); 501 } 502 } 503 else{ 504 viscosity_complement=4.5*pow(10.,17); 505 } 506 507 /*Checks in debugging mode*/ 508 _assert_(D>=0 && D<1); 509 _assert_(n>0); 510 _assert_(viscosity_complement>0); 511 512 /*Return: */ 513 *pviscosity_complement=viscosity_complement; 514 } 515 /*}}}*/ 516 /*FUNCTION Matice::GetViscosityDComplement {{{*/ 517 void Matice::GetViscosityDComplement(IssmDouble* pviscosity_complement, IssmDouble* epsilon){ 518 /*Return viscosity derivative for control method d(mu)/dD: 519 * 520 * B 521 * dviscosity= - ------------------------------------------------------------------- 522 * 2[ exx^2+eyy^2+exx*eyy+exy^2+exz^2+eyz^2 ]^[(n-1)/2n] 523 * 524 * If epsilon is NULL, it means this is the first time Gradjb is being run, and we 525 * return mu20, initial viscosity. 526 */ 527 528 /*output: */ 529 IssmDouble viscosity_complement; 530 531 /*input strain rate: */ 532 IssmDouble exx,eyy,exy; 533 534 /*Intermediary value A and exponent e: */ 535 IssmDouble A,e; 536 IssmDouble B,n; 537 538 /*Get B and n*/ 539 B=GetBbar(); 540 n=GetN(); 541 542 if(epsilon){ 543 exx=*(epsilon+0); 544 eyy=*(epsilon+1); 545 exy=*(epsilon+2); 546 447 547 /*Build viscosity: mu2=B/(2*A^e) */ 448 548 A=pow(exx,2)+pow(eyy,2)+pow(exy,2)+exx*eyy; 449 549 if(A==0){ 450 550 /*Maximum viscosity_complement for 0 shear areas: */ 451 viscosity_complement= 2.25*pow(10.,17);551 viscosity_complement=- 2.25*pow(10.,17); 452 552 } 453 553 else{ 454 554 e=(n-1)/(2*n); 455 555 456 viscosity_complement= 1/(2*pow(A,e));556 viscosity_complement=- B/(2*pow(A,e)); 457 557 } 458 558 } 459 559 else{ 460 viscosity_complement= 4.5*pow(10.,17);560 viscosity_complement=- 4.5*pow(10.,17); 461 561 } 462 562 … … 464 564 _assert_(B>0); 465 565 _assert_(n>0); 466 _assert_(viscosity_complement >0);566 _assert_(viscosity_complement<0); 467 567 468 568 /*Return: */ … … 729 829 } 730 830 831 /*Get D:*/ 832 if (iomodel->Data(DamageDEnum)) { 833 for(i=0;i<num_vertices;i++) nodeinputs[i]=iomodel->Data(DamageDEnum)[iomodel->elements[num_vertices*index+i]-1]; 834 this->inputs->AddInput(new TriaInput(DamageDbarEnum,nodeinputs,P1Enum)); 835 } 836 731 837 /*Control Inputs*/ 732 838 #ifdef _HAVE_CONTROL_ … … 743 849 } 744 850 break; 851 case DamageDbarEnum: 852 if (iomodel->Data(DamageDEnum)){ 853 _assert_(iomodel->Data(DamageDEnum));_assert_(iomodel->Data(InversionMinParametersEnum)); _assert_(iomodel->Data(InversionMaxParametersEnum)); 854 for(j=0;j<num_vertices;j++)nodeinputs[j]=iomodel->Data(DamageDEnum)[iomodel->elements[num_vertices*index+j]-1]; 855 for(j=0;j<num_vertices;j++)cmmininputs[j]=iomodel->Data(InversionMinParametersEnum)[(iomodel->elements[num_vertices*index+j]-1)*num_control_type+i]; 856 for(j=0;j<num_vertices;j++)cmmaxinputs[j]=iomodel->Data(InversionMaxParametersEnum)[(iomodel->elements[num_vertices*index+j]-1)*num_control_type+i]; 857 this->inputs->AddInput(new ControlInput(DamageDbarEnum,TriaInputEnum,nodeinputs,cmmininputs,cmmaxinputs,i+1)); 858 } 859 break; 745 860 } 746 861 } … … 770 885 this->inputs->AddInput(new PentaInput(MaterialsRheologyNEnum,nodeinputs,P1Enum)); 771 886 } 772 887 888 /*Get D*/ 889 if (iomodel->Data(DamageDEnum)) { 890 for(i=0;i<num_vertices;i++) nodeinputs[i]=iomodel->Data(DamageDEnum)[iomodel->elements[num_vertices*index+i]-1]; 891 this->inputs->AddInput(new PentaInput(DamageDEnum,nodeinputs,P1Enum)); 892 } 893 773 894 /*Control Inputs*/ 774 895 #ifdef _HAVE_CONTROL_ … … 785 906 } 786 907 break; 908 case DamageDbarEnum: 909 if (iomodel->Data(DamageDEnum)){ 910 _assert_(iomodel->Data(DamageDEnum));_assert_(iomodel->Data(InversionMinParametersEnum)); _assert_(iomodel->Data(InversionMaxParametersEnum)); 911 for(j=0;j<num_vertices;j++)nodeinputs[j]=iomodel->Data(DamageDEnum)[iomodel->elements[num_vertices*index+j]-1]; 912 for(j=0;j<num_vertices;j++)cmmininputs[j]=iomodel->Data(InversionMinParametersEnum)[(iomodel->elements[num_vertices*index+j]-1)*num_control_type+i]; 913 for(j=0;j<num_vertices;j++)cmmaxinputs[j]=iomodel->Data(InversionMaxParametersEnum)[(iomodel->elements[num_vertices*index+j]-1)*num_control_type+i]; 914 this->inputs->AddInput(new ControlInput(DamageDEnum,PentaInputEnum,nodeinputs,cmmininputs,cmmaxinputs,i+1)); 915 } 916 break; 917 787 918 } 788 919 } … … 804 935 name==MaterialsRheologyBbarEnum || 805 936 name==MaterialsRheologyNEnum || 806 name==QmuMaterialsRheologyBEnum 937 name==QmuMaterialsRheologyBEnum || 938 name==DamageDEnum || 939 name==DamageDbarEnum 940 807 941 ){ 808 942 return true; -
issm/trunk-jpl/src/c/classes/Materials/Matice.h
r16146 r16167 57 57 void GetViscosity3dFS(IssmDouble* pviscosity3d, IssmDouble* epsilon); 58 58 void GetViscosityComplement(IssmDouble* pviscosity_complement, IssmDouble* pepsilon); 59 void GetViscosityDComplement(IssmDouble*, IssmDouble*) {_error_("not supported");};59 void GetViscosityDComplement(IssmDouble*, IssmDouble*); 60 60 void GetViscosityDerivativeEpsSquare(IssmDouble* pmu_prime, IssmDouble* pepsilon); 61 61 void GetViscosityDerivativeEpsSquareFS(IssmDouble* pmu_prime, IssmDouble* pepsilon); … … 64 64 IssmDouble GetB(); 65 65 IssmDouble GetBbar(); 66 IssmDouble GetZ() {_error_("not supported");};67 IssmDouble GetD() {_error_("not supported");};68 IssmDouble GetZbar() {_error_("not supported");};69 IssmDouble GetDbar() {_error_("not supported");};66 IssmDouble GetZ(); 67 IssmDouble GetD(); 68 IssmDouble GetZbar(); 69 IssmDouble GetDbar(); 70 70 IssmDouble GetN(); 71 71 bool IsInput(int name); -
issm/trunk-jpl/src/c/classes/classes.h
r15650 r16167 77 77 #include "./Materials/Material.h" 78 78 #include "./Materials/Matice.h" 79 #include "./Materials/Matdamageice.h"80 79 #include "./Materials/Matpar.h" 81 80 -
issm/trunk-jpl/src/c/modules/Gradjx/Gradjx.cpp
r14999 r16167 34 34 35 35 for(j=0;j<elements->Size();j++){ 36 36 37 Element* element=(Element*)elements->GetObjectByOffset(j); 37 38 element->Gradj(gradient_list[i],control_type[i],i); -
issm/trunk-jpl/src/c/modules/ModelProcessorx/CreateElementsVerticesAndMaterials.cpp
r16162 r16167 54 54 switch(materials_type){ 55 55 case MaticeEnum: 56 iomodel->FetchData( 2,MaterialsRheologyBEnum,MaterialsRheologyNEnum);56 iomodel->FetchData(3,MaterialsRheologyBEnum,MaterialsRheologyNEnum,DamageDEnum); 57 57 for (i=0;i<iomodel->numberofelements;i++) if(iomodel->my_elements[i]) materials->AddObject(new Matice(i+1,i,iomodel)); 58 58 if(dakota_analysis){ … … 62 62 #endif 63 63 } 64 break;65 case MatdamageiceEnum:66 iomodel->FetchData(3,MaterialsRheologyBEnum,MaterialsRheologyNEnum,DamageDEnum);67 for (i=0;i<iomodel->numberofelements;i++) if(iomodel->my_elements[i]) materials->AddObject(new Matdamageice(i+1,i,iomodel));68 64 break; 69 65 default: -
issm/trunk-jpl/src/c/modules/ModelProcessorx/Stressbalance/UpdateElementsStressbalance.cpp
r16162 r16167 101 101 iomodel->FetchDataToInput(elements,LoadingforceXEnum); 102 102 iomodel->FetchDataToInput(elements,LoadingforceYEnum); 103 if(materials_type==MatdamageiceEnum){ 104 iomodel->FetchDataToInput(elements,DamageDEnum); 105 } 103 iomodel->FetchDataToInput(elements,DamageDEnum); 104 106 105 if(iomodel->dim==3){ 107 106 iomodel->FetchDataToInput(elements,MeshElementonbedEnum); -
issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h
r16162 r16167 152 152 MaterialsRheologyLawEnum, 153 153 MaterialsRheologyNEnum, 154 MaterialsRheologyZEnum,155 MaterialsRheologyZbarEnum,156 154 DamageDEnum, 157 155 DamageDbarEnum, … … 373 371 SSA3dIceFrontEnum, 374 372 MaticeEnum, 375 MatdamageiceEnum,376 373 MatparEnum, 377 374 NodeEnum, -
issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp
r16162 r16167 160 160 case MaterialsRheologyLawEnum : return "MaterialsRheologyLaw"; 161 161 case MaterialsRheologyNEnum : return "MaterialsRheologyN"; 162 case MaterialsRheologyZEnum : return "MaterialsRheologyZ";163 case MaterialsRheologyZbarEnum : return "MaterialsRheologyZbar";164 162 case DamageDEnum : return "DamageD"; 165 163 case DamageDbarEnum : return "DamageDbar"; … … 373 371 case SSA3dIceFrontEnum : return "SSA3dIceFront"; 374 372 case MaticeEnum : return "Matice"; 375 case MatdamageiceEnum : return "Matdamageice";376 373 case MatparEnum : return "Matpar"; 377 374 case NodeEnum : return "Node"; -
issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp
r16162 r16167 163 163 else if (strcmp(name,"MaterialsRheologyLaw")==0) return MaterialsRheologyLawEnum; 164 164 else if (strcmp(name,"MaterialsRheologyN")==0) return MaterialsRheologyNEnum; 165 else if (strcmp(name,"MaterialsRheologyZ")==0) return MaterialsRheologyZEnum;166 else if (strcmp(name,"MaterialsRheologyZbar")==0) return MaterialsRheologyZbarEnum;167 165 else if (strcmp(name,"DamageD")==0) return DamageDEnum; 168 166 else if (strcmp(name,"DamageDbar")==0) return DamageDbarEnum; … … 260 258 else if (strcmp(name,"ThermalMaxiter")==0) return ThermalMaxiterEnum; 261 259 else if (strcmp(name,"ThermalPenaltyFactor")==0) return ThermalPenaltyFactorEnum; 260 else if (strcmp(name,"ThermalPenaltyLock")==0) return ThermalPenaltyLockEnum; 261 else if (strcmp(name,"ThermalPenaltyThreshold")==0) return ThermalPenaltyThresholdEnum; 262 262 else stage=3; 263 263 } 264 264 if(stage==3){ 265 if (strcmp(name,"ThermalPenaltyLock")==0) return ThermalPenaltyLockEnum; 266 else if (strcmp(name,"ThermalPenaltyThreshold")==0) return ThermalPenaltyThresholdEnum; 267 else if (strcmp(name,"ThermalSpctemperature")==0) return ThermalSpctemperatureEnum; 265 if (strcmp(name,"ThermalSpctemperature")==0) return ThermalSpctemperatureEnum; 268 266 else if (strcmp(name,"ThermalStabilization")==0) return ThermalStabilizationEnum; 269 267 else if (strcmp(name,"GiaMantleViscosity")==0) return GiaMantleViscosityEnum; … … 379 377 else if (strcmp(name,"SSA3dIceFront")==0) return SSA3dIceFrontEnum; 380 378 else if (strcmp(name,"Matice")==0) return MaticeEnum; 381 else if (strcmp(name,"Matdamageice")==0) return MatdamageiceEnum;382 379 else if (strcmp(name,"Matpar")==0) return MatparEnum; 383 380 else if (strcmp(name,"Node")==0) return NodeEnum; 384 381 else if (strcmp(name,"Numericalflux")==0) return NumericalfluxEnum; 382 else if (strcmp(name,"NumericalfluxType")==0) return NumericalfluxTypeEnum; 383 else if (strcmp(name,"Param")==0) return ParamEnum; 384 else if (strcmp(name,"L1L2IceFront")==0) return L1L2IceFrontEnum; 385 385 else stage=4; 386 386 } 387 387 if(stage==4){ 388 if (strcmp(name,"NumericalfluxType")==0) return NumericalfluxTypeEnum; 389 else if (strcmp(name,"Param")==0) return ParamEnum; 390 else if (strcmp(name,"L1L2IceFront")==0) return L1L2IceFrontEnum; 391 else if (strcmp(name,"HOIceFront")==0) return HOIceFrontEnum; 388 if (strcmp(name,"HOIceFront")==0) return HOIceFrontEnum; 392 389 else if (strcmp(name,"Pengrid")==0) return PengridEnum; 393 390 else if (strcmp(name,"Penpair")==0) return PenpairEnum; … … 506 503 else if (strcmp(name,"StressTensorxz")==0) return StressTensorxzEnum; 507 504 else if (strcmp(name,"StressTensoryy")==0) return StressTensoryyEnum; 505 else if (strcmp(name,"StressTensoryz")==0) return StressTensoryzEnum; 506 else if (strcmp(name,"StressTensorzz")==0) return StressTensorzzEnum; 507 else if (strcmp(name,"GiaCrossSectionShape")==0) return GiaCrossSectionShapeEnum; 508 508 else stage=5; 509 509 } 510 510 if(stage==5){ 511 if (strcmp(name,"StressTensoryz")==0) return StressTensoryzEnum; 512 else if (strcmp(name,"StressTensorzz")==0) return StressTensorzzEnum; 513 else if (strcmp(name,"GiaCrossSectionShape")==0) return GiaCrossSectionShapeEnum; 514 else if (strcmp(name,"GiadWdt")==0) return GiadWdtEnum; 511 if (strcmp(name,"GiadWdt")==0) return GiadWdtEnum; 515 512 else if (strcmp(name,"GiaW")==0) return GiaWEnum; 516 513 else if (strcmp(name,"P0")==0) return P0Enum; -
issm/trunk-jpl/src/m/classes/damage.m
r16162 r16167 56 56 function md = checkconsistency(obj,md,solution,analyses) % {{{ 57 57 58 md = checkfield(md,'damage.D','>=0',0,'size',[md.mesh.numberofvertices 1]); 58 59 if obj.isdamage, 59 md = checkfield(md,'damage.D','>=0',0,'size',[md.mesh.numberofvertices 1]);60 60 md = checkfield(md,'damage.law','values',{'undamaged','pralong'}); 61 61 end … … 86 86 87 87 WriteData(fid,'object',obj,'class','damage','fieldname','isdamage','format','DoubleMat','mattype',1); 88 WriteData(fid,'object',obj,'class','damage','fieldname','D','format','DoubleMat','mattype',1); 88 89 if obj.isdamage, 89 WriteData(fid,'object',obj,'class','damage','fieldname','D','format','DoubleMat','mattype',1);90 90 WriteData(fid,'object',obj,'class','damage','fieldname','law','format','String'); 91 91 end -
issm/trunk-jpl/src/m/classes/inversion.m
r16148 r16167 116 116 md = checkfield(md,'inversion.incomplete_adjoint','values',[0 1]); 117 117 md = checkfield(md,'inversion.control_parameters','cell',1,'values',... 118 {'BalancethicknessThickeningRate' 'FrictionCoefficient' 'MaterialsRheologyBbar' ' MaterialsDamageDbar' 'Vx' 'Vy' 'Thickness'});118 {'BalancethicknessThickeningRate' 'FrictionCoefficient' 'MaterialsRheologyBbar' 'DamageDbar' 'Vx' 'Vy' 'Thickness'}); 119 119 md = checkfield(md,'inversion.nsteps','numel',1,'>=',1); 120 120 md = checkfield(md,'inversion.maxiter_per_step','size',[md.inversion.nsteps 1],'>=',0); -
issm/trunk-jpl/src/m/classes/inversion.py
r16148 r16167 124 124 md = checkfield(md,'inversion.tao','values',[0,1]) 125 125 md = checkfield(md,'inversion.incomplete_adjoint','values',[0,1]) 126 md = checkfield(md,'inversion.control_parameters','cell',1,'values',['BalancethicknessThickeningRate','FrictionCoefficient','MaterialsRheologyBbar',' MaterialsDamageDbar','Vx','Vy'])126 md = checkfield(md,'inversion.control_parameters','cell',1,'values',['BalancethicknessThickeningRate','FrictionCoefficient','MaterialsRheologyBbar','DamageDbar','Vx','Vy']) 127 127 md = checkfield(md,'inversion.nsteps','numel',[1],'>=',1) 128 128 md = checkfield(md,'inversion.maxiter_per_step','size',[md.inversion.nsteps],'>=',0) -
issm/trunk-jpl/src/m/enum/EnumDefinitions.py
r16162 r16167 152 152 def MaterialsRheologyLawEnum(): return StringToEnum("MaterialsRheologyLaw")[0] 153 153 def MaterialsRheologyNEnum(): return StringToEnum("MaterialsRheologyN")[0] 154 def MaterialsRheologyZEnum(): return StringToEnum("MaterialsRheologyZ")[0]155 def MaterialsRheologyZbarEnum(): return StringToEnum("MaterialsRheologyZbar")[0]156 154 def DamageDEnum(): return StringToEnum("DamageD")[0] 157 155 def DamageDbarEnum(): return StringToEnum("DamageDbar")[0] … … 365 363 def SSA3dIceFrontEnum(): return StringToEnum("SSA3dIceFront")[0] 366 364 def MaticeEnum(): return StringToEnum("Matice")[0] 367 def MatdamageiceEnum(): return StringToEnum("Matdamageice")[0]368 365 def MatparEnum(): return StringToEnum("Matpar")[0] 369 366 def NodeEnum(): return StringToEnum("Node")[0] -
issm/trunk-jpl/test/NightlyRun/test213.m
r15771 r16167 18 18 md.inversion.vx_obs=md.initialization.vx; md.inversion.vy_obs=md.initialization.vy; 19 19 20 md.cluster=generic('name',oshostname(),'np',3); 20 md.verbose.control=true; 21 md.verbose.solution=true; 22 23 md.cluster=generic('name',oshostname(),'np',1); 21 24 md=solve(md,StressbalanceSolutionEnum()); 22 25 -
issm/trunk-jpl/test/NightlyRun/test270.m
r16161 r16167 2 2 md=setmask(md,'all',''); 3 3 md=parameterize(md,'../Par/SquareShelf.par'); 4 md.materials=matdamageice();5 md.materials.rheology_B=paterson(md.initialization.temperature);6 md.materials.rheology_n=3.*ones(md.mesh.numberofelements,1);7 md.damage.isdamage=1;8 4 md.damage.D=0.5*ones(md.mesh.numberofvertices,1); 9 5 md=setflowequation(md,'SSA','all'); -
issm/trunk-jpl/test/NightlyRun/test270.py
r16154 r16167 4 4 from setmask import * 5 5 from parameterize import * 6 from matdamageice import *7 6 from paterson import * 8 7 from setflowequation import * … … 14 13 md=setmask(md,'all','') 15 14 md=parameterize(md,'../Par/SquareShelf.py') 16 md.materials=matdamageice() 17 md.materials.rheology_B=paterson(md.initialization.temperature) 18 md.materials.rheology_n=3.*numpy.ones((md.mesh.numberofelements,1)) 19 md.materials.damage_D=0.5*numpy.ones((md.mesh.numberofvertices,1)) 15 md.damage.D=0.5*numpy.ones((md.mesh.numberofvertices,1)) 20 16 md=setflowequation(md,'SSA','all') 21 17 md.cluster=generic('name',oshostname(),'np',3) -
issm/trunk-jpl/test/NightlyRun/test272.m
r16161 r16167 2 2 md=setmask(md,'all',''); 3 3 md=parameterize(md,'../Par/SquareShelf.par'); 4 md.materials=matdamageice();5 md.materials.rheology_B=paterson(md.initialization.temperature);6 md.materials.rheology_n=3.*ones(md.mesh.numberofelements,1);7 md.damage.isdamage=1;8 4 md.damage.D=0.5*ones(md.mesh.numberofvertices,1); 9 5 md=setflowequation(md,'SSA','all'); … … 12 8 %control parameters 13 9 md.inversion.iscontrol=1; 14 md.inversion.control_parameters={' MaterialsDamageDbar'};10 md.inversion.control_parameters={'DamageDbar'}; 15 11 md.inversion.min_parameters=zeros(md.mesh.numberofvertices,1); 16 12 md.inversion.max_parameters=(1-10^-13)*ones(md.mesh.numberofvertices,1); … … 28 24 29 25 %Fields and tolerances to track changes 30 field_names ={'Gradient','Misfits',' MaterialsDamageDbar','Pressure','Vel','Vx','Vy'};26 field_names ={'Gradient','Misfits','DamageDbar','Pressure','Vel','Vx','Vy'}; 31 27 field_tolerances={1e-12,1e-12,1e-12,1e-12,1e-12,1e-12,1e-12,1e-12,1e-12,1e-12}; 32 28 field_values={... 33 29 (md.results.StressbalanceSolution.Gradient1),... 34 30 (md.results.StressbalanceSolution.J),... 35 (md.results.StressbalanceSolution. MaterialsDamageDbar),...31 (md.results.StressbalanceSolution.DamageDbar),... 36 32 (md.results.StressbalanceSolution.Pressure),... 37 33 (md.results.StressbalanceSolution.Vel),... -
issm/trunk-jpl/test/NightlyRun/test272.py
r16154 r16167 4 4 from setmask import * 5 5 from parameterize import * 6 from matdamageice import *7 6 from paterson import * 8 7 from setflowequation import * … … 14 13 md=setmask(md,'all','') 15 14 md=parameterize(md,'../Par/SquareShelf.py') 16 md.materials=matdamageice() 17 md.materials.rheology_B=paterson(md.initialization.temperature) 18 md.materials.rheology_n=3.*numpy.ones((md.mesh.numberofelements,1)) 19 md.materials.damage_D=0.5*numpy.ones((md.mesh.numberofvertices,1)) 15 md.damage.D=0.5*numpy.ones((md.mesh.numberofvertices,1)) 20 16 md=setflowequation(md,'SSA','all') 21 17 22 18 #control parameters 23 19 md.inversion.iscontrol=1 24 md.inversion.control_parameters=[' MaterialsDamageDbar']20 md.inversion.control_parameters=['DamageDbar'] 25 21 md.inversion.min_parameters=10**-13*numpy.ones((md.mesh.numberofvertices,1)) 26 22 md.inversion.max_parameters=numpy.ones((md.mesh.numberofvertices,1)) … … 38 34 39 35 #Fields and tolerances to track changes 40 field_names =['Gradient','Misfits',' MaterialsRheologyDbar','Pressure','Vel','Vx','Vy']36 field_names =['Gradient','Misfits','DamageDbar','Pressure','Vel','Vx','Vy'] 41 37 field_tolerances=[1e-12,1e-12,1e-12,1e-12,1e-12,1e-12,1e-12,1e-12,1e-12,1e-12] 42 38 field_values=[\ 43 39 md.results.StressbalanceSolution.Gradient1,\ 44 40 md.results.StressbalanceSolution.J,\ 45 md.results.StressbalanceSolution. MaterialsDamageDbar,\41 md.results.StressbalanceSolution.DamageDbar,\ 46 42 md.results.StressbalanceSolution.Pressure,\ 47 43 md.results.StressbalanceSolution.Vel,\ -
issm/trunk-jpl/test/NightlyRun/test274.m
r16161 r16167 3 3 md=setmask(md,'all',''); 4 4 md=parameterize(md,'../Par/SquareShelf2.par'); 5 md.materials=matdamageice();6 md.materials.rheology_B=paterson(md.initialization.temperature);7 md.materials.rheology_n=3.*ones(md.mesh.numberofelements,1);8 md.damage.isdamage=1;9 5 md.damage.D=0.5*ones(md.mesh.numberofvertices,1); 10 6 md=setflowequation(md,'SSA','all'); -
issm/trunk-jpl/test/NightlyRun/test274.py
r16154 r16167 5 5 from setmask import * 6 6 from parameterize import * 7 from matdamageice import *8 7 from paterson import * 9 8 from setflowequation import * … … 16 15 md=setmask(md,'all','') 17 16 md=parameterize(md,'../Par/SquareShelf2.py') 18 md.materials=matdamageice() 19 md.materials.rheology_B=paterson(md.initialization.temperature) 20 md.materials.rheology_n=3.*numpy.ones((md.mesh.numberofelements,1)) 21 md.materials.damage_D=0.5*numpy.ones((md.mesh.numberofvertices,1)) 17 md.damage.D=0.5*numpy.ones((md.mesh.numberofvertices,1)) 22 18 md=setflowequation(md,'SSA','all') 23 19 -
issm/trunk-jpl/test/Par/79North.par
r15988 r16167 20 20 md.materials.rheology_B=paterson(md.initialization.temperature); 21 21 md.materials.rheology_n=3*ones(md.mesh.numberofelements,1); 22 23 %Damage 24 md.damage.D=zeros(md.mesh.numberofvertices,1); 22 25 23 26 %Friction -
issm/trunk-jpl/test/Par/79North.py
r15988 r16167 33 33 md.initialization.temperature=md.initialization.temperature 34 34 35 #Damage 36 md.damage.D=zeros((md.mesh.numberofvertices,1)) 37 35 38 #Friction 36 39 md.friction.coefficient=50.*ones((md.mesh.numberofvertices,1)) -
issm/trunk-jpl/test/Par/GiaBenchmarksAB.par
r15988 r16167 44 44 md.materials.rheology_n=3.*ones(md.mesh.numberofelements,1); 45 45 46 %Damage 47 md.damage.D=zeros(md.mesh.numberofvertices,1); 48 46 49 %Friction 47 50 md.friction.coefficient=20.*ones(md.mesh.numberofvertices,1); -
issm/trunk-jpl/test/Par/GiaBenchmarksCD.par
r15988 r16167 43 43 md.materials.rheology_n=3.*ones(md.mesh.numberofelements,1); 44 44 45 %Damage 46 md.damage.D=zeros(md.mesh.numberofvertices,1); 47 45 48 %Friction 46 49 md.friction.coefficient=20.*ones(md.mesh.numberofvertices,1); -
issm/trunk-jpl/test/Par/ISMIPA.par
r15988 r16167 16 16 md.materials.rheology_n=3.*ones(md.mesh.numberofelements,1); 17 17 18 %Damage 19 md.damage.D=zeros(md.mesh.numberofvertices,1); 20 18 21 disp(' boundary conditions for stressbalance model'); 19 22 %Create node on boundary first (because we cannot use mesh) -
issm/trunk-jpl/test/Par/ISMIPA.py
r15988 r16167 19 19 md.materials.rheology_n=3.*numpy.ones((md.mesh.numberofelements,1)) 20 20 21 #Damage 22 md.damage.D=zeros((md.mesh.numberofvertices,1)) 23 21 24 print " boundary conditions for stressbalance model" 22 25 #Create node on boundary first (because we cannot use mesh) -
issm/trunk-jpl/test/Par/ISMIPB.par
r15988 r16167 16 16 md.materials.rheology_n=3.*ones(md.mesh.numberofelements,1); 17 17 18 %Damage 19 md.damage.D=zeros(md.mesh.numberofvertices,1); 20 18 21 disp(' boundary conditions for stressbalance model'); 19 22 %Create node on boundary first (because we cannot use mesh) -
issm/trunk-jpl/test/Par/ISMIPB.py
r15988 r16167 19 19 md.materials.rheology_n=3.*numpy.ones((md.mesh.numberofelements,1)) 20 20 21 #Damage 22 md.damage.D=zeros((md.mesh.numberofvertices,1)) 23 21 24 print " boundary conditions for stressbalance model" 22 25 #Create node on boundary first (because we cannot use mesh) -
issm/trunk-jpl/test/Par/ISMIPC.par
r15988 r16167 17 17 md.materials.rheology_n=3.*ones(md.mesh.numberofelements,1); 18 18 19 %Damage 20 md.damage.D=zeros(md.mesh.numberofvertices,1); 21 19 22 disp(' boundary conditions for stressbalance model:'); 20 23 %Create node on boundary first (because we can not use mesh) -
issm/trunk-jpl/test/Par/ISMIPC.py
r15988 r16167 20 20 md.materials.rheology_n=3.*numpy.ones((md.mesh.numberofelements,1)) 21 21 22 #Damage 23 md.damage.D=zeros((md.mesh.numberofvertices,1)) 24 22 25 print " boundary conditions for stressbalance model:" 23 26 #Create node on boundary first (because we can not use mesh) -
issm/trunk-jpl/test/Par/ISMIPD.par
r15988 r16167 16 16 md.materials.rheology_n=3.*ones(md.mesh.numberofelements,1); 17 17 18 %Damage 19 md.damage.D=zeros(md.mesh.numberofvertices,1); 20 18 21 disp(' boundary conditions for stressbalance model:'); 19 22 %Create node on boundary first (because we can not use mesh) -
issm/trunk-jpl/test/Par/ISMIPD.py
r15988 r16167 19 19 md.materials.rheology_n=3.*numpy.ones((md.mesh.numberofelements,1)) 20 20 21 #Damage 22 md.damage.D=zeros((md.mesh.numberofvertices,1)) 23 21 24 print " boundary conditions for stressbalance model:" 22 25 #Create node on boundary first (because we can not use mesh) -
issm/trunk-jpl/test/Par/ISMIPE.par
r15771 r16167 26 26 md.materials.rheology_n=3.*ones(md.mesh.numberofelements,1); 27 27 28 %Damage 29 md.damage.D=zeros(md.mesh.numberofvertices,1); 30 28 31 disp(' boundary conditions for stressbalance model:'); 29 32 %Create node on boundary first (because we can not use mesh) -
issm/trunk-jpl/test/Par/ISMIPE.py
r15771 r16167 31 31 md.materials.rheology_n=3.*numpy.ones((md.mesh.numberofelements,1)) 32 32 33 #Damage 34 md.damage.D=zeros((md.mesh.numberofvertices,1)) 35 33 36 print " boundary conditions for stressbalance model:" 34 37 #Create node on boundary first (because we can not use mesh) -
issm/trunk-jpl/test/Par/ISMIPF.par
r15771 r16167 17 17 md.materials.rheology_n=1.*ones(md.mesh.numberofelements,1); 18 18 md.materials.rheology_law='None'; 19 20 %Damage 21 md.damage.D=zeros(md.mesh.numberofvertices,1); 19 22 20 23 disp(' boundary conditions for stressbalance model'); -
issm/trunk-jpl/test/Par/ISMIPF.py
r15771 r16167 20 20 md.materials.rheology_n=1.*numpy.ones((md.mesh.numberofelements,1)) 21 21 md.materials.rheology_law='None' 22 23 #Damage 24 md.damage.D=zeros((md.mesh.numberofvertices,1)) 22 25 23 26 print " boundary conditions for stressbalance model" -
issm/trunk-jpl/test/Par/Pig.par
r15988 r16167 26 26 md.initialization.temperature=md.initialization.temperature; 27 27 28 %Damage 29 md.damage.D=zeros(md.mesh.numberofvertices,1); 30 28 31 %Friction 29 32 md.friction.coefficient=50*ones(md.mesh.numberofvertices,1); -
issm/trunk-jpl/test/Par/Pig.py
r15988 r16167 37 37 md.initialization.temperature=md.initialization.temperature 38 38 39 #Damage 40 md.damage.D=zeros((md.mesh.numberofvertices,1)) 41 39 42 #Friction 40 43 md.friction.coefficient=50.*ones((md.mesh.numberofvertices,1)) -
issm/trunk-jpl/test/Par/RoundSheetEISMINT.par
r15988 r16167 20 20 md.materials.rheology_B=6.81*10^7*ones(md.mesh.numberofvertices,1); %to have the same B as the analytical solution 21 21 md.materials.rheology_n=3.*ones(md.mesh.numberofelements,1); 22 23 %Damage 24 md.damage.D=zeros(md.mesh.numberofvertices,1); 22 25 23 26 disp(' creating surface mass balance'); -
issm/trunk-jpl/test/Par/RoundSheetEISMINT.py
r15988 r16167 23 23 md.materials.rheology_B=6.81*10**7*numpy.ones((md.mesh.numberofvertices,1)) #to have the same B as the analytical solution 24 24 md.materials.rheology_n=3.*numpy.ones((md.mesh.numberofelements,1)) 25 26 #Damage 27 md.damage.D=zeros((md.mesh.numberofvertices,1)) 25 28 26 29 print " creating surface mass balance" -
issm/trunk-jpl/test/Par/RoundSheetShelf.par
r15994 r16167 61 61 md.materials.rheology_n=3.*ones(md.mesh.numberofelements,1); 62 62 63 %Damage 64 md.damage.D=zeros(md.mesh.numberofvertices,1); 65 63 66 %Surface mass balance and basal melting 64 67 md.surfaceforcings.mass_balance=-10.*ones(md.mesh.numberofvertices,1); -
issm/trunk-jpl/test/Par/RoundSheetShelf.py
r16005 r16167 68 68 md.materials.rheology_n=3.*numpy.ones((md.mesh.numberofelements,1)) 69 69 70 #Damage 71 md.damage.D=zeros((md.mesh.numberofvertices,1)) 72 70 73 #Surface mass balance and basal melting 71 74 md.surfaceforcings.mass_balance=-10.*numpy.ones((md.mesh.numberofvertices,1)) -
issm/trunk-jpl/test/Par/RoundSheetStaticEISMINT.par
r15988 r16167 24 24 md.materials.rheology_B=6.81*10^7*ones(md.mesh.numberofvertices,1); %to have the same B as the analytical solution 25 25 md.materials.rheology_n=3.*ones(md.mesh.numberofelements,1); 26 27 %Damage 28 md.damage.D=zeros(md.mesh.numberofvertices,1); 26 29 27 30 disp(' creating surface mass balance'); -
issm/trunk-jpl/test/Par/RoundSheetStaticEISMINT.py
r15988 r16167 28 28 md.materials.rheology_n=3.*numpy.ones((md.mesh.numberofelements,1)) 29 29 30 #Damage 31 md.damage.D=zeros((md.mesh.numberofvertices,1)) 32 30 33 print " creating surface mass balance" 31 34 smb_max=0.5 #m/yr -
issm/trunk-jpl/test/Par/SquareEISMINT.par
r15988 r16167 26 26 md.materials.rheology_n=3.*ones(md.mesh.numberofelements,1); 27 27 28 %Damage 29 md.damage.D=zeros(md.mesh.numberofvertices,1); 30 28 31 disp(' creating surface mass balance'); 29 32 md.surfaceforcings.mass_balance=0.2*ones(md.mesh.numberofvertices,1); %0m/a -
issm/trunk-jpl/test/Par/SquareEISMINT.py
r15988 r16167 29 29 md.materials.rheology_n=3.*numpy.ones((md.mesh.numberofelements,1)) 30 30 31 #Damage 32 md.damage.D=zeros((md.mesh.numberofvertices,1)) 33 31 34 print " creating surface mass balance" 32 35 md.surfaceforcings.mass_balance=0.2*numpy.ones((md.mesh.numberofvertices,1)) #0m/a -
issm/trunk-jpl/test/Par/SquareSheetConstrained.par
r16063 r16167 29 29 md.materials.rheology_B=paterson(md.initialization.temperature); 30 30 md.materials.rheology_n=3.*ones(md.mesh.numberofelements,1); 31 32 %Damage 33 md.damage.D=zeros(md.mesh.numberofvertices,1); 31 34 32 35 %Friction -
issm/trunk-jpl/test/Par/SquareSheetConstrained.py
r16063 r16167 40 40 md.materials.rheology_n=3.*numpy.ones((md.mesh.numberofelements,1)) 41 41 42 #Damage 43 md.damage.D=zeros((md.mesh.numberofvertices,1)) 44 42 45 #Friction 43 46 md.friction.coefficient=20.*numpy.ones((md.mesh.numberofvertices,1)) -
issm/trunk-jpl/test/Par/SquareSheetShelf.par
r16063 r16167 32 32 md.materials.rheology_n=3.*ones(md.mesh.numberofelements,1); 33 33 34 %Damage 35 md.damage.D=zeros(md.mesh.numberofvertices,1); 36 34 37 %Accumulation and melting 35 38 md.surfaceforcings.mass_balance=10.*ones(md.mesh.numberofvertices,1); -
issm/trunk-jpl/test/Par/SquareSheetShelf.py
r16063 r16167 43 43 md.materials.rheology_n=3.*ones((md.mesh.numberofelements,1)) 44 44 45 #Damage 46 md.damage.D=zeros((md.mesh.numberofvertices,1)) 47 45 48 #Accumulation and melting 46 49 md.surfaceforcings.mass_balance=10.*numpy.ones((md.mesh.numberofvertices,1)) -
issm/trunk-jpl/test/Par/SquareShelf.par
r16063 r16167 29 29 md.materials.rheology_n=3*ones(md.mesh.numberofelements,1); 30 30 31 %Damage 32 md.damage.D=zeros(md.mesh.numberofvertices,1); 33 31 34 %Friction 32 35 md.friction.coefficient=20*ones(md.mesh.numberofvertices,1); -
issm/trunk-jpl/test/Par/SquareShelf.py
r16063 r16167 59 59 md.materials.rheology_n = 3.*ones((md.mesh.numberofelements,1)) 60 60 61 #Damage 62 md.damage.D=zeros((md.mesh.numberofvertices,1)) 63 61 64 #Friction 62 65 md.friction.coefficient = 20.*ones((md.mesh.numberofvertices,1)) -
issm/trunk-jpl/test/Par/SquareShelf2.par
r16063 r16167 29 29 md.materials.rheology_n=3*ones(md.mesh.numberofelements,1); 30 30 31 %Damage 32 md.damage.D=zeros(md.mesh.numberofvertices,1); 33 31 34 %Friction 32 35 md.friction.coefficient=20*ones(md.mesh.numberofvertices,1); -
issm/trunk-jpl/test/Par/SquareShelf2.py
r16063 r16167 59 59 md.materials.rheology_n = 3.*ones((md.mesh.numberofelements,1)) 60 60 61 #Damage 62 md.damage.D=zeros((md.mesh.numberofvertices,1)) 63 61 64 #Friction 62 65 md.friction.coefficient = 20.*ones((md.mesh.numberofvertices,1)) -
issm/trunk-jpl/test/Par/SquareShelfConstrained.par
r16063 r16167 29 29 md.materials.rheology_n=3*ones(md.mesh.numberofelements,1); 30 30 31 %Damage 32 md.damage.D=zeros(md.mesh.numberofvertices,1); 33 31 34 %Surface mass balance and basal melting 32 35 md.surfaceforcings.mass_balance=10*ones(md.mesh.numberofvertices,1); -
issm/trunk-jpl/test/Par/SquareShelfConstrained.py
r16063 r16167 40 40 md.materials.rheology_n=3.*numpy.ones((md.mesh.numberofelements,1)) 41 41 42 #Damage 43 md.damage.D=zeros((md.mesh.numberofvertices,1)) 44 42 45 #Surface mass balance and basal melting 43 46 md.surfaceforcings.mass_balance=10.*numpy.ones((md.mesh.numberofvertices,1)) -
issm/trunk-jpl/test/Par/SquareThermal.par
r15988 r16167 27 27 md.materials.rheology_n=3.*ones(md.mesh.numberofelements,1); 28 28 29 %Damage 30 md.damage.D=zeros(md.mesh.numberofvertices,1); 31 29 32 disp(' creating surface mass balance'); 30 33 md.surfaceforcings.mass_balance=ones(md.mesh.numberofvertices,1)/md.constants.yts; %1m/a -
issm/trunk-jpl/test/Par/SquareThermal.py
r15988 r16167 31 31 md.materials.rheology_n=3.*numpy.ones((md.mesh.numberofelements,1)) 32 32 33 #Damage 34 md.damage.D=zeros((md.mesh.numberofvertices,1)) 35 33 36 print " creating surface mass balance" 34 37 md.surfaceforcings.mass_balance=numpy.ones((md.mesh.numberofvertices,1))/md.constants.yts #1m/a
Note:
See TracChangeset
for help on using the changeset viewer.