source:
issm/oecreview/Archive/16554-17801/ISSM-17393-17394.diff@
17802
Last change on this file since 17802 was 17802, checked in by , 11 years ago | |
---|---|
File size: 7.5 KB |
-
../trunk-jpl/src/c/analyses/StressbalanceAnalysis.cpp
6 6 #include "../solutionsequences/solutionsequences.h" 7 7 #include "../cores/cores.h" 8 8 9 //#define FSANALYTICAL 1019 //#define FSANALYTICAL 4 10 10 11 11 /*Model processing*/ 12 12 int StressbalanceAnalysis::DofsPerNode(int** pdoftype,int meshtype,int approximation){/*{{{*/ -
../trunk-jpl/src/c/shared/Enum/EnumDefinitions.h
532 532 StressTensoryyEnum, 533 533 StressTensoryzEnum, 534 534 StressTensorzzEnum, 535 DivergenceEnum, 535 536 GiaCrossSectionShapeEnum, 536 537 GiadWdtEnum, 537 538 GiaWEnum, -
../trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp
521 521 case StressTensoryyEnum : return "StressTensoryy"; 522 522 case StressTensoryzEnum : return "StressTensoryz"; 523 523 case StressTensorzzEnum : return "StressTensorzz"; 524 case DivergenceEnum : return "Divergence"; 524 525 case GiaCrossSectionShapeEnum : return "GiaCrossSectionShape"; 525 526 case GiadWdtEnum : return "GiadWdt"; 526 527 case GiaWEnum : return "GiaW"; -
../trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp
533 533 else if (strcmp(name,"StressTensoryy")==0) return StressTensoryyEnum; 534 534 else if (strcmp(name,"StressTensoryz")==0) return StressTensoryzEnum; 535 535 else if (strcmp(name,"StressTensorzz")==0) return StressTensorzzEnum; 536 else if (strcmp(name,"Divergence")==0) return DivergenceEnum; 536 537 else if (strcmp(name,"GiaCrossSectionShape")==0) return GiaCrossSectionShapeEnum; 537 538 else if (strcmp(name,"GiadWdt")==0) return GiadWdtEnum; 538 539 else if (strcmp(name,"GiaW")==0) return GiaWEnum; … … 627 628 else if (strcmp(name,"QmuInName")==0) return QmuInNameEnum; 628 629 else if (strcmp(name,"QmuOutName")==0) return QmuOutNameEnum; 629 630 else if (strcmp(name,"Regular")==0) return RegularEnum; 630 else if (strcmp(name,"Scaled")==0) return ScaledEnum;631 631 else stage=6; 632 632 } 633 633 if(stage==6){ 634 if (strcmp(name,"Separate")==0) return SeparateEnum; 634 if (strcmp(name,"Scaled")==0) return ScaledEnum; 635 else if (strcmp(name,"Separate")==0) return SeparateEnum; 635 636 else if (strcmp(name,"Sset")==0) return SsetEnum; 636 637 else if (strcmp(name,"Verbose")==0) return VerboseEnum; 637 638 else if (strcmp(name,"TriangleInterp")==0) return TriangleInterpEnum; -
../trunk-jpl/src/c/classes/FemModel.cpp
431 431 432 432 switch (response_descriptor_enum){ 433 433 434 case DivergenceEnum: this->Divergencex(responses); break; 434 435 case IceVolumeEnum: this->IceVolumex(responses); break; 435 436 case IceVolumeAboveFloatationEnum: this->IceVolumeAboveFloatationx(responses); break; 436 437 case MinVelEnum: this->MinVelx(responses); break; … … 503 504 switch(output_enum){ 504 505 505 506 /*Scalar output*/ 507 case DivergenceEnum: this->Divergencex(&double_result); break; 506 508 case IceVolumeEnum: this->IceVolumex(&double_result); break; 507 509 case IceVolumeAboveFloatationEnum: this->IceVolumeAboveFloatationx(&double_result); break; 508 510 case MinVelEnum: this->MinVelx(&double_result); break; … … 1041 1043 *pSmb=total_smb; 1042 1044 1043 1045 }/*}}}*/ 1046 void FemModel::Divergencex(IssmDouble* pdiv){/*{{{*/ 1047 1048 IssmDouble local_divergence=0; 1049 IssmDouble total_divergence; 1050 1051 for(int i=0;i<this->elements->Size();i++){ 1052 Element* element=dynamic_cast<Element*>(this->elements->GetObjectByOffset(i)); 1053 local_divergence+=element->Divergence(); 1054 } 1055 ISSM_MPI_Reduce(&local_divergence,&total_divergence,1,ISSM_MPI_DOUBLE,ISSM_MPI_SUM,0,IssmComm::GetComm() ); 1056 ISSM_MPI_Bcast(&total_divergence,1,ISSM_MPI_DOUBLE,0,IssmComm::GetComm()); 1057 1058 /*Assign output pointers: */ 1059 *pdiv=total_divergence; 1060 1061 }/*}}}*/ 1044 1062 void FemModel::IceVolumex(IssmDouble* pV){/*{{{*/ 1045 1063 1046 1064 IssmDouble local_ice_volume = 0; -
../trunk-jpl/src/c/classes/Elements/Element.h
55 55 /* bool AnyActive(void); */ 56 56 void CoordinateSystemTransform(IssmDouble** ptransform,Node** nodes,int numnodes,int* cs_array); 57 57 void DeleteMaterials(void); 58 IssmDouble Divergence(void); 58 59 void FindParam(bool* pvalue,int paramenum); 59 60 void FindParam(int* pvalue,int paramenum); 60 61 void FindParam(IssmDouble* pvalue,int paramenum); -
../trunk-jpl/src/c/classes/Elements/Element.cpp
129 129 void Element::DeleteMaterials(void){/*{{{*/ 130 130 delete this->material; 131 131 }/*}}}*/ 132 IssmDouble Element::Divergence(void){/*{{{*/ 133 /*Compute element divergence*/ 134 135 /*Intermediaries*/ 136 IssmDouble Jdet; 137 IssmDouble divergence=0.; 138 IssmDouble dvx[3],dvy[3],dvz[3]; 139 IssmDouble *xyz_list = NULL; 140 141 /*Get inputs and parameters*/ 142 Input* vx_input = this->GetInput(VxEnum); _assert_(vx_input); 143 Input* vy_input = this->GetInput(VyEnum); _assert_(vy_input); 144 Input* vz_input = this->GetInput(VzEnum); _assert_(vz_input); 145 this->GetVerticesCoordinates(&xyz_list); 146 147 Gauss* gauss=this->NewGaussBase(5); 148 for(int ig=gauss->begin();ig<gauss->end();ig++){ 149 gauss->GaussPoint(ig); 150 this->JacobianDeterminant(&Jdet,xyz_list,gauss); 151 152 /*Get strain rate assuming that epsilon has been allocated*/ 153 vx_input->GetInputDerivativeValue(&dvx[0],xyz_list,gauss); 154 vy_input->GetInputDerivativeValue(&dvy[0],xyz_list,gauss); 155 vz_input->GetInputDerivativeValue(&dvz[0],xyz_list,gauss); 156 157 divergence += (dvx[0]+dvy[1]+dvz[2])*gauss->weight*Jdet; 158 } 159 160 /*Clean up and return*/ 161 delete gauss; 162 return divergence; 163 }/*}}}*/ 132 164 void Element::FindParam(bool* pvalue,int paramenum){/*{{{*/ 133 165 this->parameters->FindParam(pvalue,paramenum); 134 166 }/*}}}*/ -
../trunk-jpl/src/c/classes/FemModel.h
71 71 void MinVyx(IssmDouble* presponse); 72 72 void MinVzx(IssmDouble* presponse); 73 73 void TotalSmbx(IssmDouble* pSmb); 74 void Divergencex(IssmDouble* pdiv); 74 75 void IceVolumex(IssmDouble* pV); 75 76 void IceVolumeAboveFloatationx(IssmDouble* pV); 76 77 void ElementResponsex(IssmDouble* presponse,int response_enum);
Note:
See TracBrowser
for help on using the repository browser.