Changeset 17744
- Timestamp:
- 04/15/14 17:57:22 (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/src/c/analyses/DamageEvolutionAnalysis.cpp
r17700 r17744 47 47 void DamageEvolutionAnalysis::UpdateElements(Elements* elements,IoModel* iomodel,int analysis_counter,int analysis_type){/*{{{*/ 48 48 49 int finiteelement = P1Enum; 50 49 51 /*Update elements: */ 50 52 int counter=0; … … 52 54 if(iomodel->my_elements[i]){ 53 55 Element* element=(Element*)elements->GetObjectByOffset(counter); 54 element->Update(i,iomodel,analysis_counter,analysis_type, P1Enum);56 element->Update(i,iomodel,analysis_counter,analysis_type,finiteelement); 55 57 counter++; 56 58 } … … 73 75 void DamageEvolutionAnalysis::CreateNodes(Nodes* nodes,IoModel* iomodel){/*{{{*/ 74 76 77 int finiteelement = P1Enum; 78 75 79 if(iomodel->domaintype!=Domain2DhorizontalEnum) iomodel->FetchData(1,MeshVertexonbaseEnum); 76 ::CreateNodes(nodes,iomodel,DamageEvolutionAnalysisEnum, P1Enum);80 ::CreateNodes(nodes,iomodel,DamageEvolutionAnalysisEnum,finiteelement); 77 81 iomodel->DeleteData(1,MeshVertexonbaseEnum); 78 82 }/*}}}*/ 79 83 void DamageEvolutionAnalysis::CreateConstraints(Constraints* constraints,IoModel* iomodel){/*{{{*/ 80 84 81 int stabilization,finitelelement; 85 int stabilization; 86 int finiteelement = P1Enum; 82 87 iomodel->Constant(&stabilization,DamageStabilizationEnum); 83 88 84 IoModelToConstraintsx(constraints,iomodel,DamageSpcdamageEnum,DamageEvolutionAnalysisEnum, P1Enum);89 IoModelToConstraintsx(constraints,iomodel,DamageSpcdamageEnum,DamageEvolutionAnalysisEnum,finiteelement); 85 90 86 91 }/*}}}*/ … … 411 416 412 417 /*Get all inputs and parameters*/ 413 basalelement->AddBasalInput(DamageDEnum,newdamage,P1Enum); 418 if(domaintype==Domain2DhorizontalEnum){ 419 basalelement->AddInput(DamageDbarEnum,newdamage,element->GetElementType()); 420 } 421 else{ 422 basalelement->AddBasalInput(DamageDEnum,newdamage,element->GetElementType()); 423 } 414 424 415 425 /*Free ressources:*/ … … 431 441 IssmDouble J2s,Chi,Psi,PosPsi,NegPsi; 432 442 IssmDouble damage,tau_xx,tau_xy,tau_yy; 433 int equivstress ;443 int equivstress,domaintype; 434 444 435 445 /*Fetch number of vertices and allocate output*/ … … 443 453 element->FindParam(&healing,DamageHealingEnum); 444 454 element->FindParam(&stress_threshold,DamageStressThresholdEnum); 455 element->FindParam(&domaintype,DomainTypeEnum); 445 456 446 457 /*Compute stress tensor: */ … … 451 462 Input* tau_xy_input = element->GetInput(DeviatoricStressxyEnum); _assert_(tau_xy_input); 452 463 Input* tau_yy_input = element->GetInput(DeviatoricStressyyEnum); _assert_(tau_yy_input); 453 Input* damage_input = element->GetInput(DamageDEnum); _assert_(damage_input); 464 Input* damage_input = NULL; 465 if(domaintype==Domain2DhorizontalEnum){ 466 damage_input = element->GetInput(DamageDbarEnum); _assert_(damage_input); 467 } 468 else{ 469 damage_input = element->GetInput(DamageDEnum); _assert_(damage_input); 470 } 471 472 454 473 455 474 /*retrieve the desired type of equivalent stress*/
Note:
See TracChangeset
for help on using the changeset viewer.