Changeset 24377
- Timestamp:
- 11/21/19 14:16:34 (5 years ago)
- Location:
- issm/trunk-jpl/src/c/classes
- Files:
-
- 9 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/src/c/classes/Elements/Element.cpp
r24376 r24377 1106 1106 } 1107 1107 /*}}}*/ 1108 Input* Element::GetInput(int inputenum){/*{{{*/1109 return inputs->GetInput(inputenum);1110 }/*}}}*/1111 1108 void Element::GetInputListOnNodes(IssmDouble* pvalue,int enumtype,IssmDouble defaultvalue){/*{{{*/ 1112 1109 … … 4032 4029 } 4033 4030 /*}}}*/ 4034 void Element::StrainRateESA(IssmDouble* epsilon,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input){/*{{{*/4035 4036 /*Intermediaries*/4037 IssmDouble dvx[3];4038 IssmDouble dvy[3];4039 4040 /*Check that both inputs have been found*/4041 if(!vx_input || !vy_input){4042 _error_("Input missing. Here are the input pointers we have for vx: " << vx_input << ", vy: " << vy_input << "\n");4043 }4044 4045 /*Get strain rate assuming that epsilon has been allocated*/4046 vx_input->GetInputDerivativeValue(&dvx[0],xyz_list,gauss);4047 vy_input->GetInputDerivativeValue(&dvy[0],xyz_list,gauss);4048 epsilon[0] = dvx[0]; // normal strain rate x-direction4049 epsilon[1] = dvy[1]; // normal strain rate y-direction4050 epsilon[2] = 0.5*(dvx[1] + dvy[0]); // shear strain rate4051 epsilon[3] = 0.5*(dvx[1] - dvy[0]); // rotation rate4052 4053 }/*}}}*/4054 void Element::StrainRateFS(IssmDouble* epsilon,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,Input* vz_input){/*{{{*/4055 /*Compute the 3d Strain Rate (6 components):4056 *4057 * epsilon=[exx eyy ezz exy exz eyz]4058 */4059 4060 /*Intermediaries*/4061 IssmDouble dvx[3];4062 IssmDouble dvy[3];4063 IssmDouble dvz[3];4064 4065 /*Check that both inputs have been found*/4066 if (!vx_input || !vy_input || !vz_input){4067 _error_("Input missing. Here are the input pointers we have for vx: " << vx_input << ", vy: " << vy_input << ", vz: " << vz_input << "\n");4068 }4069 4070 /*Get strain rate assuming that epsilon has been allocated*/4071 vx_input->GetInputDerivativeValue(&dvx[0],xyz_list,gauss);4072 vy_input->GetInputDerivativeValue(&dvy[0],xyz_list,gauss);4073 vz_input->GetInputDerivativeValue(&dvz[0],xyz_list,gauss);4074 epsilon[0] = dvx[0];4075 epsilon[1] = dvy[1];4076 epsilon[2] = dvz[2];4077 epsilon[3] = 0.5*(dvx[1] + dvy[0]);4078 epsilon[4] = 0.5*(dvx[2] + dvz[0]);4079 epsilon[5] = 0.5*(dvy[2] + dvz[1]);4080 4081 }/*}}}*/4082 void Element::StrainRateHO(IssmDouble* epsilon,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input){/*{{{*/4083 /*Compute the 3d Blatter/HOStrain Rate (5 components):4084 *4085 * epsilon=[exx eyy exy exz eyz]4086 *4087 * with exz=1/2 du/dz4088 * eyz=1/2 dv/dz4089 *4090 * the contribution of vz is neglected4091 */4092 4093 /*Intermediaries*/4094 IssmDouble dvx[3];4095 IssmDouble dvy[3];4096 4097 /*Check that both inputs have been found*/4098 if (!vx_input || !vy_input){4099 _error_("Input missing. Here are the input pointers we have for vx: " << vx_input << ", vy: " << vy_input << "\n");4100 }4101 4102 /*Get strain rate assuming that epsilon has been allocated*/4103 vx_input->GetInputDerivativeValue(&dvx[0],xyz_list,gauss);4104 vy_input->GetInputDerivativeValue(&dvy[0],xyz_list,gauss);4105 epsilon[0] = dvx[0];4106 epsilon[1] = dvy[1];4107 epsilon[2] = 0.5*(dvx[1] + dvy[0]);4108 epsilon[3] = 0.5*dvx[2];4109 epsilon[4] = 0.5*dvy[2];4110 4111 }/*}}}*/4112 void Element::StrainRateHO2dvertical(IssmDouble* epsilon,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input){/*{{{*/4113 /*Compute the 2d Blatter/HOStrain Rate (2 components):4114 *4115 * epsilon=[exx exz]4116 *4117 * with exz=1/2 du/dz4118 *4119 * the contribution of vz is neglected4120 */4121 4122 /*Intermediaries*/4123 IssmDouble dvx[3];4124 4125 /*Check that both inputs have been found*/4126 if (!vx_input){4127 _error_("Input missing. Here are the input pointers we have for vx: " << vx_input <<"\n");4128 }4129 4130 /*Get strain rate assuming that epsilon has been allocated*/4131 vx_input->GetInputDerivativeValue(&dvx[0],xyz_list,gauss);4132 epsilon[0] = dvx[0];4133 epsilon[1] = 0.5*dvx[1];4134 4135 }/*}}}*/4136 void Element::StrainRateSSA(IssmDouble* epsilon,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input){/*{{{*/4137 4138 /*Intermediaries*/4139 IssmDouble dvx[3];4140 IssmDouble dvy[3];4141 4142 /*Check that both inputs have been found*/4143 if(!vx_input || !vy_input){4144 _error_("Input missing. Here are the input pointers we have for vx: " << vx_input << ", vy: " << vy_input << "\n");4145 }4146 4147 /*Get strain rate assuming that epsilon has been allocated*/4148 vx_input->GetInputDerivativeValue(&dvx[0],xyz_list,gauss);4149 vy_input->GetInputDerivativeValue(&dvy[0],xyz_list,gauss);4150 epsilon[0] = dvx[0];4151 epsilon[1] = dvy[1];4152 epsilon[2] = 0.5*(dvx[1] + dvy[0]);4153 4154 }/*}}}*/4155 void Element::StrainRateSSA1d(IssmDouble* epsilon,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input){/*{{{*/4156 4157 /*Intermediaries*/4158 IssmDouble dvx[3];4159 4160 /*Check that both inputs have been found*/4161 if (!vx_input){4162 _error_("Input missing. Here are the input pointers we have for vx: " << vx_input << "\n");4163 }4164 4165 /*Get strain rate assuming that epsilon has been allocated*/4166 vx_input->GetInputDerivativeValue(&dvx[0],xyz_list,gauss);4167 *epsilon = dvx[0];4168 4169 }/*}}}*/4170 4031 void Element::StrainRateESA(IssmDouble* epsilon,IssmDouble* xyz_list,Gauss* gauss,Input2* vx_input,Input2* vy_input){/*{{{*/ 4171 4032 -
issm/trunk-jpl/src/c/classes/Elements/Element.h
r24376 r24377 92 92 void GetDofListLocalPressure(int** pdoflist,int setenum); 93 93 void GetDofListLocalVelocity(int** pdoflist,int setenum); 94 Input* GetInput(int inputenum);95 94 void GetInputListOnNodes(IssmDouble* pvalue,int enumtype); 96 95 void GetInputListOnNodes(IssmDouble* pvalue,int enumtype,IssmDouble defaultvalue); … … 175 174 int Sid(); 176 175 void SmbGemb(); 177 void StrainRateESA(IssmDouble* epsilon,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input);178 void StrainRateFS(IssmDouble* epsilon,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,Input* vz_input);179 void StrainRateHO(IssmDouble* epsilon,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input);180 void StrainRateHO2dvertical(IssmDouble* epsilon,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input);181 void StrainRateSSA(IssmDouble* epsilon,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input);182 void StrainRateSSA1d(IssmDouble* epsilon,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input);183 176 void StrainRateESA(IssmDouble* epsilon,IssmDouble* xyz_list,Gauss* gauss,Input2* vx_input,Input2* vy_input); 184 177 void StrainRateFS(IssmDouble* epsilon,IssmDouble* xyz_list,Gauss* gauss,Input2* vx_input,Input2* vy_input,Input2* vz_input); -
issm/trunk-jpl/src/c/classes/Materials/Material.h
r24335 r24377 46 46 virtual void ResetHooks()=0; 47 47 48 virtual void ViscosityFS(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,Input* vz_input)=0;49 48 virtual void ViscosityFSDerivativeEpsSquare(IssmDouble* pmu_prime,IssmDouble* epsilon,Gauss* gauss)=0; 50 virtual void ViscosityHO(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input)=0;51 49 virtual void ViscosityHODerivativeEpsSquare(IssmDouble* pmu_prime,IssmDouble* epsilon,Gauss* gauss)=0; 52 virtual void ViscosityL1L2(IssmDouble* pviscosity,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,Input* surf)=0;53 virtual void ViscositySSA(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input)=0;54 50 virtual void ViscositySSADerivativeEpsSquare(IssmDouble* pmu_prime,IssmDouble* epsilon,Gauss* gauss)=0; 55 virtual void ViscosityBFS(IssmDouble* pmudB,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,Input* vz_input,IssmDouble epseff)=0;56 virtual void ViscosityBHO(IssmDouble* pmudB,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,IssmDouble epseff)=0;57 virtual void ViscosityBSSA(IssmDouble* pmudB,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,IssmDouble epseff)=0;58 59 51 virtual void ViscosityFS(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input2* vx_input,Input2* vy_input,Input2* vz_input)=0; 60 52 virtual void ViscosityHO(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input2* vx_input,Input2* vy_input)=0; -
issm/trunk-jpl/src/c/classes/Materials/Matestar.cpp
r24335 r24377 388 388 } 389 389 /*}}}*/ 390 void Matestar::ViscosityBFS(IssmDouble* pdmudB,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,Input* vz_input,IssmDouble eps_eff){/*{{{*/ 390 void Matestar::ViscosityFSDerivativeEpsSquare(IssmDouble* pmu_prime,IssmDouble* epsilon,Gauss* gauss){/*{{{*/ 391 this->GetViscosityDerivativeEpsSquare(pmu_prime,epsilon,gauss); 392 }/*}}}*/ 393 void Matestar::ViscosityHODerivativeEpsSquare(IssmDouble* pmu_prime,IssmDouble* epsilon,Gauss* gauss){/*{{{*/ 394 _error_("not implemented yet"); 395 }/*}}}*/ 396 void Matestar::ViscositySSADerivativeEpsSquare(IssmDouble* pmu_prime,IssmDouble* epsilon,Gauss* gauss){/*{{{*/ 397 _error_("not implemented yet"); 398 }/*}}}*/ 399 400 void Matestar::ViscosityBFS(IssmDouble* pdmudB,int dim,IssmDouble* xyz_list,Gauss* gauss,Input2* vx_input,Input2* vy_input,Input2* vz_input,IssmDouble eps_eff){/*{{{*/ 391 401 392 402 /*Intermediaries*/ … … 417 427 } 418 428 /*}}}*/ 419 void Matestar::ViscosityBHO(IssmDouble* pdmudB,int dim,IssmDouble* xyz_list,Gauss* gauss,Input * vx_input,Input* vy_input,IssmDouble eps_eff){/*{{{*/429 void Matestar::ViscosityBHO(IssmDouble* pdmudB,int dim,IssmDouble* xyz_list,Gauss* gauss,Input2* vx_input,Input2* vy_input,IssmDouble eps_eff){/*{{{*/ 420 430 421 431 /*Intermediaries*/ … … 445 455 *pdmudB=GetViscosity_BGeneral(vx,vy,vz,&dvx[0],&dvy[0],&dvz[0],eps_eff,isdepthaveraged,gauss); 446 456 }/*}}}*/ 447 void Matestar::ViscosityBSSA(IssmDouble* pdmudB,int dim,IssmDouble* xyz_list,Gauss* gauss,Input * vx_input,Input* vy_input,IssmDouble eps_eff){/*{{{*/457 void Matestar::ViscosityBSSA(IssmDouble* pdmudB,int dim,IssmDouble* xyz_list,Gauss* gauss,Input2* vx_input,Input2* vy_input,IssmDouble eps_eff){/*{{{*/ 448 458 /*Intermediaries*/ 449 459 IssmDouble vx,vy,vz; … … 475 485 *pdmudB=GetViscosity_BGeneral(vx,vy,vz,&dvx[0],&dvy[0],&dvz[0],eps_eff,isdepthaveraged,gauss); 476 486 }/*}}}*/ 477 void Matestar::ViscosityFS(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input * vx_input,Input* vy_input,Input* vz_input){/*{{{*/487 void Matestar::ViscosityFS(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input2* vx_input,Input2* vy_input,Input2* vz_input){/*{{{*/ 478 488 479 489 /*Intermediaries*/ … … 518 528 } 519 529 /*}}}*/ 520 void Matestar::ViscosityFSDerivativeEpsSquare(IssmDouble* pmu_prime,IssmDouble* epsilon,Gauss* gauss){/*{{{*/ 521 this->GetViscosityDerivativeEpsSquare(pmu_prime,epsilon,gauss); 522 }/*}}}*/ 523 void Matestar::ViscosityHO(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input){/*{{{*/ 530 void Matestar::ViscosityHO(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input2* vx_input,Input2* vy_input){/*{{{*/ 524 531 525 532 /*Intermediaries*/ … … 563 570 *pviscosity=GetViscosityGeneral(vx,vy,vz,&dvx[0],&dvy[0],&dvz[0],eps_eff,isdepthaveraged,gauss); 564 571 }/*}}}*/ 565 void Matestar::ViscosityHODerivativeEpsSquare(IssmDouble* pmu_prime,IssmDouble* epsilon,Gauss* gauss){/*{{{*/ 566 _error_("not implemented yet"); 567 }/*}}}*/ 568 void Matestar::ViscosityL1L2(IssmDouble* pviscosity,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,Input* surface_input){/*{{{*/ 569 _error_("not implemented yet"); 570 }/*}}}*/ 571 void Matestar::ViscositySSA(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input){/*{{{*/ 572 void Matestar::ViscosityL1L2(IssmDouble* pviscosity,IssmDouble* xyz_list,Gauss* gauss,Input2* vx_input,Input2* vy_input,Input2* surface_input){/*{{{*/ 573 _error_("not implemented yet"); 574 }/*}}}*/ 575 void Matestar::ViscositySSA(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input2* vx_input,Input2* vy_input){/*{{{*/ 572 576 573 577 /*Intermediaries*/ … … 614 618 *pviscosity=GetViscosityGeneral(vx,vy,vz,&dvx[0],&dvy[0],&dvz[0],eps_eff,isdepthaveraged,gauss); 615 619 }/*}}}*/ 616 void Matestar::ViscositySSADerivativeEpsSquare(IssmDouble* pmu_prime,IssmDouble* epsilon,Gauss* gauss){/*{{{*/617 _error_("not implemented yet");618 }/*}}}*/619 620 void Matestar::ViscosityBFS(IssmDouble* pdmudB,int dim,IssmDouble* xyz_list,Gauss* gauss,Input2* vx_input,Input2* vy_input,Input2* vz_input,IssmDouble eps_eff){/*{{{*/621 622 /*Intermediaries*/623 IssmDouble vx,vy,vz;624 IssmDouble dvx[3],dvy[3],dvz[3];625 bool isdepthaveraged=0.;626 627 /*Get velocity derivatives in all directions*/628 _assert_(dim>1);629 _assert_(vx_input);630 vx_input->GetInputValue(&vx,gauss);631 vx_input->GetInputDerivativeValue(&dvx[0],xyz_list,gauss);632 _assert_(vy_input);633 vy_input->GetInputValue(&vy,gauss);634 vy_input->GetInputDerivativeValue(&dvy[0],xyz_list,gauss);635 if(dim==3){636 _assert_(vz_input);637 vz_input->GetInputValue(&vz,gauss);638 vz_input->GetInputDerivativeValue(&dvz[0],xyz_list,gauss);639 }640 else{641 vz = 0.;642 dvz[0] = 0.; dvz[1] = 0.; dvz[2] = 0.;643 }644 645 /*Compute dmudB*/646 *pdmudB=GetViscosity_BGeneral(vx,vy,vz,&dvx[0],&dvy[0],&dvz[0],eps_eff,isdepthaveraged,gauss);647 }648 /*}}}*/649 void Matestar::ViscosityBHO(IssmDouble* pdmudB,int dim,IssmDouble* xyz_list,Gauss* gauss,Input2* vx_input,Input2* vy_input,IssmDouble eps_eff){/*{{{*/650 651 /*Intermediaries*/652 IssmDouble vx,vy,vz;653 IssmDouble dvx[3],dvy[3],dvz[3];654 bool isdepthaveraged=0.;655 656 /*Get velocity derivatives in all directions*/657 _assert_(dim==2 || dim==3);658 _assert_(vx_input);659 vx_input->GetInputValue(&vx,gauss);660 vx_input->GetInputDerivativeValue(&dvx[0],xyz_list,gauss);661 if(dim==3){662 _assert_(vy_input);663 vy_input->GetInputValue(&vy,gauss);664 vy_input->GetInputDerivativeValue(&dvy[0],xyz_list,gauss);665 }666 else{667 dvx[2] = 0.;668 vy = 0.;669 dvy[0] = 0.; dvy[1] = 0.; dvy[2] = 0.;670 }671 vz = 0.;672 dvz[0] = 0.; dvz[1] = 0.; dvz[2] = -dvx[0]-dvy[1];673 674 /*Compute viscosity*/675 *pdmudB=GetViscosity_BGeneral(vx,vy,vz,&dvx[0],&dvy[0],&dvz[0],eps_eff,isdepthaveraged,gauss);676 }/*}}}*/677 void Matestar::ViscosityBSSA(IssmDouble* pdmudB,int dim,IssmDouble* xyz_list,Gauss* gauss,Input2* vx_input,Input2* vy_input,IssmDouble eps_eff){/*{{{*/678 /*Intermediaries*/679 IssmDouble vx,vy,vz;680 IssmDouble dvx[3],dvy[3],dvz[3];681 bool isdepthaveraged=1.;682 683 /*Get velocity derivatives in all directions*/684 _assert_(dim==1 || dim==2);685 _assert_(vx_input);686 vx_input->GetInputValue(&vx,gauss);687 vx_input->GetInputDerivativeValue(&dvx[0],xyz_list,gauss);688 if(dim==2){689 _assert_(vy_input);690 vy_input->GetInputValue(&vy,gauss);691 vy_input->GetInputDerivativeValue(&dvy[0],xyz_list,gauss);692 }693 else{694 dvx[1] = 0.;695 dvx[2] = 0.;696 vy = 0.;697 dvy[0] = 0.; dvy[1] = 0.; dvy[2] = 0.;698 }699 dvx[2] = 0.;700 dvy[2] = 0.;701 vz = 0.;702 dvz[0] = 0.; dvz[1] = 0.; dvz[2] = -dvx[0]-dvy[1];703 704 /*Compute viscosity*/705 *pdmudB=GetViscosity_BGeneral(vx,vy,vz,&dvx[0],&dvy[0],&dvz[0],eps_eff,isdepthaveraged,gauss);706 }/*}}}*/707 void Matestar::ViscosityFS(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input2* vx_input,Input2* vy_input,Input2* vz_input){/*{{{*/708 709 /*Intermediaries*/710 IssmDouble vx,vy,vz;711 IssmDouble dvx[3],dvy[3],dvz[3];712 IssmDouble epsilon3d[6]; /* epsilon=[exx,eyy,ezz,exy,exz,eyz];*/713 IssmDouble epsilon2d[3]; /* epsilon=[exx,eyy,exy];*/714 IssmDouble eps_eff,eps0=1.e-27;715 bool isdepthaveraged=0.;716 717 /*Get velocity derivatives in all directions*/718 _assert_(dim>1);719 _assert_(vx_input);720 vx_input->GetInputValue(&vx,gauss);721 vx_input->GetInputDerivativeValue(&dvx[0],xyz_list,gauss);722 _assert_(vy_input);723 vy_input->GetInputValue(&vy,gauss);724 vy_input->GetInputDerivativeValue(&dvy[0],xyz_list,gauss);725 if(dim==3){726 _assert_(vz_input);727 vz_input->GetInputValue(&vz,gauss);728 vz_input->GetInputDerivativeValue(&dvz[0],xyz_list,gauss);729 }730 else{731 vz = 0.;732 dvz[0] = 0.; dvz[1] = 0.; dvz[2] = 0.;733 }734 735 if(dim==3){736 /* eps_eff^2 = exx^2 + eyy^2 + exy^2 + exz^2 + eyz^2 + exx*eyy */737 element->StrainRateFS(&epsilon3d[0],xyz_list,gauss,vx_input,vy_input,vz_input);738 eps_eff = sqrt(epsilon3d[0]*epsilon3d[0] + epsilon3d[1]*epsilon3d[1] + epsilon3d[3]*epsilon3d[3] + epsilon3d[4]*epsilon3d[4] + epsilon3d[5]*epsilon3d[5] + epsilon3d[0]*epsilon3d[1]+eps0*eps0);739 }740 else{741 /* eps_eff^2 = 1/2 ( exx^2 + eyy^2 + 2*exy^2 )*/742 element->StrainRateSSA(&epsilon2d[0],xyz_list,gauss,vx_input,vy_input);743 eps_eff = 1./sqrt(2.)*sqrt(epsilon2d[0]*epsilon2d[0] + epsilon2d[1]*epsilon2d[1] + 2.*epsilon2d[2]*epsilon2d[2]);744 }745 746 /*Compute viscosity*/747 *pviscosity=GetViscosityGeneral(vx,vy,vz,&dvx[0],&dvy[0],&dvz[0],eps_eff,isdepthaveraged,gauss);748 }749 /*}}}*/750 void Matestar::ViscosityHO(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input2* vx_input,Input2* vy_input){/*{{{*/751 752 /*Intermediaries*/753 IssmDouble vx,vy,vz;754 IssmDouble dvx[3],dvy[3],dvz[3];755 IssmDouble epsilon3d[5]; /* epsilon=[exx,eyy,exy,exz,eyz];*/756 IssmDouble epsilon2d[5]; /* epsilon=[exx,exy];*/757 IssmDouble eps_eff;758 bool isdepthaveraged=0.;759 760 if(dim==3){761 /* eps_eff^2 = exx^2 + eyy^2 + exy^2 + exz^2 + eyz^2 + exx*eyy */762 element->StrainRateHO(&epsilon3d[0],xyz_list,gauss,vx_input,vy_input);763 eps_eff = sqrt(epsilon3d[0]*epsilon3d[0] + epsilon3d[1]*epsilon3d[1] + epsilon3d[2]*epsilon3d[2] + epsilon3d[3]*epsilon3d[3] + epsilon3d[4]*epsilon3d[4] + epsilon3d[0]*epsilon3d[1]);764 }765 else{766 /* eps_eff^2 = 1/2 (2*exx^2 + 2*exy^2 ) (since eps_zz = - eps_xx)*/767 element->StrainRateHO2dvertical(&epsilon2d[0],xyz_list,gauss,vx_input,vy_input);768 eps_eff = 1./sqrt(2.)*sqrt(2*epsilon2d[0]*epsilon2d[0] + 2*epsilon2d[1]*epsilon2d[1]);769 }770 771 /*Get velocity derivatives in all directions*/772 _assert_(dim==2 || dim==3);773 _assert_(vx_input);774 vx_input->GetInputValue(&vx,gauss);775 vx_input->GetInputDerivativeValue(&dvx[0],xyz_list,gauss);776 if(dim==3){777 _assert_(vy_input);778 vy_input->GetInputValue(&vy,gauss);779 vy_input->GetInputDerivativeValue(&dvy[0],xyz_list,gauss);780 }781 else{782 dvx[2] = 0.;783 vy = 0.;784 dvy[0] = 0.; dvy[1] = 0.; dvy[2] = 0.;785 }786 vz = 0.;787 dvz[0] = 0.; dvz[1] = 0.; dvz[2] = -dvx[0]-dvy[1];788 789 /*Compute viscosity*/790 *pviscosity=GetViscosityGeneral(vx,vy,vz,&dvx[0],&dvy[0],&dvz[0],eps_eff,isdepthaveraged,gauss);791 }/*}}}*/792 void Matestar::ViscosityL1L2(IssmDouble* pviscosity,IssmDouble* xyz_list,Gauss* gauss,Input2* vx_input,Input2* vy_input,Input2* surface_input){/*{{{*/793 _error_("not implemented yet");794 }/*}}}*/795 void Matestar::ViscositySSA(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input2* vx_input,Input2* vy_input){/*{{{*/796 797 /*Intermediaries*/798 IssmDouble vx,vy,vz;799 IssmDouble dvx[3],dvy[3],dvz[3];800 IssmDouble epsilon2d[3];/* epsilon=[exx,eyy,exy]; */801 IssmDouble epsilon1d; /* epsilon=[exx]; */802 IssmDouble eps_eff;803 bool isdepthaveraged=1.;804 805 /*Get velocity derivatives in all directions*/806 _assert_(dim==1 || dim==2);807 _assert_(vx_input);808 vx_input->GetInputValue(&vx,gauss);809 vx_input->GetInputDerivativeValue(&dvx[0],xyz_list,gauss);810 if(dim==2){811 _assert_(vy_input);812 vy_input->GetInputValue(&vy,gauss);813 vy_input->GetInputDerivativeValue(&dvy[0],xyz_list,gauss);814 }815 else{816 dvx[1] = 0.;817 dvx[2] = 0.;818 vy = 0.;819 dvy[0] = 0.; dvy[1] = 0.; dvy[2] = 0.;820 }821 dvx[2] = 0.;822 dvy[2] = 0.;823 vz = 0.;824 dvz[0] = 0.; dvz[1] = 0.; dvz[2] = -dvx[0]-dvy[1];825 826 if(dim==2){827 /* eps_eff^2 = exx^2 + eyy^2 + exy^2 + exx*eyy*/828 element->StrainRateSSA(&epsilon2d[0],xyz_list,gauss,vx_input,vy_input);829 eps_eff = sqrt(epsilon2d[0]*epsilon2d[0] + epsilon2d[1]*epsilon2d[1] + epsilon2d[2]*epsilon2d[2] + epsilon2d[0]*epsilon2d[1]);830 }831 else{832 /* eps_eff^2 = exx^2*/833 element->StrainRateSSA1d(&epsilon1d,xyz_list,gauss,vx_input);834 eps_eff = fabs(epsilon1d);835 }836 837 /*Compute viscosity*/838 *pviscosity=GetViscosityGeneral(vx,vy,vz,&dvx[0],&dvy[0],&dvz[0],eps_eff,isdepthaveraged,gauss);839 }/*}}}*/ -
issm/trunk-jpl/src/c/classes/Materials/Matestar.h
r24335 r24377 71 71 void SetCurrentConfiguration(Elements* elements,Loads* loads,Nodes* nodes,Vertices* vertices,Materials* materials,Parameters* parameters); 72 72 73 void ViscosityFS(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,Input* vz_input);74 73 void ViscosityFSDerivativeEpsSquare(IssmDouble* pmu_prime,IssmDouble* epsilon,Gauss* gauss); 75 void ViscosityHO(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input);76 74 void ViscosityHODerivativeEpsSquare(IssmDouble* pmu_prime,IssmDouble* epsilon,Gauss* gauss); 77 void ViscosityL1L2(IssmDouble* pviscosity,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,Input* surf);78 void ViscositySSA(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input);79 75 void ViscositySSADerivativeEpsSquare(IssmDouble* pmu_prime,IssmDouble* epsilon,Gauss* gauss); 80 void ViscosityBFS(IssmDouble* pmudB,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,Input* vz_input,IssmDouble eps_eff);81 void ViscosityBHO(IssmDouble* pmudB,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,IssmDouble eps_eff);82 void ViscosityBSSA(IssmDouble* pmudB,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,IssmDouble eps_eff);83 76 84 77 void ViscosityFS(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input2* vx_input,Input2* vy_input,Input2* vz_input); -
issm/trunk-jpl/src/c/classes/Materials/Matice.cpp
r24335 r24377 666 666 } 667 667 /*}}}*/ 668 void Matice::ViscosityFS(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,Input* vz_input){/*{{{*/ 668 void Matice::ViscosityFSDerivativeEpsSquare(IssmDouble* pmu_prime,IssmDouble* epsilon,Gauss* gauss){/*{{{*/ 669 this->GetViscosityDerivativeEpsSquare(pmu_prime,epsilon,gauss); 670 }/*}}}*/ 671 void Matice::ViscosityHODerivativeEpsSquare(IssmDouble* pmu_prime,IssmDouble* epsilon,Gauss* gauss){/*{{{*/ 672 this->GetViscosityDerivativeEpsSquare(pmu_prime,epsilon,gauss); 673 }/*}}}*/ 674 void Matice::ViscositySSADerivativeEpsSquare(IssmDouble* pmu_prime,IssmDouble* epsilon,Gauss* gauss){/*{{{*/ 675 this->GetViscosity2dDerivativeEpsSquare(pmu_prime,epsilon,gauss); 676 }/*}}}*/ 677 678 void Matice::ViscosityFS(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input2* vx_input,Input2* vy_input,Input2* vz_input){/*{{{*/ 669 679 /*The effective strain rate is defined in Paterson 3d Ed p 91 eq 9, 670 680 * and Cuffey p 303 eq 8.18: … … 705 715 } 706 716 /*}}}*/ 707 void Matice::ViscosityFSDerivativeEpsSquare(IssmDouble* pmu_prime,IssmDouble* epsilon,Gauss* gauss){/*{{{*/ 708 this->GetViscosityDerivativeEpsSquare(pmu_prime,epsilon,gauss); 709 }/*}}}*/ 710 void Matice::ViscosityHO(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input){/*{{{*/ 717 void Matice::ViscosityHO(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input2* vx_input,Input2* vy_input){/*{{{*/ 711 718 712 719 /*Intermediaries*/ … … 734 741 *pviscosity=viscosity; 735 742 }/*}}}*/ 736 void Matice::ViscosityHODerivativeEpsSquare(IssmDouble* pmu_prime,IssmDouble* epsilon,Gauss* gauss){/*{{{*/ 737 this->GetViscosityDerivativeEpsSquare(pmu_prime,epsilon,gauss); 738 }/*}}}*/ 739 void Matice::ViscosityL1L2(IssmDouble* pviscosity,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,Input* surface_input){/*{{{*/ 743 void Matice::ViscosityL1L2(IssmDouble* pviscosity,IssmDouble* xyz_list,Gauss* gauss,Input2* vx_input,Input2* vy_input,Input2* surface_input){/*{{{*/ 740 744 /*Compute the L1L2 viscosity 741 745 * … … 796 800 *pviscosity = viscosity; 797 801 }/*}}}*/ 798 void Matice::ViscositySSA(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input * vx_input,Input* vy_input){/*{{{*/802 void Matice::ViscositySSA(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input2* vx_input,Input2* vy_input){/*{{{*/ 799 803 800 804 /*Intermediaries*/ … … 821 825 *pviscosity=viscosity; 822 826 }/*}}}*/ 823 void Matice::ViscositySSADerivativeEpsSquare(IssmDouble* pmu_prime,IssmDouble* epsilon,Gauss* gauss){/*{{{*/824 this->GetViscosity2dDerivativeEpsSquare(pmu_prime,epsilon,gauss);825 }/*}}}*/826 827 void Matice::ViscosityFS(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input2* vx_input,Input2* vy_input,Input2* vz_input){/*{{{*/828 /*The effective strain rate is defined in Paterson 3d Ed p 91 eq 9,829 * and Cuffey p 303 eq 8.18:830 *831 * 2 eps_eff^2 = eps_xx^2 + eps_yy^2 + eps_zz^2 + 2(eps_xy^2 + eps_xz^2 + eps_yz^2)832 *833 * or834 *835 * eps_eff = 1/sqrt(2) sqrt( \sum_ij eps_ij^2 )836 *837 * = 1/sqrt(2) ||eps||_F838 *839 * where ||.||_F is the Frobenius norm */840 841 /*Intermediaries*/842 IssmDouble viscosity;843 IssmDouble epsilon3d[6]; /* epsilon=[exx,eyy,ezz,exy,exz,eyz];*/844 IssmDouble epsilon2d[3]; /* epsilon=[exx,eyy,exy]; */845 IssmDouble eps_eff;846 IssmDouble eps0=1.e-27;847 848 if(dim==3){849 /* eps_eff^2 = exx^2 + eyy^2 + exy^2 + exz^2 + eyz^2 + exx*eyy */850 element->StrainRateFS(&epsilon3d[0],xyz_list,gauss,vx_input,vy_input,vz_input);851 eps_eff = sqrt(epsilon3d[0]*epsilon3d[0] + epsilon3d[1]*epsilon3d[1] + epsilon3d[3]*epsilon3d[3] + epsilon3d[4]*epsilon3d[4] + epsilon3d[5]*epsilon3d[5] + epsilon3d[0]*epsilon3d[1]+eps0*eps0);852 }853 else{854 /* eps_eff^2 = 1/2 ( exx^2 + eyy^2 + 2*exy^2 )*/855 element->StrainRateSSA(&epsilon2d[0],xyz_list,gauss,vx_input,vy_input);856 eps_eff = 1./sqrt(2.)*sqrt(epsilon2d[0]*epsilon2d[0] + epsilon2d[1]*epsilon2d[1] + 2.*epsilon2d[2]*epsilon2d[2]);857 }858 859 /*Get viscosity*/860 this->GetViscosity(&viscosity,eps_eff,gauss);861 862 /*Assign output pointer*/863 *pviscosity=viscosity;864 }865 /*}}}*/866 void Matice::ViscosityHO(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input2* vx_input,Input2* vy_input){/*{{{*/867 868 /*Intermediaries*/869 IssmDouble viscosity;870 IssmDouble epsilon3d[5];/* epsilon=[exx,eyy,exy,exz,eyz];*/871 IssmDouble epsilon2d[2];/* epsilon=[exx,exy]; */872 IssmDouble eps_eff;873 874 if(dim==3){875 /* eps_eff^2 = exx^2 + eyy^2 + exy^2 + exz^2 + eyz^2 + exx*eyy */876 element->StrainRateHO(&epsilon3d[0],xyz_list,gauss,vx_input,vy_input);877 eps_eff = sqrt(epsilon3d[0]*epsilon3d[0] + epsilon3d[1]*epsilon3d[1] + epsilon3d[2]*epsilon3d[2] + epsilon3d[3]*epsilon3d[3] + epsilon3d[4]*epsilon3d[4] + epsilon3d[0]*epsilon3d[1]);878 }879 else{880 /* eps_eff^2 = 1/2 (2*exx^2 + 2*exy^2 ) (since eps_zz = - eps_xx)*/881 element->StrainRateHO2dvertical(&epsilon2d[0],xyz_list,gauss,vx_input,vy_input);882 eps_eff = 1./sqrt(2.)*sqrt(2*epsilon2d[0]*epsilon2d[0] + 2*epsilon2d[1]*epsilon2d[1]);883 }884 885 /*Get viscosity*/886 this->GetViscosity(&viscosity,eps_eff,gauss);887 _assert_(!xIsNan<IssmDouble>(viscosity));888 889 /*Assign output pointer*/890 *pviscosity=viscosity;891 }/*}}}*/892 void Matice::ViscosityL1L2(IssmDouble* pviscosity,IssmDouble* xyz_list,Gauss* gauss,Input2* vx_input,Input2* vy_input,Input2* surface_input){/*{{{*/893 /*Compute the L1L2 viscosity894 *895 * 1896 * mu = - A^-1 (sigma'_e)^(1-n)897 * 2898 *899 * sigma'_e^2 = |sigma'_//|^2 + |sigma'_perp|^2 (see Perego 2012 eq. 17,18)900 *901 * L1L2 assumptions:902 *903 * (1) |eps_b|_// = A (|sigma'_//|^2 + |sigma'_perp|^2)^((n-1)/2) |sigma'_//|904 * (2) |sigma'_perp|^2 = |rho g (s-z) grad(s)|^2905 *906 * Assuming that n = 3, we have a polynom of degree 3 to solve (the only unkown is X=|sigma'_//|)907 *908 * A X^3 + A |rho g (s-z) grad(s)|^2 X - |eps_b|_// = 0 */909 910 IssmDouble z,s,viscosity,p,q,delta;911 IssmDouble tau_perp,tau_par,eps_b,A;912 IssmDouble epsilon[5]; /*exx eyy exy exz eyz*/913 IssmDouble slope[3];914 915 /*Check that both inputs have been found*/916 if (!vx_input || !vy_input || !surface_input) _error_("Input missing");917 918 /*Get tau_perp*/919 surface_input->GetInputValue(&s,gauss);920 surface_input->GetInputDerivativeValue(&slope[0],xyz_list,gauss);921 z=this->element->GetZcoord(xyz_list,gauss);922 tau_perp = element->FindParam(MaterialsRhoIceEnum) * element->FindParam(ConstantsGEnum) * fabs(s-z)*sqrt(slope[0]*slope[0]+slope[1]*slope[1]);923 924 /* Get eps_b*/925 element->StrainRateHO(&epsilon[0],xyz_list,gauss,vx_input,vy_input);926 eps_b = sqrt(epsilon[0]*epsilon[0] + epsilon[1]*epsilon[1] + epsilon[0]*epsilon[1] + epsilon[2]*epsilon[2]);927 if(eps_b==0.){928 *pviscosity = 2.5e+17;929 return;930 }931 932 /*Get A*/933 _assert_(this->GetN()==3.0);934 A=this->GetA(gauss);935 936 /*Solve for tau_perp (http://fr.wikipedia.org/wiki/Méthode_de_Cardan)*/937 p = tau_perp *tau_perp;938 q = - eps_b/A;939 delta = q *q + p*p*p*4./27.;940 _assert_(delta>0);941 tau_par = pow(0.5*(-q+sqrt(delta)),1./3.) - pow(0.5*(q+sqrt(delta)),1./3.);942 943 /*Viscosity*/944 viscosity = 1./(2.*A*(tau_par*tau_par + tau_perp*tau_perp));945 _assert_(!xIsNan(viscosity));946 _assert_(viscosity > 0.);947 948 /*Assign output pointer*/949 *pviscosity = viscosity;950 }/*}}}*/951 void Matice::ViscositySSA(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input2* vx_input,Input2* vy_input){/*{{{*/952 953 /*Intermediaries*/954 IssmDouble viscosity;955 IssmDouble epsilon2d[3];/* epsilon=[exx,eyy,exy]; */956 IssmDouble epsilon1d; /* epsilon=[exx]; */957 IssmDouble eps_eff;958 959 if(dim==2){960 /* eps_eff^2 = exx^2 + eyy^2 + exy^2 + exx*eyy*/961 element->StrainRateSSA(&epsilon2d[0],xyz_list,gauss,vx_input,vy_input);962 eps_eff = sqrt(epsilon2d[0]*epsilon2d[0] + epsilon2d[1]*epsilon2d[1] + epsilon2d[2]*epsilon2d[2] + epsilon2d[0]*epsilon2d[1]);963 }964 else{965 /* eps_eff^2 = exx^2*/966 element->StrainRateSSA1d(&epsilon1d,xyz_list,gauss,vx_input);967 eps_eff = fabs(epsilon1d);968 }969 970 /*Get viscosity*/971 this->GetViscosityBar(&viscosity,eps_eff,gauss);972 973 /*Assign output pointer*/974 *pviscosity=viscosity;975 }/*}}}*/ -
issm/trunk-jpl/src/c/classes/Materials/Matice.h
r24335 r24377 73 73 void SetCurrentConfiguration(Elements* elements,Loads* loads,Nodes* nodes,Vertices* vertices,Materials* materials,Parameters* parameters); 74 74 75 void ViscosityFS(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,Input* vz_input);76 75 void ViscosityFSDerivativeEpsSquare(IssmDouble* pmu_prime,IssmDouble* epsilon,Gauss* gauss); 77 void ViscosityHO(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input);78 76 void ViscosityHODerivativeEpsSquare(IssmDouble* pmu_prime,IssmDouble* epsilon,Gauss* gauss); 79 void ViscosityL1L2(IssmDouble* pviscosity,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,Input* surf);80 void ViscositySSA(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input);81 77 void ViscositySSADerivativeEpsSquare(IssmDouble* pmu_prime,IssmDouble* epsilon,Gauss* gauss); 82 void ViscosityBFS(IssmDouble* pmudB,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,Input* vz_input,IssmDouble eps_eff){_error_("not supported");};83 void ViscosityBHO(IssmDouble* pmudB,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,IssmDouble eps_eff){_error_("not supported");};84 void ViscosityBSSA(IssmDouble* pmudB,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,IssmDouble eps_eff){_error_("not supported");};85 78 86 79 void ViscosityFS(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input2* vx_input,Input2* vy_input,Input2* vz_input); -
issm/trunk-jpl/src/c/classes/Materials/Matlitho.h
r24335 r24377 62 62 void ResetHooks(); 63 63 64 void ViscosityFS(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,Input* vz_input){_error_("not supported");};65 64 void ViscosityFSDerivativeEpsSquare(IssmDouble* pmu_prime,IssmDouble* epsilon,Gauss* gauss){_error_("not supported");}; 66 void ViscosityHO(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input){_error_("not supported");};67 65 void ViscosityHODerivativeEpsSquare(IssmDouble* pmu_prime,IssmDouble* epsilon,Gauss* gauss){_error_("not supported");}; 68 void ViscosityL1L2(IssmDouble* pviscosity,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,Input* surf){_error_("not supported");};69 void ViscositySSA(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input){_error_("not supported");};70 66 void ViscositySSADerivativeEpsSquare(IssmDouble* pmu_prime,IssmDouble* epsilon,Gauss* gauss){_error_("not supported");}; 71 void ViscosityBFS(IssmDouble* pmudB,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,Input* vz_input,IssmDouble epseff){_error_("not supported");};72 void ViscosityBHO(IssmDouble* pmudB,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,IssmDouble epseff){_error_("not supported");};73 void ViscosityBSSA(IssmDouble* pmudB,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,IssmDouble epseff){_error_("not supported");};74 75 67 76 68 void ViscosityFS(IssmDouble* pviscosity,int dim,IssmDouble* xyz_list,Gauss* gauss,Input2* vx_input,Input2* vy_input,Input2* vz_input){_error_("not supported");}; -
issm/trunk-jpl/src/c/classes/Radar.cpp
r24376 r24377 129 129 130 130 /*Retrieve all inputs we will be needing: */ 131 Input * temp_input=element->GetInput(TemperatureEnum); _assert_(temp_input);132 Input * ice_period_input=element->GetInput(RadarIcePeriodEnum); _assert_(ice_period_input);131 Input2* temp_input=element->GetInput2(TemperatureEnum); _assert_(temp_input); 132 Input2* ice_period_input=element->GetInput2(RadarIcePeriodEnum); _assert_(ice_period_input); 133 133 134 134 /* Start looping on the number of vertices: */ … … 213 213 /* Get node coordinates*/ 214 214 element->GetVerticesCoordinates(&xyz_list); 215 Input * atten_input_M07=element->GetInput(RadarAttenuationMacGregorEnum); _assert_(atten_input_M07);216 Input * atten_input_W97=element->GetInput(RadarAttenuationWolffEnum);_assert_(atten_input_W97);217 Input * surf_input=element->GetInput(SurfaceEnum);_assert_(surf_input);218 Input * thick_input=element->GetInput(ThicknessEnum);_assert_(thick_input);219 Input * temp_input=element->GetInput(TemperatureEnum);_assert_(temp_input);215 Input2 *atten_input_M07 = element->GetInput2(RadarAttenuationMacGregorEnum); _assert_(atten_input_M07); 216 Input2 *atten_input_W97 = element->GetInput2(RadarAttenuationWolffEnum); _assert_(atten_input_W97); 217 Input2 *surf_input = element->GetInput2(SurfaceEnum); _assert_(surf_input); 218 Input2 *thick_input = element->GetInput2(ThicknessEnum); _assert_(thick_input); 219 Input2 *temp_input = element->GetInput2(TemperatureEnum); _assert_(temp_input); 220 220 221 221 /* Start looping on the number of vertices: */
Note:
See TracChangeset
for help on using the changeset viewer.