Changeset 16743
- Timestamp:
- 11/13/13 15:44:10 (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
TabularUnified issm/trunk-jpl/src/c/classes/Elements/Penta.cpp ¶
r16740 r16743 4851 4851 IssmDouble values[numdof]; 4852 4852 IssmDouble B[numdof],surface[numdof]; 4853 IssmDouble B_average;4854 4853 int *doflist = NULL; 4855 4854 bool hack = false; … … 4890 4889 * otherwise the rheology could be negative*/ 4891 4890 this->parameters->FindParam(&rheology_law,MaterialsRheologyLawEnum); 4891 GetInputListOnVertices(&surface[0],SurfaceEnum); 4892 4892 switch(rheology_law){ 4893 4893 case NoneEnum: … … 4895 4895 break; 4896 4896 case PatersonEnum: 4897 B_average=Paterson((values[0]+values[1]+values[2]+values[3]+values[4]+values[5])/6.0); 4898 for(i=0;i<numdof;i++) B[i]=B_average; 4897 for(i=0;i<numdof;i++) B[i]=Paterson(values[i]); 4899 4898 this->material->inputs->AddInput(new PentaInput(MaterialsRheologyBEnum,B,P1Enum)); 4900 4899 break; 4901 4900 case ArrheniusEnum: 4902 GetInputListOnVertices(&surface[0],SurfaceEnum);4903 4901 for(i=0;i<numdof;i++) B[i]=Arrhenius(values[i],surface[i]-xyz_list[i][2],material->GetN()); 4904 4902 this->material->inputs->AddInput(new PentaInput(MaterialsRheologyBEnum,B,P1Enum)); … … 4926 4924 IssmDouble xyz_list[NUMVERTICES][3]; 4927 4925 IssmDouble values[numdof]; 4928 IssmDouble pressure[NUMVERTICES]; 4926 IssmDouble pressure[numdof]; 4927 IssmDouble surface[numdof]; 4929 4928 IssmDouble temperatures[numdof]; 4930 4929 IssmDouble waterfraction[numdof]; … … 4965 4964 * otherwise the rheology could be negative*/ 4966 4965 this->parameters->FindParam(&rheology_law,MaterialsRheologyLawEnum); 4966 GetInputListOnVertices(&surface[0],PressureEnum); 4967 4967 switch(rheology_law){ 4968 4968 case NoneEnum: … … 4970 4970 break; 4971 4971 case PatersonEnum: 4972 B_average=Paterson((temperatures[0]+temperatures[1]+temperatures[2]+temperatures[3]+temperatures[4]+temperatures[5])/6.0); 4973 for(i=0;i<numdof;i++) B[i]=B_average; 4972 for(i=0;i<numdof;i++) B[i]=Paterson(values[i]); 4974 4973 this->material->inputs->AddInput(new PentaInput(MaterialsRheologyBEnum,B,P1Enum)); 4975 4974 break; 4976 4975 case ArrheniusEnum: 4977 surface_input->GetInputAverage(&s_average); 4978 B_average=Arrhenius((temperatures[0]+temperatures[1]+temperatures[2]+temperatures[3]+temperatures[4]+temperatures[5])/6.0, 4979 s_average-((xyz_list[0][2]+xyz_list[1][2]+xyz_list[2][2]+xyz_list[3][2]+xyz_list[4][2]+xyz_list[5][2])/6.0), 4980 material->GetN()); 4981 for(i=0;i<numdof;i++) B[i]=B_average; 4976 for(i=0;i<numdof;i++) B[i]=Arrhenius(values[i],surface[i]-xyz_list[i][2],material->GetN()); 4982 4977 this->material->inputs->AddInput(new PentaInput(MaterialsRheologyBEnum,B,P1Enum)); 4983 4978 break; 4984 4979 case LliboutryDuvalEnum: 4985 B_average=LliboutryDuval((values[0]+values[1]+values[2]+values[3]+values[4]+values[5])/6.0, 4986 (pressure[0]+pressure[1]+pressure[2]+pressure[3]+pressure[4]+pressure[5])/6.0, 4987 material->GetN(), 4988 matpar->GetBeta(), matpar->GetReferenceTemperature(), matpar->GetHeatCapacity(), matpar->GetLatentHeat()); 4989 for(i=0;i<numdof;i++) B[i]=B_average; 4980 for(i=0;i<numdof;i++) B[i]=LliboutryDuval(values[i],pressure[i],material->GetN(),matpar->GetBeta(),matpar->GetReferenceTemperature(),matpar->GetHeatCapacity(),matpar->GetLatentHeat()); 4990 4981 this->material->inputs->AddInput(new PentaInput(MaterialsRheologyBEnum,B,P1Enum)); 4991 4982 break;
Note:
See TracChangeset
for help on using the changeset viewer.