Changeset 16818
- Timestamp:
- 11/18/13 14:45:20 (11 years ago)
- Location:
- issm/trunk-jpl/src/c
- Files:
-
- 27 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/src/c/analyses/Analysis.h
r16782 r16818 16 16 class ElementVector; 17 17 class ElementMatrix; 18 class Gauss; 18 19 19 20 class Analysis{ -
issm/trunk-jpl/src/c/analyses/StressbalanceAnalysis.cpp
r16807 r16818 813 813 /*Finite Element Analysis*/ 814 814 ElementMatrix* StressbalanceAnalysis::CreateKMatrix(Element* element){/*{{{*/ 815 _error_("not implemented yet"); 815 int approximation; 816 element->GetInputValue(&approximation,ApproximationEnum); 817 switch(approximation){ 818 case SSAApproximationEnum: 819 return CreateKMatrixSSA(element); 820 case NoneApproximationEnum: 821 return NULL; 822 default: 823 _error_("Approximation "<<EnumToStringx(approximation)<<" not supported"); 824 } 825 }/*}}}*/ 826 ElementMatrix* StressbalanceAnalysis::CreateKMatrixSSA(Element* element){/*{{{*/ 827 828 /*Intermediaries*/ 829 int meshtype; 830 Element* basalelement; 831 832 /*Get basal element*/ 833 element->FindParam(&meshtype,MeshTypeEnum); 834 switch(meshtype){ 835 case Mesh2DhorizontalEnum: 836 basalelement = element; 837 break; 838 case Mesh3DEnum: 839 if(!element->IsOnBed()) return NULL; 840 basalelement = element->SpawnBasalElement(); 841 break; 842 default: _error_("mesh "<<EnumToStringx(meshtype)<<" not supported yet"); 843 } 844 845 /*compute all stiffness matrices for this element*/ 846 ElementMatrix* Ke1=CreateKMatrixSSAViscous(element); 847 ElementMatrix* Ke2=CreateKMatrixSSAFriction(element); 848 ElementMatrix* Ke =new ElementMatrix(Ke1,Ke2); 849 850 /*clean-up and return*/ 851 if(meshtype!=Mesh2DhorizontalEnum){basalelement->DeleteMaterials(); delete basalelement;}; 852 delete Ke1; 853 delete Ke2; 854 return Ke; 855 }/*}}}*/ 856 ElementMatrix* StressbalanceAnalysis::CreateKMatrixSSAViscous(Element* element){/*{{{*/ 857 858 /*Intermediaries*/ 859 IssmDouble viscosity,newviscosity,oldviscosity; 860 IssmDouble viscosity_overshoot,thickness,Jdet; 861 IssmDouble D_scalar; 862 IssmDouble *xyz_list = NULL; 863 864 /*Fetch number of nodes and dof for this finite element*/ 865 int numnodes = element->GetNumberOfNodes(); 866 int numdof = numnodes*2; 867 868 /*Initialize Element matrix and vectors*/ 869 ElementMatrix* Ke = element->NewElementMatrix(SSAApproximationEnum); 870 IssmDouble* B = xNew<IssmDouble>(3*numdof); 871 IssmDouble* Bprime = xNew<IssmDouble>(3*numdof); 872 IssmDouble* D = xNewZeroInit<IssmDouble>(3*3); 873 874 /*Retrieve all inputs and parameters*/ 875 element->GetVerticesCoordinates(&xyz_list); 876 Input* thickness_input=element->GetInput(ThicknessEnum); _assert_(thickness_input); 877 Input* vx_input=element->GetInput(VxEnum); _assert_(vx_input); 878 Input* vy_input=element->GetInput(VyEnum); _assert_(vy_input); 879 Input* vxold_input=element->GetInput(VxPicardEnum); _assert_(vxold_input); 880 Input* vyold_input=element->GetInput(VyPicardEnum); _assert_(vyold_input); 881 element->FindParam(&viscosity_overshoot,StressbalanceViscosityOvershootEnum); 882 883 /* Start looping on the number of gaussian points: */ 884 Gauss* gauss = element->NewGauss(2); 885 for(int ig=gauss->begin();ig<gauss->end();ig++){ 886 gauss->GaussPoint(ig); 887 888 element->JacobianDeterminant(&Jdet,xyz_list,gauss); 889 this->GetBSSA(B,element,xyz_list,gauss); 890 this->GetBSSAprime(Bprime,element,xyz_list,gauss); 891 892 element->ViscositySSA(&viscosity,xyz_list,gauss,vx_input,vy_input); 893 element->ViscositySSA(&oldviscosity,xyz_list,gauss,vxold_input,vyold_input); 894 thickness_input->GetInputValue(&thickness, gauss); 895 896 newviscosity=viscosity+viscosity_overshoot*(viscosity-oldviscosity); 897 D_scalar=2.*newviscosity*thickness*gauss->weight*Jdet; 898 for(int i=0;i<3;i++) D[i*3+i]=D_scalar; 899 900 TripleMultiply(B,3,numdof,1, 901 D,3,3,0, 902 Bprime,3,numdof,0, 903 &Ke->values[0],1); 904 } 905 906 /*Transform Coordinate System*/ 907 element->TransformStiffnessMatrixCoord(Ke,XYEnum); 908 909 /*Clean up and return*/ 910 delete gauss; 911 xDelete<IssmDouble>(xyz_list); 912 xDelete<IssmDouble>(D); 913 xDelete<IssmDouble>(Bprime); 914 xDelete<IssmDouble>(B); 915 return Ke; 916 }/*}}}*/ 917 ElementMatrix* StressbalanceAnalysis::CreateKMatrixSSAFriction(Element* element){/*{{{*/ 918 return NULL; 816 919 }/*}}}*/ 817 920 ElementVector* StressbalanceAnalysis::CreatePVector(Element* element){/*{{{*/ … … 1128 1231 1129 1232 return NULL; 1233 }/*}}}*/ 1234 void StressbalanceAnalysis::GetBSSA(IssmDouble* B,Element* element,IssmDouble* xyz_list,Gauss* gauss){/*{{{*/ 1235 /*Compute B matrix. B=[B1 B2 B3] where Bi is of size 3*NDOF2. 1236 * For node i, Bi can be expressed in the actual coordinate system 1237 * by: 1238 * Bi=[ dN/dx 0 ] 1239 * [ 0 dN/dy ] 1240 * [ 1/2*dN/dy 1/2*dN/dx ] 1241 * where N is the finiteelement function for node i. 1242 * 1243 * We assume B has been allocated already, of size: 3x(NDOF2*numnodes) 1244 */ 1245 1246 /*Fetch number of nodes for this finite element*/ 1247 int numnodes = element->GetNumberOfNodes(); 1248 1249 /*Get nodal functions derivatives*/ 1250 IssmDouble* dbasis=xNew<IssmDouble>(2*numnodes); 1251 element->NodalFunctionsDerivatives(dbasis,xyz_list,gauss); 1252 1253 /*Build B: */ 1254 for(int i=0;i<numnodes;i++){ 1255 B[2*numnodes*0+2*i+0] = dbasis[0*numnodes+i]; 1256 B[2*numnodes*0+2*i+1] = 0.; 1257 B[2*numnodes*1+2*i+0] = 0.; 1258 B[2*numnodes*1+2*i+1] = dbasis[1*numnodes+i]; 1259 B[2*numnodes*2+2*i+0] = .5*dbasis[1*numnodes+i]; 1260 B[2*numnodes*2+2*i+1] = .5*dbasis[0*numnodes+i]; 1261 } 1262 1263 /*Clean-up*/ 1264 xDelete<IssmDouble>(dbasis); 1265 }/*}}}*/ 1266 void StressbalanceAnalysis::GetBSSAprime(IssmDouble* Bprime,Element* element,IssmDouble* xyz_list,Gauss* gauss){/*{{{*/ 1267 /*Compute B' matrix. B'=[B1' B2' B3'] where Bi' is of size 3*NDOF2. 1268 * For node i, Bi' can be expressed in the actual coordinate system 1269 * by: 1270 * Bi_prime=[ 2*dN/dx dN/dy ] 1271 * [ dN/dx 2*dN/dy ] 1272 * [ dN/dy dN/dx ] 1273 * where hNis the finiteelement function for node i. 1274 * 1275 * We assume B' has been allocated already, of size: 3x(NDOF2*numnodes) 1276 */ 1277 1278 /*Fetch number of nodes for this finite element*/ 1279 int numnodes = element->GetNumberOfNodes(); 1280 1281 /*Get nodal functions derivatives*/ 1282 IssmDouble* dbasis=xNew<IssmDouble>(2*numnodes); 1283 element->NodalFunctionsDerivatives(dbasis,xyz_list,gauss); 1284 1285 /*Build B': */ 1286 for(int i=0;i<numnodes;i++){ 1287 Bprime[2*numnodes*0+2*i+0] = 2.*dbasis[0*numnodes+i]; 1288 Bprime[2*numnodes*0+2*i+1] = dbasis[1*numnodes+i]; 1289 Bprime[2*numnodes*1+2*i+0] = dbasis[0*numnodes+i]; 1290 Bprime[2*numnodes*1+2*i+1] = 2.*dbasis[1*numnodes+i]; 1291 Bprime[2*numnodes*2+2*i+0] = dbasis[1*numnodes+i]; 1292 Bprime[2*numnodes*2+2*i+1] = dbasis[0*numnodes+i]; 1293 } 1294 1295 /*Clean-up*/ 1296 xDelete<IssmDouble>(dbasis); 1130 1297 }/*}}}*/ 1131 1298 void StressbalanceAnalysis::GetSolutionFromInputs(Vector<IssmDouble>* solution,Element* element){/*{{{*/ -
issm/trunk-jpl/src/c/analyses/StressbalanceAnalysis.h
r16805 r16818 22 22 /*Finite element Analysis*/ 23 23 ElementMatrix* CreateKMatrix(Element* element); 24 ElementMatrix* CreateKMatrixSSA(Element* element); 25 ElementMatrix* CreateKMatrixSSAViscous(Element* element); 26 ElementMatrix* CreateKMatrixSSAFriction(Element* element); 24 27 ElementVector* CreatePVector(Element* element); 25 28 ElementVector* CreatePVectorFS(Element* element); … … 33 36 ElementVector* CreatePVectorSSADrivingStress(Element* element); 34 37 ElementVector* CreatePVectorSSAFront(Element* element); 38 void GetBSSA(IssmDouble* B,Element* element,IssmDouble* xyz_list,Gauss* gauss); 39 void GetBSSAprime(IssmDouble* B,Element* element,IssmDouble* xyz_list,Gauss* gauss); 35 40 void GetSolutionFromInputs(Vector<IssmDouble>* solution,Element* element); 36 41 void GetSolutionFromInputsFS(Vector<IssmDouble>* solution,Element* element); -
issm/trunk-jpl/src/c/classes/Elements/Element.h
r16817 r16818 70 70 virtual void TransformSolutionCoord(IssmDouble* values,int numnodes,int transformenum)=0; 71 71 virtual void TransformSolutionCoord(IssmDouble* values,int numnodes,int* transformenum_list)=0; 72 virtual void TransformStiffnessMatrixCoord(ElementMatrix* Ke,int transformenum)=0; 73 virtual void TransformStiffnessMatrixCoord(ElementMatrix* Ke,int* transformenum_list)=0; 74 virtual void TransformStiffnessMatrixCoord(ElementMatrix* Ke,int numnodes,int transformenum)=0; 75 virtual void TransformStiffnessMatrixCoord(ElementMatrix* Ke,int numnodes,int* transformenum_list)=0; 72 76 virtual Element* GetBasalElement(void)=0; 73 77 virtual void GetDofList(int** pdoflist,int approximation_enum,int setenum)=0; … … 122 126 virtual Gauss* NewGaussBase(int order)=0; 123 127 virtual ElementVector* NewElementVector(int approximation_enum=NoneApproximationEnum)=0; 128 virtual ElementMatrix* NewElementMatrix(int approximation_enum=NoneApproximationEnum)=0; 124 129 virtual void InputScale(int enum_type,IssmDouble scale_factor)=0; 125 130 virtual void GetVectorFromInputs(Vector<IssmDouble>* vector, int name_enum)=0; … … 134 139 virtual IssmDouble StabilizationParameter(IssmDouble u, IssmDouble v, IssmDouble w, IssmDouble diameter, IssmDouble kappa)=0; 135 140 virtual void ViscousHeating(IssmDouble* pphi,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,Input* vz_input)=0; 141 virtual void ViscositySSA(IssmDouble* pviscosity,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input)=0; 136 142 virtual int VelocityInterpolation()=0; 137 143 virtual int PressureInterpolation()=0; -
issm/trunk-jpl/src/c/classes/Elements/Penta.cpp
r16817 r16818 2548 2548 } 2549 2549 /*}}}*/ 2550 /*FUNCTION Penta::NewElementMatrix{{{*/ 2551 ElementMatrix* Penta::NewElementMatrix(int approximation_enum){ 2552 return new ElementMatrix(nodes,this->NumberofNodes(),this->parameters,approximation_enum); 2553 } 2554 /*}}}*/ 2550 2555 /*FUNCTION Penta::NodalFunctions{{{*/ 2551 2556 void Penta::NodalFunctions(IssmDouble* basis, Gauss* gauss){ … … 3112 3117 return dt; 3113 3118 }/*}}}*/ 3114 /*FUNCTION Penta::TransformLoadVectorCoord {{{*/3119 /*FUNCTION Penta::TransformLoadVectorCoord(ElementVector* pe,int transformenum){{{*/ 3115 3120 void Penta::TransformLoadVectorCoord(ElementVector* pe,int transformenum){ 3116 3121 … … 3119 3124 } 3120 3125 /*}}}*/ 3121 /*FUNCTION Penta::TransformLoadVectorCoord {{{*/3126 /*FUNCTION Penta::TransformLoadVectorCoord(ElementVector* pe,int* transformenum_list){{{*/ 3122 3127 void Penta::TransformLoadVectorCoord(ElementVector* pe,int* transformenum_list){ 3123 3128 … … 3151 3156 3152 3157 ::TransformSolutionCoord(values,this->nodes,numnodes,transformenum_list); 3158 3159 } 3160 /*}}}*/ 3161 /*FUNCTION Penta::TransformStiffnessMatrixCoord(ElementMatrix* pe,int transformenum){{{*/ 3162 void Penta::TransformStiffnessMatrixCoord(ElementMatrix* Ke,int transformenum){ 3163 3164 ::TransformStiffnessMatrixCoord(Ke,this->nodes,this->NumberofNodes(),transformenum); 3153 3165 3154 3166 } … … 5171 5183 5172 5184 /*Transform Coordinate System*/ 5173 TransformStiffnessMatrixCoord(Ke,nodes,NUMVERTICES,XYEnum);5185 ::TransformStiffnessMatrixCoord(Ke,nodes,NUMVERTICES,XYEnum); 5174 5186 5175 5187 /*Clean up and return*/ … … 5251 5263 5252 5264 /*Transform Coordinate System*/ 5253 TransformStiffnessMatrixCoord(Ke,nodes,NUMVERTICES,XYZEnum);5265 ::TransformStiffnessMatrixCoord(Ke,nodes,NUMVERTICES,XYZEnum); 5254 5266 5255 5267 /*Clean up and return*/ … … 6653 6665 6654 6666 /*Transform Coordinate System*/ 6655 TransformStiffnessMatrixCoord(Ke,node_list,numnodes,cs_list);6667 ::TransformStiffnessMatrixCoord(Ke,node_list,numnodes,cs_list); 6656 6668 6657 6669 /*Clean-up and return*/ … … 6739 6751 6740 6752 /*Transform Coordinate System*/ 6741 TransformStiffnessMatrixCoord(Ke,node_list,numnodes,cs_list);6753 ::TransformStiffnessMatrixCoord(Ke,node_list,numnodes,cs_list); 6742 6754 6743 6755 /*Clean up and return*/ … … 6865 6877 6866 6878 /*Transform Coordinate System*/ 6867 TransformStiffnessMatrixCoord(Ke,node_list,numnodes,cs_list);6879 ::TransformStiffnessMatrixCoord(Ke,node_list,numnodes,cs_list); 6868 6880 6869 6881 /*Clean-up and return*/ … … 6991 7003 6992 7004 /*Transform Coordinate System*/ 6993 TransformStiffnessMatrixCoord(Ke,node_list,numnodes,cs_list);7005 ::TransformStiffnessMatrixCoord(Ke,node_list,numnodes,cs_list); 6994 7006 6995 7007 /*Clean up and return*/ … … 7057 7069 7058 7070 /*Transform Coordinate System*/ //Do not transform, already done in the matrices 7059 TransformStiffnessMatrixCoord(Ke,node_list,numnodes,cs_list);7071 ::TransformStiffnessMatrixCoord(Ke,node_list,numnodes,cs_list); 7060 7072 7061 7073 /*clean-up and return*/ … … 7280 7292 7281 7293 /*Transform Coordinate System*/ 7282 TransformStiffnessMatrixCoord(Ke,tria->nodes,NUMVERTICES2D,XYEnum);7294 ::TransformStiffnessMatrixCoord(Ke,tria->nodes,NUMVERTICES2D,XYEnum); 7283 7295 7284 7296 /*Clean up and return*/ … … 7415 7427 7416 7428 /*Transform Coordinate System*/ 7417 TransformStiffnessMatrixCoord(Ke,tria->nodes,NUMVERTICES2D,XYEnum);7429 ::TransformStiffnessMatrixCoord(Ke,tria->nodes,NUMVERTICES2D,XYEnum); 7418 7430 7419 7431 /*Clean up and return*/ … … 7514 7526 7515 7527 /*Transform Coordinate System*/ 7516 TransformStiffnessMatrixCoord(Ke,nodes,numnodes,XYEnum);7528 ::TransformStiffnessMatrixCoord(Ke,nodes,numnodes,XYEnum); 7517 7529 7518 7530 /*Clean up and return*/ … … 7605 7617 7606 7618 /*Transform Coordinate System*/ 7607 TransformStiffnessMatrixCoord(Ke,nodes,numnodes,XYEnum);7619 ::TransformStiffnessMatrixCoord(Ke,nodes,numnodes,XYEnum); 7608 7620 7609 7621 /*Clean up and return*/ … … 7821 7833 7822 7834 /*Transform Coordinate System*/ 7823 TransformStiffnessMatrixCoord(Ke,nodes,(vnumnodes+pnumnodes),cs_list);7835 ::TransformStiffnessMatrixCoord(Ke,nodes,(vnumnodes+pnumnodes),cs_list); 7824 7836 7825 7837 /*Clean up and return*/ … … 7893 7905 7894 7906 /*DO NOT Transform Coordinate System: this stiffness matrix is already expressed in tangential coordinates*/ 7895 // TransformStiffnessMatrixCoord(Ke,nodes,NUMVERTICES,XYZEnum);7907 //::TransformStiffnessMatrixCoord(Ke,nodes,NUMVERTICES,XYZEnum); 7896 7908 7897 7909 /*Clean up and return*/ … … 9275 9287 9276 9288 /*Transform Coordinate System*/ 9277 TransformStiffnessMatrixCoord(Ke,nodes,NUMVERTICES,XYEnum);9289 ::TransformStiffnessMatrixCoord(Ke,nodes,NUMVERTICES,XYEnum); 9278 9290 9279 9291 /*Clean up and return*/ … … 9366 9378 9367 9379 /*Transform Coordinate System*/ 9368 TransformStiffnessMatrixCoord(Ke,nodes,(vnumnodes+pnumnodes),cs_list);9380 ::TransformStiffnessMatrixCoord(Ke,nodes,(vnumnodes+pnumnodes),cs_list); 9369 9381 9370 9382 /*Clean up and return*/ -
issm/trunk-jpl/src/c/classes/Elements/Penta.h
r16817 r16818 23 23 class ElementMatrix; 24 24 class ElementVector; 25 25 class GaussPenta; 26 26 #include "../../shared/Exceptions/exceptions.h" 27 27 #include "../../shared/Enum/Enum.h" … … 249 249 Gauss* NewGaussBase(int order); 250 250 ElementVector* NewElementVector(int approximation_enum); 251 ElementMatrix* NewElementMatrix(int approximation_enum); 251 252 void NodalFunctions(IssmDouble* basis,Gauss* gauss); 252 253 void NodalFunctionsDerivatives(IssmDouble* dbasis,IssmDouble* xyz_list,Gauss* gauss); … … 266 267 void TransformSolutionCoord(IssmDouble* values,int numnodes,int transformenum); /*Tiling only*/ 267 268 void TransformSolutionCoord(IssmDouble* values,int numnodes,int* transformenum_list);/*Tiling only*/ 269 void TransformStiffnessMatrixCoord(ElementMatrix* Ke,int transformenum); 270 void TransformStiffnessMatrixCoord(ElementMatrix* Ke,int* transformenum_list){_error_("not implemented yet");}; 271 void TransformStiffnessMatrixCoord(ElementMatrix* Ke,int numnodes,int transformenum){_error_("not implemented yet");}; 272 void TransformStiffnessMatrixCoord(ElementMatrix* Ke,int numnodes,int* transformenum_list){_error_("not implemented yet");}; 273 void ViscositySSA(IssmDouble* pviscosity,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input){_error_("not implemented");}; 268 274 269 275 #ifdef _HAVE_STRESSBALANCE_ -
issm/trunk-jpl/src/c/classes/Elements/PentaRef.cpp
r16739 r16818 55 55 /*Reference Element numerics*/ 56 56 /*FUNCTION PentaRef::GetBSSAHO {{{*/ 57 void PentaRef::GetBSSAHO(IssmDouble* B, IssmDouble* xyz_list, Gauss Penta* gauss){57 void PentaRef::GetBSSAHO(IssmDouble* B, IssmDouble* xyz_list, Gauss* gauss){ 58 58 /*Compute B matrix. B=[B1 B2 B3 B4 B5 B6] where Bi is of size 5*NDOF2. 59 59 * For node i, Bi can be expressed in the actual coordinate system … … 86 86 /*}}}*/ 87 87 /*FUNCTION PentaRef::GetBSSAFS{{{*/ 88 void PentaRef::GetBSSAFS(IssmDouble* B, IssmDouble* xyz_list, Gauss Penta* gauss){88 void PentaRef::GetBSSAFS(IssmDouble* B, IssmDouble* xyz_list, Gauss* gauss){ 89 89 /*Compute B matrix. B=[B1 B2 B3 B4 B5 B6] where Bi is of size 5*NDOF2. 90 90 * For node i, Bi can be expressed in the actual coordinate system … … 146 146 /*}}}*/ 147 147 /*FUNCTION PentaRef::GetBHO {{{*/ 148 void PentaRef::GetBHO(IssmDouble* B, IssmDouble* xyz_list, Gauss Penta* gauss){148 void PentaRef::GetBHO(IssmDouble* B, IssmDouble* xyz_list, Gauss* gauss){ 149 149 /*Compute B matrix. B=[B1 B2 B3 B4 B5 B6] where Bi is of size 5*NDOF2. 150 150 * For node i, Bi can be expressed in the actual coordinate system … … 186 186 /*}}}*/ 187 187 /*FUNCTION PentaRef::GetBprimeHO {{{*/ 188 void PentaRef::GetBprimeHO(IssmDouble* B,IssmDouble* xyz_list,Gauss Penta* gauss){188 void PentaRef::GetBprimeHO(IssmDouble* B,IssmDouble* xyz_list,Gauss* gauss){ 189 189 /*Compute B prime matrix. B=[B1 B2 B3 B4 B5 B6] where Bi is of size 5*NDOF2. 190 190 * For node i, Bi can be expressed in the actual coordinate system … … 226 226 /*}}}*/ 227 227 /*FUNCTION PentaRef::GetBprimeSSAFS{{{*/ 228 void PentaRef::GetBprimeSSAFS(IssmDouble* Bprime, IssmDouble* xyz_list, Gauss Penta* gauss){228 void PentaRef::GetBprimeSSAFS(IssmDouble* Bprime, IssmDouble* xyz_list, Gauss* gauss){ 229 229 /*Compute Bprime matrix. Bprime=[Bprime1 Bprime2 Bprime3 Bprime4 Bprime5 Bprime6] where Bprimei is of size 5*NDOF2. 230 230 * For node i, Bprimei can be expressed in the actual coordinate system … … 278 278 /*}}}*/ 279 279 /*FUNCTION PentaRef::GetBFSstrainrate {{{*/ 280 void PentaRef::GetBFSstrainrate(IssmDouble* B, IssmDouble* xyz_list, Gauss Penta* gauss){280 void PentaRef::GetBFSstrainrate(IssmDouble* B, IssmDouble* xyz_list, Gauss* gauss){ 281 281 282 282 /*Compute B matrix. B=[B1 B2 B3 B4 B5 B6] where Bi is of size 3*NDOF4. … … 331 331 /*}}}*/ 332 332 /*FUNCTION PentaRef::GetBFS {{{*/ 333 void PentaRef::GetBFS(IssmDouble* B, IssmDouble* xyz_list, Gauss Penta* gauss){333 void PentaRef::GetBFS(IssmDouble* B, IssmDouble* xyz_list, Gauss* gauss){ 334 334 335 335 /*Compute B matrix. B=[Bv1 Bv2 ... Bp1 Bp2 ...] where Bvi is of size 3*NDOF3. … … 410 410 /*}}}*/ 411 411 /*FUNCTION PentaRef::GetBFSGLS {{{*/ 412 void PentaRef::GetBFSGLS(IssmDouble* B, IssmDouble* xyz_list, Gauss Penta* gauss){412 void PentaRef::GetBFSGLS(IssmDouble* B, IssmDouble* xyz_list, Gauss* gauss){ 413 413 414 414 /*Compute B matrix. B=[B1 B2 B3 B4 B5 B6] where Bi is of size 3*NDOF4. … … 476 476 /*}}}*/ 477 477 /*FUNCTION PentaRef::GetBprimeFS {{{*/ 478 void PentaRef::GetBprimeFS(IssmDouble* B_prime, IssmDouble* xyz_list, Gauss Penta* gauss){478 void PentaRef::GetBprimeFS(IssmDouble* B_prime, IssmDouble* xyz_list, Gauss* gauss){ 479 479 /* Compute B' matrix. B'=[B1' B2' B3' B4' B5' B6' Bb'] where Bi' is of size 3*NDOF2. 480 480 * For node i, Bi' can be expressed in the actual coordinate system … … 554 554 /*}}}*/ 555 555 /*FUNCTION PentaRef::GetBprimeFSGLS {{{*/ 556 void PentaRef::GetBprimeFSGLS(IssmDouble* B_prime, IssmDouble* xyz_list, Gauss Penta* gauss){556 void PentaRef::GetBprimeFSGLS(IssmDouble* B_prime, IssmDouble* xyz_list, Gauss* gauss){ 557 557 /* Compute B' matrix. B'=[B1' B2' B3' B4' B5' B6' Bb'] where Bi' is of size 3*NDOF2. 558 558 * For node i, Bi' can be expressed in the actual coordinate system … … 621 621 /*}}}*/ 622 622 /*FUNCTION PentaRef::GetBAdvec{{{*/ 623 void PentaRef::GetBAdvec(IssmDouble* B_advec, IssmDouble* xyz_list, Gauss Penta* gauss){623 void PentaRef::GetBAdvec(IssmDouble* B_advec, IssmDouble* xyz_list, Gauss* gauss){ 624 624 /*Compute B matrix. B=[B1 B2 B3 B4 B5 B6] where Bi is of size 5*NDOF1. 625 625 * For node i, Bi' can be expressed in the actual coordinate system … … 652 652 /*}}}*/ 653 653 /*FUNCTION PentaRef::GetBConduct{{{*/ 654 void PentaRef::GetBConduct(IssmDouble* B_conduct, IssmDouble* xyz_list, Gauss Penta* gauss){654 void PentaRef::GetBConduct(IssmDouble* B_conduct, IssmDouble* xyz_list, Gauss* gauss){ 655 655 /*Compute B matrix. B=[B1 B2 B3 B4 B5 B6] where Bi is of size 5*NDOF1. 656 656 * For node i, Bi' can be expressed in the actual coordinate system … … 683 683 /*}}}*/ 684 684 /*FUNCTION PentaRef::GetBVert{{{*/ 685 void PentaRef::GetBVert(IssmDouble* B, IssmDouble* xyz_list, Gauss Penta* gauss){685 void PentaRef::GetBVert(IssmDouble* B, IssmDouble* xyz_list, Gauss* gauss){ 686 686 /* Compute B matrix. B=[dh1/dz dh2/dz dh3/dz dh4/dz dh5/dz dh6/dz]; 687 687 where hi is the interpolation function for node i.*/ … … 704 704 /*}}}*/ 705 705 /*FUNCTION PentaRef::GetBprimeAdvec{{{*/ 706 void PentaRef::GetBprimeAdvec(IssmDouble* Bprime_advec, IssmDouble* xyz_list, Gauss Penta* gauss){706 void PentaRef::GetBprimeAdvec(IssmDouble* Bprime_advec, IssmDouble* xyz_list, Gauss* gauss){ 707 707 /*Compute B matrix. B=[B1 B2 B3 B4 B5 B6] where Bi is of size 5*NDOF1. 708 708 * For node i, Bi' can be expressed in the actual coordinate system … … 735 735 /*}}}*/ 736 736 /*FUNCTION PentaRef::GetBprimeVert{{{*/ 737 void PentaRef::GetBprimeVert(IssmDouble* B, IssmDouble* xyz_list, Gauss Penta* gauss){737 void PentaRef::GetBprimeVert(IssmDouble* B, IssmDouble* xyz_list, Gauss* gauss){ 738 738 739 739 GetNodalFunctions(B,gauss); … … 742 742 /*}}}*/ 743 743 /*FUNCTION PentaRef::GetBHOFriction{{{*/ 744 void PentaRef::GetBHOFriction(IssmDouble* B, Gauss Penta* gauss){744 void PentaRef::GetBHOFriction(IssmDouble* B, Gauss* gauss){ 745 745 /*Compute B matrix. B=[B1 B2 B3] where Bi is square and of size 2x2. 746 746 ** For node i, Bi can be expressed in the actual coordinate system … … 772 772 /*}}}*/ 773 773 /*FUNCTION PentaRef::GetLFS{{{*/ 774 void PentaRef::GetLFS(IssmDouble* LFS, Gauss Penta* gauss){774 void PentaRef::GetLFS(IssmDouble* LFS, Gauss* gauss){ 775 775 /* Compute L matrix. L=[L1 L2 L3] where Li is square and of size numdof. 776 776 * For node i, Li can be expressed in the actual coordinate system … … 812 812 /*}}}*/ 813 813 /*FUNCTION PentaRef::GetLprimeFS {{{*/ 814 void PentaRef::GetLprimeFS(IssmDouble* LprimeFS, IssmDouble* xyz_list, Gauss Penta* gauss){814 void PentaRef::GetLprimeFS(IssmDouble* LprimeFS, IssmDouble* xyz_list, Gauss* gauss_in){ 815 815 /* Compute Lprime matrix. Lprime=[Lp1 Lp2 Lp3] where Lpi is square and of size numdof. 816 816 * For node i, Lpi can be expressed in the actual coordinate system … … 851 851 IssmDouble L1L2l3[NUMNODESP1_2d]; 852 852 IssmDouble dbasis[3][NUMNODESP1]; 853 854 /*Cast gauss to GaussPenta*/ 855 _assert_(gauss_in->Enum()==GaussPentaEnum); 856 GaussPenta* gauss = dynamic_cast<GaussPenta*>(gauss_in); 853 857 854 858 /*Get L1L2l3 in actual coordinate system: */ … … 921 925 /*}}}*/ 922 926 /*FUNCTION PentaRef::GetLSSAFS {{{*/ 923 void PentaRef::GetLSSAFS(IssmDouble* LFS, Gauss Penta* gauss){927 void PentaRef::GetLSSAFS(IssmDouble* LFS, Gauss* gauss_in){ 924 928 /* 925 929 * Compute L matrix. L=[L1 L2 L3] where Li is square and of size numdof. … … 939 943 int num_dof=2; 940 944 IssmDouble L1L2l3[NUMNODESP1_2d]; 945 946 /*Cast gauss to GaussPenta*/ 947 _assert_(gauss_in->Enum()==GaussPentaEnum); 948 GaussPenta* gauss = dynamic_cast<GaussPenta*>(gauss_in); 941 949 942 950 /*Get L1L2l3 in actual coordinate system: */ … … 967 975 /*}}}*/ 968 976 /*FUNCTION PentaRef::GetLprimeSSAFS {{{*/ 969 void PentaRef::GetLprimeSSAFS(IssmDouble* LprimeFS, IssmDouble* xyz_list, Gauss Penta* gauss){977 void PentaRef::GetLprimeSSAFS(IssmDouble* LprimeFS, IssmDouble* xyz_list, Gauss* gauss_in){ 970 978 /* Compute Lprime matrix. Lprime=[Lp1 Lp2 Lp3] where Lpi is square and of size numdof. 971 979 * For node i, Lpi can be expressed in the actual coordinate system … … 986 994 IssmDouble L1L2l3[NUMNODESP1_2d]; 987 995 IssmDouble dbasis[3][NUMNODESP1]; 996 997 /*Cast gauss to GaussPenta*/ 998 _assert_(gauss_in->Enum()==GaussPentaEnum); 999 GaussPenta* gauss = dynamic_cast<GaussPenta*>(gauss_in); 988 1000 989 1001 /*Get L1L2l3 in actual coordinate system: */ … … 1070 1082 /*}}}*/ 1071 1083 /*FUNCTION PentaRef::GetLFSSSA {{{*/ 1072 void PentaRef::GetLFSSSA(IssmDouble* LFS, Gauss Penta* gauss){1084 void PentaRef::GetLFSSSA(IssmDouble* LFS, Gauss* gauss_in){ 1073 1085 /* Compute L matrix. L=[L1 L2 L3] where Li is square and of size numdof. 1074 1086 * For node i, Li can be expressed in the actual coordinate system … … 1083 1095 int num_dof=3; 1084 1096 IssmDouble L1L2l3[NUMNODESP1_2d]; 1097 1098 /*Cast gauss to GaussPenta*/ 1099 _assert_(gauss_in->Enum()==GaussPentaEnum); 1100 GaussPenta* gauss = dynamic_cast<GaussPenta*>(gauss_in); 1085 1101 1086 1102 /*Get L1L2l3 in actual coordinate system: */ … … 1107 1123 /*}}}*/ 1108 1124 /*FUNCTION PentaRef::GetLprimeFSSSA {{{*/ 1109 void PentaRef::GetLprimeFSSSA(IssmDouble* LprimeFS, IssmDouble* xyz_list, Gauss Penta* gauss){1125 void PentaRef::GetLprimeFSSSA(IssmDouble* LprimeFS, IssmDouble* xyz_list, Gauss* gauss_in){ 1110 1126 /* Compute Lprime matrix. Lprime=[Lp1 Lp2 Lp3] where Lpi is square and of size numdof. 1111 1127 * For node i, Lpi can be expressed in the actual coordinate system … … 1121 1137 IssmDouble dbasis[3][NUMNODESP1]; 1122 1138 1139 /*Cast gauss to GaussPenta*/ 1140 _assert_(gauss_in->Enum()==GaussPentaEnum); 1141 GaussPenta* gauss = dynamic_cast<GaussPenta*>(gauss_in); 1142 1123 1143 /*Get L1L2l3 in actual coordinate system: */ 1124 1144 L1L2l3[0]=gauss->coord1*(1-gauss->coord4)/2.0; … … 1141 1161 /*}}}*/ 1142 1162 /*FUNCTION PentaRef::GetJacobian {{{*/ 1143 void PentaRef::GetJacobian(IssmDouble* J, IssmDouble* xyz_list,Gauss Penta* gauss){1163 void PentaRef::GetJacobian(IssmDouble* J, IssmDouble* xyz_list,Gauss* gauss_in){ 1144 1164 /*The Jacobian is constant over the element, discard the gaussian points. 1145 1165 * J is assumed to have been allocated of size NDOF2xNDOF2.*/ … … 1150 1170 IssmDouble y1,y2,y3,y4,y5,y6; 1151 1171 IssmDouble z1,z2,z3,z4,z5,z6; 1172 1173 /*Cast gauss to GaussPenta*/ 1174 _assert_(gauss_in->Enum()==GaussPentaEnum); 1175 GaussPenta* gauss = dynamic_cast<GaussPenta*>(gauss_in); 1152 1176 1153 1177 /*Figure out xi,eta and zi (parametric coordinates), for this gaussian point: */ … … 1194 1218 /*}}}*/ 1195 1219 /*FUNCTION PentaRef::GetJacobianDeterminant {{{*/ 1196 void PentaRef::GetJacobianDeterminant(IssmDouble* Jdet, IssmDouble* xyz_list,Gauss Penta* gauss){1220 void PentaRef::GetJacobianDeterminant(IssmDouble* Jdet, IssmDouble* xyz_list,Gauss* gauss){ 1197 1221 /*On a penta, Jacobian varies according to coordinates. We need to get the Jacobian, and take 1198 1222 * the determinant of it: */ … … 1209 1233 /*}}}*/ 1210 1234 /*FUNCTION PentaRef::GetTriaJacobianDeterminant{{{*/ 1211 void PentaRef::GetTriaJacobianDeterminant(IssmDouble* Jdet, IssmDouble* xyz_list,Gauss Penta* gauss){1235 void PentaRef::GetTriaJacobianDeterminant(IssmDouble* Jdet, IssmDouble* xyz_list,Gauss* gauss){ 1212 1236 /*The Jacobian determinant is constant over the element, discard the gaussian points. 1213 1237 * J is assumed to have been allocated of size NDOF2xNDOF2.*/ … … 1229 1253 /*}}}*/ 1230 1254 /*FUNCTION PentaRef::GetSegmentJacobianDeterminant{{{*/ 1231 void PentaRef::GetSegmentJacobianDeterminant(IssmDouble* Jdet, IssmDouble* xyz_list,Gauss Penta* gauss){1255 void PentaRef::GetSegmentJacobianDeterminant(IssmDouble* Jdet, IssmDouble* xyz_list,Gauss* gauss){ 1232 1256 /*The Jacobian determinant is constant over the element, discard the gaussian points. 1233 1257 * J is assumed to have been allocated of size NDOF2xNDOF2.*/ … … 1246 1270 /*}}}*/ 1247 1271 /*FUNCTION PentaRef::GetJacobianInvert {{{*/ 1248 void PentaRef::GetJacobianInvert(IssmDouble* Jinv, IssmDouble* xyz_list,Gauss Penta* gauss){1272 void PentaRef::GetJacobianInvert(IssmDouble* Jinv, IssmDouble* xyz_list,Gauss* gauss){ 1249 1273 1250 1274 /*Jacobian*/ … … 1259 1283 /*}}}*/ 1260 1284 /*FUNCTION PentaRef::GetNodalFunctions{{{*/ 1261 void PentaRef::GetNodalFunctions(IssmDouble* basis,Gauss Penta* gauss){1285 void PentaRef::GetNodalFunctions(IssmDouble* basis,Gauss* gauss_in){ 1262 1286 /*This routine returns the values of the nodal functions at the gaussian point.*/ 1263 1287 1264 1288 _assert_(basis); 1289 1290 /*Cast gauss to GaussPenta*/ 1291 _assert_(gauss_in->Enum()==GaussPentaEnum); 1292 GaussPenta* gauss = dynamic_cast<GaussPenta*>(gauss_in); 1265 1293 1266 1294 /*Get current coordinates in reference element*/ … … 1340 1368 /*}}}*/ 1341 1369 /*FUNCTION PentaRef::GetNodalFunctionsVelocity{{{*/ 1342 void PentaRef::GetNodalFunctionsVelocity(IssmDouble* basis,Gauss Penta* gauss){1370 void PentaRef::GetNodalFunctionsVelocity(IssmDouble* basis,Gauss* gauss){ 1343 1371 /*This routine returns the values of the nodal functions at the gaussian point.*/ 1344 1372 … … 1375 1403 /*}}}*/ 1376 1404 /*FUNCTION PentaRef::GetNodalFunctionsPressure{{{*/ 1377 void PentaRef::GetNodalFunctionsPressure(IssmDouble* basis,Gauss Penta* gauss){1405 void PentaRef::GetNodalFunctionsPressure(IssmDouble* basis,Gauss* gauss){ 1378 1406 /*This routine returns the values of the nodal functions at the gaussian point.*/ 1379 1407 … … 1410 1438 /*}}}*/ 1411 1439 /*FUNCTION PentaRef::GetNodalFunctionsDerivatives{{{*/ 1412 void PentaRef::GetNodalFunctionsDerivatives(IssmDouble* dbasis,IssmDouble* xyz_list, Gauss Penta* gauss){1440 void PentaRef::GetNodalFunctionsDerivatives(IssmDouble* dbasis,IssmDouble* xyz_list, Gauss* gauss){ 1413 1441 1414 1442 /*This routine returns the values of the nodal functions derivatives (with respect to the … … 1445 1473 /*}}}*/ 1446 1474 /*FUNCTION PentaRef::GetNodalFunctionsDerivativesVelocity{{{*/ 1447 void PentaRef::GetNodalFunctionsDerivativesVelocity(IssmDouble* dbasis,IssmDouble* xyz_list, Gauss Penta* gauss){1475 void PentaRef::GetNodalFunctionsDerivativesVelocity(IssmDouble* dbasis,IssmDouble* xyz_list, Gauss* gauss){ 1448 1476 switch(this->element_type){ 1449 1477 case P1P1Enum: … … 1478 1506 /*}}}*/ 1479 1507 /*FUNCTION PentaRef::GetNodalFunctionsDerivativesPressure{{{*/ 1480 void PentaRef::GetNodalFunctionsDerivativesPressure(IssmDouble* dbasis,IssmDouble* xyz_list, Gauss Penta* gauss){1508 void PentaRef::GetNodalFunctionsDerivativesPressure(IssmDouble* dbasis,IssmDouble* xyz_list, Gauss* gauss){ 1481 1509 switch(this->element_type){ 1482 1510 case P1P1Enum: … … 1511 1539 /*}}}*/ 1512 1540 /*FUNCTION PentaRef::GetNodalFunctionsDerivativesReference{{{*/ 1513 void PentaRef::GetNodalFunctionsDerivativesReference(IssmDouble* dbasis,Gauss Penta* gauss){1541 void PentaRef::GetNodalFunctionsDerivativesReference(IssmDouble* dbasis,Gauss* gauss_in){ 1514 1542 1515 1543 /*This routine returns the values of the nodal functions derivatives (with respect to the 1516 1544 * natural coordinate system) at the gaussian point. */ 1517 1545 1518 _assert_(dbasis && gauss); 1546 _assert_(dbasis && gauss_in); 1547 1548 /*Cast gauss to GaussPenta*/ 1549 _assert_(gauss_in->Enum()==GaussPentaEnum); 1550 GaussPenta* gauss = dynamic_cast<GaussPenta*>(gauss_in); 1519 1551 1520 1552 /*Get current coordinates in reference element*/ … … 1739 1771 /*}}}*/ 1740 1772 /*FUNCTION PentaRef::GetNodalFunctionsMINI{{{*/ 1741 void PentaRef::GetNodalFunctionsMINI(IssmDouble* l1l7, Gauss Penta* gauss){1773 void PentaRef::GetNodalFunctionsMINI(IssmDouble* l1l7, Gauss* gauss_in){ 1742 1774 /*This routine returns the values of the nodal functions at the gaussian point.*/ 1775 1776 /*Cast gauss to GaussPenta*/ 1777 _assert_(gauss_in->Enum()==GaussPentaEnum); 1778 GaussPenta* gauss = dynamic_cast<GaussPenta*>(gauss_in); 1743 1779 1744 1780 l1l7[0]=gauss->coord1*(1.0-gauss->coord4)/2.0; … … 1753 1789 /*}}}*/ 1754 1790 /*FUNCTION PentaRef::GetNodalFunctionsMINIDerivatives{{{*/ 1755 void PentaRef::GetNodalFunctionsMINIDerivatives(IssmDouble* dbasismini,IssmDouble* xyz_list, Gauss Penta* gauss){1791 void PentaRef::GetNodalFunctionsMINIDerivatives(IssmDouble* dbasismini,IssmDouble* xyz_list, Gauss* gauss){ 1756 1792 1757 1793 /*This routine returns the values of the nodal functions derivatives (with respect to the … … 1783 1819 /*}}}*/ 1784 1820 /*FUNCTION PentaRef::GetNodalFunctionsMINIDerivativesReference{{{*/ 1785 void PentaRef::GetNodalFunctionsMINIDerivativesReference(IssmDouble* dbasis,GaussPenta* gauss){ 1786 1821 void PentaRef::GetNodalFunctionsMINIDerivativesReference(IssmDouble* dbasis,Gauss* gauss_in){ 1787 1822 /*This routine returns the values of the nodal functions derivatives (with respect to the 1788 1823 * natural coordinate system) at the gaussian point. */ 1824 1825 /*Cast gauss to GaussPenta*/ 1826 _assert_(gauss_in->Enum()==GaussPentaEnum); 1827 GaussPenta* gauss = dynamic_cast<GaussPenta*>(gauss_in); 1828 1829 1789 1830 IssmDouble zeta=gauss->coord4; 1790 1831 … … 1820 1861 /*}}}*/ 1821 1862 /*FUNCTION PentaRef::GetNodalFunctionsP1 {{{*/ 1822 void PentaRef::GetNodalFunctionsP1(IssmDouble* basis, Gauss Penta* gauss){1863 void PentaRef::GetNodalFunctionsP1(IssmDouble* basis, Gauss* gauss_in){ 1823 1864 /*This routine returns the values of the nodal functions at the gaussian point.*/ 1865 1866 /*Cast gauss to GaussPenta*/ 1867 _assert_(gauss_in->Enum()==GaussPentaEnum); 1868 GaussPenta* gauss = dynamic_cast<GaussPenta*>(gauss_in); 1824 1869 1825 1870 basis[0]=gauss->coord1*(1-gauss->coord4)/2.0; … … 1833 1878 /*}}}*/ 1834 1879 /*FUNCTION PentaRef::GetNodalFunctionsP1Derivatives {{{*/ 1835 void PentaRef::GetNodalFunctionsP1Derivatives(IssmDouble* dbasis,IssmDouble* xyz_list, Gauss Penta* gauss){1880 void PentaRef::GetNodalFunctionsP1Derivatives(IssmDouble* dbasis,IssmDouble* xyz_list, Gauss* gauss){ 1836 1881 1837 1882 /*This routine returns the values of the nodal functions derivatives (with respect to the … … 1862 1907 /*}}}*/ 1863 1908 /*FUNCTION PentaRef::GetNodalFunctionsP1DerivativesReference {{{*/ 1864 void PentaRef::GetNodalFunctionsP1DerivativesReference(IssmDouble* dbasis,Gauss Penta* gauss){1909 void PentaRef::GetNodalFunctionsP1DerivativesReference(IssmDouble* dbasis,Gauss* gauss_in){ 1865 1910 1866 1911 /*This routine returns the values of the nodal functions derivatives (with respect to the 1867 1912 * natural coordinate system) at the gaussian point. Those values vary along xi,eta,z */ 1913 1914 /*Cast gauss to GaussPenta*/ 1915 _assert_(gauss_in->Enum()==GaussPentaEnum); 1916 GaussPenta* gauss = dynamic_cast<GaussPenta*>(gauss_in); 1868 1917 1869 1918 IssmDouble zeta=gauss->coord4; … … 1896 1945 /*}}}*/ 1897 1946 /*FUNCTION PentaRef::GetQuadJacobianDeterminant{{{*/ 1898 void PentaRef::GetQuadJacobianDeterminant(IssmDouble* Jdet,IssmDouble xyz_list[4][3],Gauss Penta* gauss){1947 void PentaRef::GetQuadJacobianDeterminant(IssmDouble* Jdet,IssmDouble xyz_list[4][3],Gauss* gauss){ 1899 1948 /*This routine returns the values of the nodal functions at the gaussian point.*/ 1900 1949 … … 1922 1971 /*}}}*/ 1923 1972 /*FUNCTION PentaRef::GetInputValue{{{*/ 1924 void PentaRef::GetInputValue(IssmDouble* pvalue,IssmDouble* plist,Gauss Penta* gauss){1973 void PentaRef::GetInputValue(IssmDouble* pvalue,IssmDouble* plist,Gauss* gauss){ 1925 1974 /*P1 interpolation on Gauss point*/ 1926 1975 … … 1937 1986 /*}}}*/ 1938 1987 /*FUNCTION PentaRef::GetInputDerivativeValue{{{*/ 1939 void PentaRef::GetInputDerivativeValue(IssmDouble* p, IssmDouble* plist,IssmDouble* xyz_list, Gauss Penta* gauss){1988 void PentaRef::GetInputDerivativeValue(IssmDouble* p, IssmDouble* plist,IssmDouble* xyz_list, Gauss* gauss){ 1940 1989 /*From node values of parameter p (p_list[0], p_list[1], p_list[2], 1941 1990 * p_list[3], p_list[4] and p_list[4]), return parameter derivative value at -
issm/trunk-jpl/src/c/classes/Elements/PentaRef.h
r16233 r16818 7 7 #define _PENTAREF_H_ 8 8 9 class Gauss Penta;9 class Gauss; 10 10 class PentaRef{ 11 11 … … 22 22 23 23 /*Numerics*/ 24 void GetNodalFunctions(IssmDouble* basis, GaussPenta* gauss); 25 void GetNodalFunctionsVelocity(IssmDouble* basis, GaussPenta* gauss); 26 void GetNodalFunctionsPressure(IssmDouble* basis, GaussPenta* gauss); 27 void GetNodalFunctionsDerivatives(IssmDouble* dbasis,IssmDouble* xyz_list,GaussPenta* gauss); 28 void GetNodalFunctionsDerivativesVelocity(IssmDouble* dbasis,IssmDouble* xyz_list,GaussPenta* gauss); 29 void GetNodalFunctionsDerivativesPressure(IssmDouble* dbasis,IssmDouble* xyz_list,GaussPenta* gauss); 30 void GetNodalFunctionsDerivativesReference(IssmDouble* dbasis,GaussPenta* gauss); 31 void GetNodalFunctionsP1(IssmDouble* l1l6, GaussPenta* gauss); 32 void GetNodalFunctionsMINI(IssmDouble* l1l7, GaussPenta* gauss); 33 void GetNodalFunctionsP1Derivatives(IssmDouble* dh1dh6,IssmDouble* xyz_list, GaussPenta* gauss); 34 void GetNodalFunctionsMINIDerivatives(IssmDouble* dh1dh7,IssmDouble* xyz_list, GaussPenta* gauss); 35 void GetNodalFunctionsP1DerivativesReference(IssmDouble* dl1dl6,GaussPenta* gauss); 36 void GetNodalFunctionsMINIDerivativesReference(IssmDouble* dl1dl7,GaussPenta* gauss); 37 void GetQuadJacobianDeterminant(IssmDouble* Jdet, IssmDouble xyz_list[4][3],GaussPenta* gauss); 38 void GetJacobian(IssmDouble* J, IssmDouble* xyz_list,GaussPenta* gauss); 39 void GetJacobianDeterminant(IssmDouble* Jdet, IssmDouble* xyz_list,GaussPenta* gauss); 40 void GetTriaJacobianDeterminant(IssmDouble* Jdet, IssmDouble* xyz_list,GaussPenta* gauss); 41 void GetSegmentJacobianDeterminant(IssmDouble* Jdet, IssmDouble* xyz_list,GaussPenta* gauss); 42 void GetJacobianInvert(IssmDouble* Jinv, IssmDouble* xyz_list,GaussPenta* gauss); 43 void GetBSSAHO(IssmDouble* B, IssmDouble* xyz_list, GaussPenta* gauss); 44 void GetBSSAFS(IssmDouble* B, IssmDouble* xyz_list, GaussPenta* gauss); 45 void GetBHO(IssmDouble* B, IssmDouble* xyz_list, GaussPenta* gauss); 46 void GetBFSstrainrate(IssmDouble* B, IssmDouble* xyz_list, GaussPenta* gauss); 47 void GetBFS(IssmDouble* B, IssmDouble* xyz_list, GaussPenta* gauss); 48 void GetBFSGLS(IssmDouble* B, IssmDouble* xyz_list, GaussPenta* gauss); 49 void GetBprimeSSAFS(IssmDouble* Bprime, IssmDouble* xyz_list, GaussPenta* gauss); 50 void GetBprimeHO(IssmDouble* B, IssmDouble* xyz_list, GaussPenta* gauss); 51 void GetBprimeFS(IssmDouble* B_prime, IssmDouble* xyz_list, GaussPenta* gauss); 52 void GetBprimeFSGLS(IssmDouble* B_prime, IssmDouble* xyz_list, GaussPenta* gauss); 53 void GetBprimeVert(IssmDouble* B, IssmDouble* xyz_list, GaussPenta* gauss); 54 void GetBAdvec(IssmDouble* B_advec, IssmDouble* xyz_list, GaussPenta* gauss); 55 void GetBConduct(IssmDouble* B_conduct, IssmDouble* xyz_list, GaussPenta* gauss); 56 void GetBVert(IssmDouble* B, IssmDouble* xyz_list, GaussPenta* gauss); 57 void GetBprimeAdvec(IssmDouble* Bprime_advec, IssmDouble* xyz_list, GaussPenta* gauss); 58 void GetBHOFriction(IssmDouble* L, GaussPenta* gauss); 59 void GetLFS(IssmDouble* LFS, GaussPenta* gauss); 60 void GetLprimeFS(IssmDouble* LprimeFS, IssmDouble* xyz_list, GaussPenta* gauss); 61 void GetLSSAFS(IssmDouble* LSSAFS, GaussPenta* gauss); 62 void GetLprimeSSAFS(IssmDouble* LprimeSSAFS, IssmDouble* xyz_list, GaussPenta* gauss); 63 void GetLFSSSA(IssmDouble* LFSSSA, GaussPenta* gauss); 64 void GetLprimeFSSSA(IssmDouble* LprimeFSSSA, IssmDouble* xyz_list, GaussPenta* gauss); 65 void GetInputValue(IssmDouble* pvalue,IssmDouble* plist, GaussPenta* gauss); 66 void GetInputValue(IssmDouble* pvalue,IssmDouble* plist,GaussTria* gauss){_error_("only PentaGauss are supported");}; 67 void GetInputDerivativeValue(IssmDouble* pvalues, IssmDouble* plist,IssmDouble* xyz_list, GaussPenta* gauss); 68 void GetInputDerivativeValue(IssmDouble* pvalues, IssmDouble* plist,IssmDouble* xyz_list, GaussTria* gauss){_error_("only PentaGauss are supported");}; 24 void GetNodalFunctions(IssmDouble* basis, Gauss* gauss); 25 void GetNodalFunctionsVelocity(IssmDouble* basis, Gauss* gauss); 26 void GetNodalFunctionsPressure(IssmDouble* basis, Gauss* gauss); 27 void GetNodalFunctionsDerivatives(IssmDouble* dbasis,IssmDouble* xyz_list,Gauss* gauss); 28 void GetNodalFunctionsDerivativesVelocity(IssmDouble* dbasis,IssmDouble* xyz_list,Gauss* gauss); 29 void GetNodalFunctionsDerivativesPressure(IssmDouble* dbasis,IssmDouble* xyz_list,Gauss* gauss); 30 void GetNodalFunctionsDerivativesReference(IssmDouble* dbasis,Gauss* gauss); 31 void GetNodalFunctionsP1(IssmDouble* l1l6, Gauss* gauss); 32 void GetNodalFunctionsMINI(IssmDouble* l1l7, Gauss* gauss); 33 void GetNodalFunctionsP1Derivatives(IssmDouble* dh1dh6,IssmDouble* xyz_list, Gauss* gauss); 34 void GetNodalFunctionsMINIDerivatives(IssmDouble* dh1dh7,IssmDouble* xyz_list, Gauss* gauss); 35 void GetNodalFunctionsP1DerivativesReference(IssmDouble* dl1dl6,Gauss* gauss); 36 void GetNodalFunctionsMINIDerivativesReference(IssmDouble* dl1dl7,Gauss* gauss); 37 void GetQuadJacobianDeterminant(IssmDouble* Jdet, IssmDouble xyz_list[4][3],Gauss* gauss); 38 void GetJacobian(IssmDouble* J, IssmDouble* xyz_list,Gauss* gauss); 39 void GetJacobianDeterminant(IssmDouble* Jdet, IssmDouble* xyz_list,Gauss* gauss); 40 void GetTriaJacobianDeterminant(IssmDouble* Jdet, IssmDouble* xyz_list,Gauss* gauss); 41 void GetSegmentJacobianDeterminant(IssmDouble* Jdet, IssmDouble* xyz_list,Gauss* gauss); 42 void GetJacobianInvert(IssmDouble* Jinv, IssmDouble* xyz_list,Gauss* gauss); 43 void GetBSSAHO(IssmDouble* B, IssmDouble* xyz_list, Gauss* gauss); 44 void GetBSSAFS(IssmDouble* B, IssmDouble* xyz_list, Gauss* gauss); 45 void GetBHO(IssmDouble* B, IssmDouble* xyz_list, Gauss* gauss); 46 void GetBFSstrainrate(IssmDouble* B, IssmDouble* xyz_list, Gauss* gauss); 47 void GetBFS(IssmDouble* B, IssmDouble* xyz_list, Gauss* gauss); 48 void GetBFSGLS(IssmDouble* B, IssmDouble* xyz_list, Gauss* gauss); 49 void GetBprimeSSAFS(IssmDouble* Bprime, IssmDouble* xyz_list, Gauss* gauss); 50 void GetBprimeHO(IssmDouble* B, IssmDouble* xyz_list, Gauss* gauss); 51 void GetBprimeFS(IssmDouble* B_prime, IssmDouble* xyz_list, Gauss* gauss); 52 void GetBprimeFSGLS(IssmDouble* B_prime, IssmDouble* xyz_list, Gauss* gauss); 53 void GetBprimeVert(IssmDouble* B, IssmDouble* xyz_list, Gauss* gauss); 54 void GetBAdvec(IssmDouble* B_advec, IssmDouble* xyz_list, Gauss* gauss); 55 void GetBConduct(IssmDouble* B_conduct, IssmDouble* xyz_list, Gauss* gauss); 56 void GetBVert(IssmDouble* B, IssmDouble* xyz_list, Gauss* gauss); 57 void GetBprimeAdvec(IssmDouble* Bprime_advec, IssmDouble* xyz_list, Gauss* gauss); 58 void GetBHOFriction(IssmDouble* L, Gauss* gauss); 59 void GetLFS(IssmDouble* LFS, Gauss* gauss); 60 void GetLprimeFS(IssmDouble* LprimeFS, IssmDouble* xyz_list, Gauss* gauss); 61 void GetLSSAFS(IssmDouble* LSSAFS, Gauss* gauss); 62 void GetLprimeSSAFS(IssmDouble* LprimeSSAFS, IssmDouble* xyz_list, Gauss* gauss); 63 void GetLFSSSA(IssmDouble* LFSSSA, Gauss* gauss); 64 void GetLprimeFSSSA(IssmDouble* LprimeFSSSA, IssmDouble* xyz_list, Gauss* gauss); 65 void GetInputValue(IssmDouble* pvalue,IssmDouble* plist, Gauss* gauss); 66 void GetInputDerivativeValue(IssmDouble* pvalues, IssmDouble* plist,IssmDouble* xyz_list, Gauss* gauss); 69 67 70 68 void BasalNodeIndices(int* pnumindices,int** pindices,int finiteelement); -
issm/trunk-jpl/src/c/classes/Elements/Seg.h
r16817 r16818 138 138 Gauss* NewGaussBase(int order){_error_("not implemented yet");}; 139 139 ElementVector* NewElementVector(int approximation_enum){_error_("not implemented yet");}; 140 ElementMatrix* NewElementMatrix(int approximation_enum){_error_("not implemented yet");}; 140 141 void ViscousHeating(IssmDouble* pphi,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,Input* vz_input){_error_("not implemented yet");}; 142 void ViscositySSA(IssmDouble* pviscosity,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input){_error_("not implemented");}; 141 143 #ifdef _HAVE_THERMAL_ 142 144 void UpdateBasalConstraintsEnthalpy(void){_error_("not implemented yet");}; … … 178 180 void TransformSolutionCoord(IssmDouble* values,int numnodes,int transformenum){_error_("not implemented yet");}; 179 181 void TransformSolutionCoord(IssmDouble* values,int numnodes,int* transformenum_list){_error_("not implemented yet");}; 182 void TransformStiffnessMatrixCoord(ElementMatrix* Ke,int transformenum){_error_("not implemented yet");}; 183 void TransformStiffnessMatrixCoord(ElementMatrix* Ke,int* transformenum_list){_error_("not implemented yet");}; 184 void TransformStiffnessMatrixCoord(ElementMatrix* Ke,int numnodes,int transformenum){_error_("not implemented yet");}; 185 void TransformStiffnessMatrixCoord(ElementMatrix* Ke,int numnodes,int* transformenum_list){_error_("not implemented yet");}; 180 186 void UpdateConstraintsExtrudeFromBase(){_error_("not implemented");}; 181 187 void UpdateConstraintsExtrudeFromTop(){_error_("not implemented");}; -
issm/trunk-jpl/src/c/classes/Elements/Tria.cpp
r16817 r16818 1502 1502 } 1503 1503 /*}}}*/ 1504 /*FUNCTION Tria::GetStrainRate2d(IssmDouble* epsilon,IssmDouble* xyz_list, Gauss Tria* gauss, Input* vx_input, Input* vy_input){{{*/1505 void Tria::GetStrainRate2d(IssmDouble* epsilon,IssmDouble* xyz_list, Gauss Tria* gauss, Input* vx_input, Input* vy_input){1504 /*FUNCTION Tria::GetStrainRate2d(IssmDouble* epsilon,IssmDouble* xyz_list, Gauss* gauss, Input* vx_input, Input* vy_input){{{*/ 1505 void Tria::GetStrainRate2d(IssmDouble* epsilon,IssmDouble* xyz_list, Gauss* gauss, Input* vx_input, Input* vy_input){ 1506 1506 /*Compute the 2d Strain Rate (3 components): 1507 1507 * epsilon=[exx eyy exy] */ … … 2194 2194 } 2195 2195 /*}}}*/ 2196 /*FUNCTION Tria::NewElementMatrix{{{*/ 2197 ElementMatrix* Tria::NewElementMatrix(int approximation_enum){ 2198 return new ElementMatrix(nodes,this->NumberofNodes(),this->parameters,approximation_enum); 2199 } 2200 /*}}}*/ 2196 2201 /*FUNCTION Tria::NoIceInElement {{{*/ 2197 2202 bool Tria::NoIceInElement(){ … … 2712 2717 } 2713 2718 /*}}}*/ 2714 /*FUNCTION Tria::TransformSolutionCoord {{{*/2719 /*FUNCTION Tria::TransformSolutionCoord(IssmDouble* values,int transformenum){{{*/ 2715 2720 void Tria::TransformSolutionCoord(IssmDouble* values,int transformenum){ 2716 2721 … … 2719 2724 } 2720 2725 /*}}}*/ 2721 /*FUNCTION Tria::TransformSolutionCoord {{{*/2726 /*FUNCTION Tria::TransformSolutionCoord(IssmDouble* values,int* transformenum_list){{{*/ 2722 2727 void Tria::TransformSolutionCoord(IssmDouble* values,int* transformenum_list){ 2723 2728 … … 2726 2731 } 2727 2732 /*}}}*/ 2728 /*FUNCTION Tria::TransformLoadVectorCoord {{{*/2733 /*FUNCTION Tria::TransformLoadVectorCoord(ElementVector* pe,int transformenum){{{*/ 2729 2734 void Tria::TransformLoadVectorCoord(ElementVector* pe,int transformenum){ 2730 2735 … … 2733 2738 } 2734 2739 /*}}}*/ 2735 /*FUNCTION Tria::TransformLoadVectorCoord {{{*/2740 /*FUNCTION Tria::TransformLoadVectorCoord(ElementVector* pe,int* transformenum_list){{{*/ 2736 2741 void Tria::TransformLoadVectorCoord(ElementVector* pe,int* transformenum_list){ 2737 2742 2738 2743 ::TransformLoadVectorCoord(pe,this->nodes,this->NumberofNodes(),transformenum_list); 2744 2745 } 2746 /*}}}*/ 2747 /*FUNCTION Tria::TransformStiffnessMatrixCoord(ElementMatrix* pe,int transformenum){{{*/ 2748 void Tria::TransformStiffnessMatrixCoord(ElementMatrix* Ke,int transformenum){ 2749 2750 ::TransformStiffnessMatrixCoord(Ke,this->nodes,this->NumberofNodes(),transformenum); 2739 2751 2740 2752 } … … 2884 2896 } 2885 2897 /*}}}*/ 2898 /*FUNCTION Tria::ViscositySSA{{{*/ 2899 void Tria::ViscositySSA(IssmDouble* pviscosity,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input){ 2900 2901 /*Intermediaries*/ 2902 IssmDouble viscosity; 2903 IssmDouble epsilon[3];/* epsilon=[exx,eyy,exy]; */ 2904 2905 this->GetStrainRate2d(&epsilon[0],xyz_list,gauss,vx_input,vy_input); 2906 material->GetViscosity2d(&viscosity, &epsilon[0]); 2907 2908 /*Assign output pointer*/ 2909 *pviscosity=viscosity; 2910 } 2911 /*}}}*/ 2886 2912 2887 2913 #ifdef _HAVE_RESPONSES_ … … 3531 3557 3532 3558 /*Transform Coordinate System*/ 3533 TransformStiffnessMatrixCoord(Ke,nodes,(vnumnodes+pnumnodes),cs_list);3559 ::TransformStiffnessMatrixCoord(Ke,nodes,(vnumnodes+pnumnodes),cs_list); 3534 3560 3535 3561 /*Clean up and return*/ … … 3604 3630 3605 3631 /*DO NOT Transform Coordinate System: this stiffness matrix is already expressed in tangential coordinates*/ 3606 // TransformStiffnessMatrixCoord(Ke,nodes,(vnumnodes+pnumnodes),cs_list);3632 //::TransformStiffnessMatrixCoord(Ke,nodes,(vnumnodes+pnumnodes),cs_list); 3607 3633 3608 3634 /*Clean up and return*/ … … 3684 3710 3685 3711 /*Transform Coordinate System*/ 3686 TransformStiffnessMatrixCoord(Ke,nodes,numnodes,XYEnum);3712 ::TransformStiffnessMatrixCoord(Ke,nodes,numnodes,XYEnum); 3687 3713 3688 3714 /*Clean up and return*/ … … 3769 3795 3770 3796 /*Transform Coordinate System*/ 3771 TransformStiffnessMatrixCoord(Ke,nodes,numnodes,XYEnum);3797 ::TransformStiffnessMatrixCoord(Ke,nodes,numnodes,XYEnum); 3772 3798 3773 3799 /*Clean up and return*/ … … 4299 4325 4300 4326 /*Transform Coordinate System*/ 4301 TransformStiffnessMatrixCoord(Ke,nodes,numnodes,XYEnum);4327 ::TransformStiffnessMatrixCoord(Ke,nodes,numnodes,XYEnum); 4302 4328 4303 4329 /*Clean up and return*/ … … 6016 6042 6017 6043 /*Transform Coordinate System*/ 6018 TransformStiffnessMatrixCoord(Ke,nodes,numnodes,XYEnum);6044 ::TransformStiffnessMatrixCoord(Ke,nodes,numnodes,XYEnum); 6019 6045 6020 6046 /*Clean up and return*/ -
issm/trunk-jpl/src/c/classes/Elements/Tria.h
r16817 r16818 22 22 class ElementVector; 23 23 class Vertex; 24 class GaussTria; 24 25 25 26 #include "../../shared/Exceptions/exceptions.h" … … 265 266 void GetInputValue(IssmDouble* pvalue,int enum_type); 266 267 void GetMaterialInputValue(IssmDouble* pvalue,Node* node,int enumtype); 267 void GetStrainRate2d(IssmDouble* epsilon,IssmDouble* xyz_list, GaussTria* gauss, Input* vx_input, Input* vy_input);268 void GetStrainRate2d(IssmDouble* epsilon,IssmDouble* xyz_list,Gauss* gauss, Input* vx_input, Input* vy_input); 268 269 void InputChangeName(int enum_type,int enum_type_old); 269 270 void InputUpdateFromSolutionOneDof(IssmDouble* solution,int enum_type); … … 277 278 Gauss* NewGaussBase(int order){_error_("not implemented yet");}; 278 279 ElementVector* NewElementVector(int approximation_enum); 280 ElementMatrix* NewElementMatrix(int approximation_enum); 279 281 void NodalFunctions(IssmDouble* basis,Gauss* gauss); 280 282 void NodalFunctionsDerivatives(IssmDouble* dbasis,IssmDouble* xyz_list,Gauss* gauss); … … 293 295 void TransformSolutionCoord(IssmDouble* values,int numnodes,int transformenum){_error_("not implemented yet");}; 294 296 void TransformSolutionCoord(IssmDouble* values,int numnodes,int* transformenum_list){_error_("not implemented yet");}; 297 void TransformStiffnessMatrixCoord(ElementMatrix* Ke,int transformenum); 298 void TransformStiffnessMatrixCoord(ElementMatrix* Ke,int* transformenum_list){_error_("not implemented yet");}; 299 void TransformStiffnessMatrixCoord(ElementMatrix* Ke,int numnodes,int transformenum){_error_("not implemented yet");}; 300 void TransformStiffnessMatrixCoord(ElementMatrix* Ke,int numnodes,int* transformenum_list){_error_("not implemented yet");}; 295 301 void ViscousHeating(IssmDouble* pphi,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,Input* vz_input){_error_("not implemented yet");}; 302 void ViscositySSA(IssmDouble* pviscosity,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input); 303 296 304 #ifdef _HAVE_STRESSBALANCE_ 297 305 ElementMatrix* CreateKMatrixStressbalanceSSA(void); -
issm/trunk-jpl/src/c/classes/Elements/TriaRef.cpp
r16729 r16818 52 52 /*Reference Element numerics*/ 53 53 /*FUNCTION TriaRef::GetBHydro {{{*/ 54 void TriaRef::GetBHydro(IssmDouble* B, IssmDouble* xyz_list, Gauss Tria* gauss){54 void TriaRef::GetBHydro(IssmDouble* B, IssmDouble* xyz_list, Gauss* gauss){ 55 55 /*Compute B matrix. B=[B1 B2 B3] where Bi is of size 3*NDOF2. 56 56 * For node i, Bi can be expressed in the actual coordinate system … … 81 81 /*}}}*/ 82 82 /*FUNCTION TriaRef::GetBSSA {{{*/ 83 void TriaRef::GetBSSA(IssmDouble* B, IssmDouble* xyz_list, Gauss Tria* gauss){83 void TriaRef::GetBSSA(IssmDouble* B, IssmDouble* xyz_list, Gauss* gauss){ 84 84 /*Compute B matrix. B=[B1 B2 B3] where Bi is of size 3*NDOF2. 85 85 * For node i, Bi can be expressed in the actual coordinate system … … 115 115 /*}}}*/ 116 116 /*FUNCTION TriaRef::GetBSSAFS {{{*/ 117 void TriaRef::GetBSSAFS(IssmDouble* B, IssmDouble* xyz_list, Gauss Tria* gauss){117 void TriaRef::GetBSSAFS(IssmDouble* B, IssmDouble* xyz_list, Gauss* gauss){ 118 118 119 119 /*Compute B matrix. B=[B1 B2 B3] where Bi is of size 3*NDOF2. … … 150 150 /*}}}*/ 151 151 /*FUNCTION TriaRef::GetSegmentBFlux{{{*/ 152 void TriaRef::GetSegmentBFlux(IssmDouble* B,Gauss Tria* gauss, int index1,int index2){152 void TriaRef::GetSegmentBFlux(IssmDouble* B,Gauss* gauss, int index1,int index2){ 153 153 /*Compute B matrix. B=[phi1 phi2 -phi3 -phi4] 154 154 * … … 176 176 /*}}}*/ 177 177 /*FUNCTION TriaRef::GetSegmentBprimeFlux{{{*/ 178 void TriaRef::GetSegmentBprimeFlux(IssmDouble* Bprime,Gauss Tria* gauss, int index1,int index2){178 void TriaRef::GetSegmentBprimeFlux(IssmDouble* Bprime,Gauss* gauss, int index1,int index2){ 179 179 /*Compute Bprime matrix. Bprime=[phi1 phi2 phi3 phi4] 180 180 * … … 202 202 /*}}}*/ 203 203 /*FUNCTION TriaRef::GetBExtrusion{{{*/ 204 void TriaRef::GetBExtrusion(IssmDouble* B, IssmDouble* xyz_list, Gauss Tria* gauss){204 void TriaRef::GetBExtrusion(IssmDouble* B, IssmDouble* xyz_list, Gauss* gauss){ 205 205 /* Compute B matrix. B=[dh1/dz dh2/dz dh3/dz dh4/dz dh5/dz dh6/dz]; 206 206 where hi is the interpolation function for node i.*/ … … 223 223 /*}}}*/ 224 224 /*FUNCTION TriaRef::GetBFS {{{*/ 225 void TriaRef::GetBFS(IssmDouble* B, IssmDouble* xyz_list, Gauss Tria* gauss){225 void TriaRef::GetBFS(IssmDouble* B, IssmDouble* xyz_list, Gauss* gauss){ 226 226 /*Compute B matrix. B=[Bv1 Bv2 ... Bp1 Bp2 ...] where Bvi is of size 3*NDOF3. 227 227 * For node i, Bvi can be expressed in the actual coordinate system … … 278 278 /*}}}*/ 279 279 /*FUNCTION TriaRef::GetBprimeFS {{{*/ 280 void TriaRef::GetBprimeFS(IssmDouble* B_prime, IssmDouble* xyz_list, Gauss Tria* gauss){280 void TriaRef::GetBprimeFS(IssmDouble* B_prime, IssmDouble* xyz_list, Gauss* gauss){ 281 281 /* Compute B' matrix. B'=[B1' B2' B3' B4' B5' B6' Bb'] where Bi' is of size 3*NDOF2. 282 282 * For node i, Bi' can be expressed in the actual coordinate system … … 333 333 /*}}}*/ 334 334 /*FUNCTION TriaRef::GetBMasstransport{{{*/ 335 void TriaRef::GetBMasstransport(IssmDouble* B, IssmDouble* xyz_list, Gauss Tria* gauss){335 void TriaRef::GetBMasstransport(IssmDouble* B, IssmDouble* xyz_list, Gauss* gauss){ 336 336 /*Compute B matrix. B=[B1 B2 B3] where Bi is of size 3*NDOF2. 337 337 * For node i, Bi can be expressed in the actual coordinate system … … 362 362 /*}}}*/ 363 363 /*FUNCTION TriaRef::GetBprimeSSA {{{*/ 364 void TriaRef::GetBprimeSSA(IssmDouble* Bprime, IssmDouble* xyz_list, Gauss Tria* gauss){364 void TriaRef::GetBprimeSSA(IssmDouble* Bprime, IssmDouble* xyz_list, Gauss* gauss){ 365 365 366 366 /*Compute B' matrix. B'=[B1' B2' B3'] where Bi' is of size 3*NDOF2. … … 397 397 /*}}}*/ 398 398 /*FUNCTION TriaRef::GetBprimeSSAFS {{{*/ 399 void TriaRef::GetBprimeSSAFS(IssmDouble* Bprime, IssmDouble* xyz_list, Gauss Tria* gauss){399 void TriaRef::GetBprimeSSAFS(IssmDouble* Bprime, IssmDouble* xyz_list, Gauss* gauss){ 400 400 /*Compute Bprime matrix. Bprime=[Bprime1 Bprime2 Bprime3] where Bprimei is of size 3*NDOF2. 401 401 * For node i, Bprimei can be expressed in the actual coordinate system … … 434 434 /*}}}*/ 435 435 /*FUNCTION TriaRef::GetBprimeMasstransport{{{*/ 436 void TriaRef::GetBprimeMasstransport(IssmDouble* Bprime, IssmDouble* xyz_list, Gauss Tria* gauss){436 void TriaRef::GetBprimeMasstransport(IssmDouble* Bprime, IssmDouble* xyz_list, Gauss* gauss){ 437 437 /*Compute B' matrix. B'=[B1' B2' B3'] where Bi' is of size 3*NDOF2. 438 438 * For node i, Bi' can be expressed in the actual coordinate system … … 463 463 /*}}}*/ 464 464 /*FUNCTION TriaRef::GetBSSAFriction{{{*/ 465 void TriaRef::GetBSSAFriction(IssmDouble* B, IssmDouble* xyz_list,Gauss Tria* gauss){465 void TriaRef::GetBSSAFriction(IssmDouble* B, IssmDouble* xyz_list,Gauss* gauss){ 466 466 /*Compute B matrix. B=[B1 B2 B3] where Bi is square and of size 2. 467 467 * For node i, Bi can be expressed in the actual coordinate system … … 494 494 /*}}}*/ 495 495 /*FUNCTION TriaRef::GetLFS{{{*/ 496 void TriaRef::GetLFS(IssmDouble* LFS, Gauss Tria* gauss){496 void TriaRef::GetLFS(IssmDouble* LFS, Gauss* gauss){ 497 497 /* Compute L matrix. L=[L1 L2 L3] where Li is square and of size numdof. 498 498 * For node i, Li can be expressed in the actual coordinate system … … 527 527 /*}}}*/ 528 528 /*FUNCTION TriaRef::GetJacobian{{{*/ 529 void TriaRef::GetJacobian(IssmDouble* J, IssmDouble* xyz_list,Gauss Tria* gauss){529 void TriaRef::GetJacobian(IssmDouble* J, IssmDouble* xyz_list,Gauss* gauss){ 530 530 /*The Jacobian is constant over the element, discard the gaussian points. 531 531 * J is assumed to have been allocated of size NDOF2xNDOF2.*/ … … 545 545 /*}}}*/ 546 546 /*FUNCTION TriaRef::GetSegmentJacobianDeterminant{{{*/ 547 void TriaRef::GetSegmentJacobianDeterminant(IssmDouble* Jdet, IssmDouble* xyz_list,Gauss Tria* gauss){547 void TriaRef::GetSegmentJacobianDeterminant(IssmDouble* Jdet, IssmDouble* xyz_list,Gauss* gauss){ 548 548 /*The Jacobian determinant is constant over the element, discard the gaussian points. 549 549 * J is assumed to have been allocated*/ … … 560 560 /*}}}*/ 561 561 /*FUNCTION TriaRef::GetJacobianDeterminant{{{*/ 562 void TriaRef::GetJacobianDeterminant(IssmDouble* Jdet, IssmDouble* xyz_list,Gauss Tria* gauss){562 void TriaRef::GetJacobianDeterminant(IssmDouble* Jdet, IssmDouble* xyz_list,Gauss* gauss){ 563 563 /*The Jacobian determinant is constant over the element, discard the gaussian points. 564 564 * J is assumed to have been allocated of size NDOF2xNDOF2.*/ … … 575 575 /*}}}*/ 576 576 /*FUNCTION TriaRef::GetJacobianInvert{{{*/ 577 void TriaRef::GetJacobianInvert(IssmDouble* Jinv, IssmDouble* xyz_list,Gauss Tria* gauss){577 void TriaRef::GetJacobianInvert(IssmDouble* Jinv, IssmDouble* xyz_list,Gauss* gauss){ 578 578 579 579 /*Jacobian*/ … … 588 588 } 589 589 /*}}}*/ 590 /*FUNCTION TriaRef::GetNodalFunctions(IssmDouble* basis,Gauss Tria* gauss){{{*/591 void TriaRef::GetNodalFunctions(IssmDouble* basis,Gauss Tria* gauss){590 /*FUNCTION TriaRef::GetNodalFunctions(IssmDouble* basis,Gauss* gauss){{{*/ 591 void TriaRef::GetNodalFunctions(IssmDouble* basis,Gauss* gauss){ 592 592 /*This routine returns the values of the nodal functions at the gaussian point.*/ 593 593 … … 597 597 } 598 598 /*}}}*/ 599 /*FUNCTION TriaRef::GetNodalFunctions(IssmDouble* basis,Gauss Tria* gauss,int finiteelement){{{*/600 void TriaRef::GetNodalFunctions(IssmDouble* basis,Gauss Tria* gauss,int finiteelement){599 /*FUNCTION TriaRef::GetNodalFunctions(IssmDouble* basis,Gauss* gauss,int finiteelement){{{*/ 600 void TriaRef::GetNodalFunctions(IssmDouble* basis,Gauss* gauss_in,int finiteelement){ 601 601 /*This routine returns the values of the nodal functions at the gaussian point.*/ 602 602 603 603 _assert_(basis); 604 605 /*Cast gauss to GaussTria*/ 606 _assert_(gauss_in->Enum()==GaussTriaEnum); 607 GaussTria* gauss = dynamic_cast<GaussTria*>(gauss_in); 604 608 605 609 switch(finiteelement){ … … 633 637 /*}}}*/ 634 638 /*FUNCTION TriaRef::GetNodalFunctionsVelocity{{{*/ 635 void TriaRef::GetNodalFunctionsVelocity(IssmDouble* basis,Gauss Tria* gauss){639 void TriaRef::GetNodalFunctionsVelocity(IssmDouble* basis,Gauss* gauss){ 636 640 /*This routine returns the values of the nodal functions at the gaussian point.*/ 637 641 … … 668 672 /*}}}*/ 669 673 /*FUNCTION TriaRef::GetNodalFunctionsPressure{{{*/ 670 void TriaRef::GetNodalFunctionsPressure(IssmDouble* basis,Gauss Tria* gauss){674 void TriaRef::GetNodalFunctionsPressure(IssmDouble* basis,Gauss* gauss){ 671 675 /*This routine returns the values of the nodal functions at the gaussian point.*/ 672 676 … … 703 707 /*}}}*/ 704 708 /*FUNCTION TriaRef::GetSegmentNodalFunctions{{{*/ 705 void TriaRef::GetSegmentNodalFunctions(IssmDouble* basis,Gauss Tria* gauss,int index1,int index2){709 void TriaRef::GetSegmentNodalFunctions(IssmDouble* basis,Gauss* gauss,int index1,int index2){ 706 710 /*This routine returns the values of the nodal functions at the gaussian point.*/ 707 711 … … 742 746 } 743 747 /*}}}*/ 744 /*FUNCTION TriaRef::GetNodalFunctionsDerivatives(IssmDouble* dbasis,IssmDouble* xyz_list, Gauss Tria* gauss){{{*/745 void TriaRef::GetNodalFunctionsDerivatives(IssmDouble* dbasis,IssmDouble* xyz_list, Gauss Tria* gauss){748 /*FUNCTION TriaRef::GetNodalFunctionsDerivatives(IssmDouble* dbasis,IssmDouble* xyz_list, Gauss* gauss){{{*/ 749 void TriaRef::GetNodalFunctionsDerivatives(IssmDouble* dbasis,IssmDouble* xyz_list, Gauss* gauss){ 746 750 747 751 GetNodalFunctionsDerivatives(dbasis,xyz_list,gauss,this->element_type); … … 749 753 } 750 754 /*}}}*/ 751 /*FUNCTION TriaRef::GetNodalFunctionsDerivatives(IssmDouble* dbasis,IssmDouble* xyz_list, Gauss Tria* gauss,int finiteelement){{{*/752 void TriaRef::GetNodalFunctionsDerivatives(IssmDouble* dbasis,IssmDouble* xyz_list, Gauss Tria* gauss,int finiteelement){755 /*FUNCTION TriaRef::GetNodalFunctionsDerivatives(IssmDouble* dbasis,IssmDouble* xyz_list, Gauss* gauss,int finiteelement){{{*/ 756 void TriaRef::GetNodalFunctionsDerivatives(IssmDouble* dbasis,IssmDouble* xyz_list, Gauss* gauss,int finiteelement){ 753 757 754 758 /*This routine returns the values of the nodal functions derivatives (with respect to the … … 781 785 /*}}}*/ 782 786 /*FUNCTION TriaRef::GetNodalFunctionsDerivativesPressure{{{*/ 783 void TriaRef::GetNodalFunctionsDerivativesPressure(IssmDouble* dbasis,IssmDouble* xyz_list, Gauss Tria* gauss){787 void TriaRef::GetNodalFunctionsDerivativesPressure(IssmDouble* dbasis,IssmDouble* xyz_list, Gauss* gauss){ 784 788 switch(this->element_type){ 785 789 case P1P1Enum: … … 814 818 /*}}}*/ 815 819 /*FUNCTION TriaRef::GetNodalFunctionsDerivativesVelocity{{{*/ 816 void TriaRef::GetNodalFunctionsDerivativesVelocity(IssmDouble* dbasis,IssmDouble* xyz_list, Gauss Tria* gauss){820 void TriaRef::GetNodalFunctionsDerivativesVelocity(IssmDouble* dbasis,IssmDouble* xyz_list, Gauss* gauss){ 817 821 switch(this->element_type){ 818 822 case P1P1Enum: … … 846 850 } 847 851 /*}}}*/ 848 /*FUNCTION TriaRef::GetNodalFunctionsDerivativesReference(IssmDouble* dbasis,Gauss Tria* gauss){{{*/849 void TriaRef::GetNodalFunctionsDerivativesReference(IssmDouble* dbasis,Gauss Tria* gauss){852 /*FUNCTION TriaRef::GetNodalFunctionsDerivativesReference(IssmDouble* dbasis,Gauss* gauss){{{*/ 853 void TriaRef::GetNodalFunctionsDerivativesReference(IssmDouble* dbasis,Gauss* gauss){ 850 854 /*This routine returns the values of the nodal functions derivatives (with respect to the 851 855 * natural coordinate system) at the gaussian point. */ … … 855 859 } 856 860 /*}}}*/ 857 /*FUNCTION TriaRef::GetNodalFunctionsDerivativesReference(IssmDouble* dbasis,Gauss Tria* gauss,int finiteelement){{{*/858 void TriaRef::GetNodalFunctionsDerivativesReference(IssmDouble* dbasis,Gauss Tria* gauss,int finiteelement){861 /*FUNCTION TriaRef::GetNodalFunctionsDerivativesReference(IssmDouble* dbasis,Gauss* gauss,int finiteelement){{{*/ 862 void TriaRef::GetNodalFunctionsDerivativesReference(IssmDouble* dbasis,Gauss* gauss_in,int finiteelement){ 859 863 /*This routine returns the values of the nodal functions derivatives (with respect to the 860 864 * natural coordinate system) at the gaussian point. */ 861 865 862 _assert_(dbasis && gauss); 866 _assert_(dbasis && gauss_in); 867 868 /*Cast gauss to GaussTria*/ 869 _assert_(gauss_in->Enum()==GaussTriaEnum); 870 GaussTria* gauss = dynamic_cast<GaussTria*>(gauss_in); 863 871 864 872 switch(finiteelement){ … … 915 923 /*}}}*/ 916 924 /*FUNCTION TriaRef::GetInputDerivativeValue{{{*/ 917 void TriaRef::GetInputDerivativeValue(IssmDouble* p, IssmDouble* plist,IssmDouble* xyz_list, Gauss Tria* gauss){925 void TriaRef::GetInputDerivativeValue(IssmDouble* p, IssmDouble* plist,IssmDouble* xyz_list, Gauss* gauss){ 918 926 919 927 /*From node values of parameter p (plist[0],plist[1],plist[2]), return parameter derivative value at gaussian … … 947 955 } 948 956 /*}}}*/ 949 /*FUNCTION TriaRef::GetInputValue(IssmDouble* p, IssmDouble* plist, Gauss Tria* gauss){{{*/950 void TriaRef::GetInputValue(IssmDouble* p, IssmDouble* plist, Gauss Tria* gauss){957 /*FUNCTION TriaRef::GetInputValue(IssmDouble* p, IssmDouble* plist, Gauss* gauss){{{*/ 958 void TriaRef::GetInputValue(IssmDouble* p, IssmDouble* plist, Gauss* gauss){ 951 959 952 960 GetInputValue(p,plist,gauss,this->element_type); 953 961 } 954 962 /*}}}*/ 955 /*FUNCTION TriaRef::GetInputValue(IssmDouble* p, IssmDouble* plist, Gauss Tria* gauss,int finiteelement){{{*/956 void TriaRef::GetInputValue(IssmDouble* p, IssmDouble* plist, Gauss Tria* gauss,int finiteelement){963 /*FUNCTION TriaRef::GetInputValue(IssmDouble* p, IssmDouble* plist, Gauss* gauss,int finiteelement){{{*/ 964 void TriaRef::GetInputValue(IssmDouble* p, IssmDouble* plist, Gauss* gauss,int finiteelement){ 957 965 958 966 /*Output*/ -
issm/trunk-jpl/src/c/classes/Elements/TriaRef.h
r16442 r16818 7 7 #define _TRIAREF_H_ 8 8 9 class Gauss Tria;9 class Gauss; 10 10 11 11 class TriaRef{ … … 23 23 24 24 /*Numerics*/ 25 void GetBExtrusion(IssmDouble* B_prime, IssmDouble* xyz_list, Gauss Tria* gauss);26 void GetBFS(IssmDouble* B_prime, IssmDouble* xyz_list, Gauss Tria* gauss);27 void GetBSSA(IssmDouble* B, IssmDouble* xyz_list, Gauss Tria* gauss);28 void GetBSSAFS(IssmDouble* B , IssmDouble* xyz_list, Gauss Tria* gauss);29 void GetBprimeFS(IssmDouble* B_prime, IssmDouble* xyz_list, Gauss Tria* gauss);30 void GetBprimeSSA(IssmDouble* Bprime, IssmDouble* xyz_list, Gauss Tria* gauss);31 void GetBprimeSSAFS(IssmDouble* Bprime, IssmDouble* xyz_list, Gauss Tria* gauss);32 void GetBprimeMasstransport(IssmDouble* Bprime, IssmDouble* xyz_list, Gauss Tria* gauss);33 void GetBMasstransport(IssmDouble* B, IssmDouble* xyz_list, Gauss Tria* gauss);34 void GetBHydro(IssmDouble* B, IssmDouble* xyz_list, Gauss Tria* gauss);35 void GetBSSAFriction(IssmDouble* L, IssmDouble* xyz_list,Gauss Tria* gauss);36 void GetJacobian(IssmDouble* J, IssmDouble* xyz_list,Gauss Tria* gauss);37 void GetSegmentJacobianDeterminant(IssmDouble* Jdet, IssmDouble* xyz_list,Gauss Tria* gauss);38 void GetJacobianDeterminant(IssmDouble* Jdet, IssmDouble* xyz_list,Gauss Tria* gauss);39 void GetJacobianInvert(IssmDouble* Jinv, IssmDouble* xyz_list,Gauss Tria* gauss);40 void GetLFS(IssmDouble* LFS, Gauss Tria* gauss);41 void GetNodalFunctions(IssmDouble* basis,Gauss Tria* gauss);42 void GetNodalFunctions(IssmDouble* basis,Gauss Tria* gauss,int finiteelement);43 void GetNodalFunctionsVelocity(IssmDouble* basis, Gauss Tria* gauss);44 void GetNodalFunctionsPressure(IssmDouble* basis, Gauss Tria* gauss);45 void GetSegmentNodalFunctions(IssmDouble* basis,Gauss Tria* gauss, int index1,int index2);46 void GetSegmentBFlux(IssmDouble* B,Gauss Tria* gauss, int index1,int index2);47 void GetSegmentBprimeFlux(IssmDouble* Bprime,Gauss Tria* gauss, int index1,int index2);48 void GetNodalFunctionsDerivatives(IssmDouble* dbasis,IssmDouble* xyz_list, Gauss Tria* gauss);49 void GetNodalFunctionsDerivatives(IssmDouble* dbasis,IssmDouble* xyz_list, Gauss Tria* gauss,int finiteelement);50 void GetNodalFunctionsDerivativesVelocity(IssmDouble* dbasis,IssmDouble* xyz_list,Gauss Tria* gauss);51 void GetNodalFunctionsDerivativesPressure(IssmDouble* dbasis,IssmDouble* xyz_list,Gauss Tria* gauss);52 void GetNodalFunctionsDerivativesReference(IssmDouble* dbasis,Gauss Tria* gauss);53 void GetNodalFunctionsDerivativesReference(IssmDouble* dbasis,Gauss Tria* gauss,int finiteelement);54 void GetInputValue(IssmDouble* pp, IssmDouble* plist, Gauss Tria* gauss);55 void GetInputValue(IssmDouble* pp, IssmDouble* plist, Gauss Tria* gauss,int finiteelement);56 void GetInputDerivativeValue(IssmDouble* pp, IssmDouble* plist,IssmDouble* xyz_list, Gauss Tria* gauss);25 void GetBExtrusion(IssmDouble* B_prime, IssmDouble* xyz_list, Gauss* gauss); 26 void GetBFS(IssmDouble* B_prime, IssmDouble* xyz_list, Gauss* gauss); 27 void GetBSSA(IssmDouble* B, IssmDouble* xyz_list, Gauss* gauss); 28 void GetBSSAFS(IssmDouble* B , IssmDouble* xyz_list, Gauss* gauss); 29 void GetBprimeFS(IssmDouble* B_prime, IssmDouble* xyz_list, Gauss* gauss); 30 void GetBprimeSSA(IssmDouble* Bprime, IssmDouble* xyz_list, Gauss* gauss); 31 void GetBprimeSSAFS(IssmDouble* Bprime, IssmDouble* xyz_list, Gauss* gauss); 32 void GetBprimeMasstransport(IssmDouble* Bprime, IssmDouble* xyz_list, Gauss* gauss); 33 void GetBMasstransport(IssmDouble* B, IssmDouble* xyz_list, Gauss* gauss); 34 void GetBHydro(IssmDouble* B, IssmDouble* xyz_list, Gauss* gauss); 35 void GetBSSAFriction(IssmDouble* L, IssmDouble* xyz_list,Gauss* gauss); 36 void GetJacobian(IssmDouble* J, IssmDouble* xyz_list,Gauss* gauss); 37 void GetSegmentJacobianDeterminant(IssmDouble* Jdet, IssmDouble* xyz_list,Gauss* gauss); 38 void GetJacobianDeterminant(IssmDouble* Jdet, IssmDouble* xyz_list,Gauss* gauss); 39 void GetJacobianInvert(IssmDouble* Jinv, IssmDouble* xyz_list,Gauss* gauss); 40 void GetLFS(IssmDouble* LFS, Gauss* gauss); 41 void GetNodalFunctions(IssmDouble* basis,Gauss* gauss); 42 void GetNodalFunctions(IssmDouble* basis,Gauss* gauss,int finiteelement); 43 void GetNodalFunctionsVelocity(IssmDouble* basis, Gauss* gauss); 44 void GetNodalFunctionsPressure(IssmDouble* basis, Gauss* gauss); 45 void GetSegmentNodalFunctions(IssmDouble* basis,Gauss* gauss, int index1,int index2); 46 void GetSegmentBFlux(IssmDouble* B,Gauss* gauss, int index1,int index2); 47 void GetSegmentBprimeFlux(IssmDouble* Bprime,Gauss* gauss, int index1,int index2); 48 void GetNodalFunctionsDerivatives(IssmDouble* dbasis,IssmDouble* xyz_list, Gauss* gauss); 49 void GetNodalFunctionsDerivatives(IssmDouble* dbasis,IssmDouble* xyz_list, Gauss* gauss,int finiteelement); 50 void GetNodalFunctionsDerivativesVelocity(IssmDouble* dbasis,IssmDouble* xyz_list,Gauss* gauss); 51 void GetNodalFunctionsDerivativesPressure(IssmDouble* dbasis,IssmDouble* xyz_list,Gauss* gauss); 52 void GetNodalFunctionsDerivativesReference(IssmDouble* dbasis,Gauss* gauss); 53 void GetNodalFunctionsDerivativesReference(IssmDouble* dbasis,Gauss* gauss,int finiteelement); 54 void GetInputValue(IssmDouble* pp, IssmDouble* plist, Gauss* gauss); 55 void GetInputValue(IssmDouble* pp, IssmDouble* plist, Gauss* gauss,int finiteelement); 56 void GetInputDerivativeValue(IssmDouble* pp, IssmDouble* plist,IssmDouble* xyz_list, Gauss* gauss); 57 57 58 58 void NodeOnEdgeIndices(int* pnumindices,int** pindices,int index,int finiteelement); -
issm/trunk-jpl/src/c/classes/Inputs/BoolInput.h
r16799 r16818 7 7 8 8 /*Headers:*/ 9 /*{{{*/10 9 #include "./Input.h" 11 class GaussTria;12 class GaussPenta;13 /*}}}*/14 10 15 11 class BoolInput: public Input{ … … 54 50 void GetInputAllTimeAverages(IssmDouble** pvalues,IssmDouble** ptimes, int* pnumtimes){_error_("not implemented yet");}; 55 51 void GetInputUpToCurrentTimeAverages(IssmDouble** pvalues, IssmDouble** ptimes, int* pnumtimes, IssmDouble currenttime){_error_("not implemented yet");}; 56 void GetVxStrainRate2d(IssmDouble* epsilonvx,IssmDouble* xyz_list, Gauss Tria* gauss){_error_("not implemented yet");};57 void GetVyStrainRate2d(IssmDouble* epsilonvy,IssmDouble* xyz_list, Gauss Tria* gauss){_error_("not implemented yet");};58 void GetVxStrainRate3d(IssmDouble* epsilonvx,IssmDouble* xyz_list, Gauss Penta* gauss){_error_("not implemented yet");};59 void GetVyStrainRate3d(IssmDouble* epsilonvy,IssmDouble* xyz_list, Gauss Penta* gauss){_error_("not implemented yet");};60 void GetVzStrainRate3d(IssmDouble* epsilonvz,IssmDouble* xyz_list, Gauss Penta* gauss){_error_("not implemented yet");};61 void GetVxStrainRate3dHO(IssmDouble* epsilonvx,IssmDouble* xyz_list, Gauss Penta* gauss){_error_("not implemented yet");};62 void GetVyStrainRate3dHO(IssmDouble* epsilonvy,IssmDouble* xyz_list, Gauss Penta* gauss){_error_("not implemented yet");};52 void GetVxStrainRate2d(IssmDouble* epsilonvx,IssmDouble* xyz_list, Gauss* gauss){_error_("not implemented yet");}; 53 void GetVyStrainRate2d(IssmDouble* epsilonvy,IssmDouble* xyz_list, Gauss* gauss){_error_("not implemented yet");}; 54 void GetVxStrainRate3d(IssmDouble* epsilonvx,IssmDouble* xyz_list, Gauss* gauss){_error_("not implemented yet");}; 55 void GetVyStrainRate3d(IssmDouble* epsilonvy,IssmDouble* xyz_list, Gauss* gauss){_error_("not implemented yet");}; 56 void GetVzStrainRate3d(IssmDouble* epsilonvz,IssmDouble* xyz_list, Gauss* gauss){_error_("not implemented yet");}; 57 void GetVxStrainRate3dHO(IssmDouble* epsilonvx,IssmDouble* xyz_list, Gauss* gauss){_error_("not implemented yet");}; 58 void GetVyStrainRate3dHO(IssmDouble* epsilonvy,IssmDouble* xyz_list, Gauss* gauss){_error_("not implemented yet");}; 63 59 void ChangeEnum(int newenumtype); 64 60 void SquareMin(IssmDouble* psquaremin, Parameters* parameters); -
issm/trunk-jpl/src/c/classes/Inputs/ControlInput.cpp
r16799 r16818 235 235 values->GetInputValue(pvalue); 236 236 }/*}}}*/ 237 /*FUNCTION ControlInput::GetInputValue(Issm * pvalue,Gauss* gauss){{{*/237 /*FUNCTION ControlInput::GetInputValue(IssmDouble* pvalue,Gauss* gauss){{{*/ 238 238 void ControlInput::GetInputValue(IssmDouble* pvalue,Gauss* gauss){ 239 239 values->GetInputValue(pvalue,gauss); 240 240 }/*}}}*/ 241 /*FUNCTION ControlInput::GetGradientValue(IssmDouble* pvalue,GaussTria* gauss){{{*/ 242 void ControlInput::GetGradientValue(IssmDouble* pvalue,GaussTria* gauss){ 243 gradient->GetInputValue(pvalue,gauss); 244 }/*}}}*/ 245 /*FUNCTION ControlInput::GetGradientValue(IssmDouble* pvalue,GaussPenta* gauss){{{*/ 246 void ControlInput::GetGradientValue(IssmDouble* pvalue,GaussPenta* gauss){ 241 /*FUNCTION ControlInput::GetGradientValue{{{*/ 242 void ControlInput::GetGradientValue(IssmDouble* pvalue,Gauss* gauss){ 247 243 gradient->GetInputValue(pvalue,gauss); 248 244 }/*}}}*/ -
issm/trunk-jpl/src/c/classes/Inputs/ControlInput.h
r16799 r16818 9 9 /*{{{*/ 10 10 #include "./Input.h" 11 class Gauss Tria;12 class Gauss Penta;11 class Gauss; 12 class Gauss; 13 13 /*}}}*/ 14 14 … … 47 47 /*}}}*/ 48 48 /*numerics: {{{*/ 49 void GetGradientValue(IssmDouble* pvalue,GaussTria* gauss); 50 void GetGradientValue(IssmDouble* pvalue,GaussPenta* gauss); 49 void GetGradientValue(IssmDouble* pvalue,Gauss* gauss); 51 50 void SetInput(Input* in_input); 52 51 void GetInputValue(bool* pvalue); … … 60 59 void GetInputAllTimeAverages(IssmDouble** pvalues,IssmDouble** ptimes, int* pnumtimes){_error_("not implemented yet");}; 61 60 void GetInputUpToCurrentTimeAverages(IssmDouble** pvalues, IssmDouble** ptimes, int* pnumtimes, IssmDouble currenttime){_error_("not implemented yet");}; 62 void GetVxStrainRate2d(IssmDouble* epsilonvx,IssmDouble* xyz_list, Gauss Tria* gauss){_error_("not implemented yet");};63 void GetVyStrainRate2d(IssmDouble* epsilonvy,IssmDouble* xyz_list, Gauss Tria* gauss){_error_("not implemented yet");};64 void GetVxStrainRate3d(IssmDouble* epsilonvx,IssmDouble* xyz_list, Gauss Penta* gauss){_error_("not implemented yet");};65 void GetVyStrainRate3d(IssmDouble* epsilonvy,IssmDouble* xyz_list, Gauss Penta* gauss){_error_("not implemented yet");};66 void GetVzStrainRate3d(IssmDouble* epsilonvz,IssmDouble* xyz_list, Gauss Penta* gauss){_error_("not implemented yet");};67 void GetVxStrainRate3dHO(IssmDouble* epsilonvx,IssmDouble* xyz_list, Gauss Penta* gauss){_error_("not implemented yet");};68 void GetVyStrainRate3dHO(IssmDouble* epsilonvy,IssmDouble* xyz_list, Gauss Penta* gauss){_error_("not implemented yet");};61 void GetVxStrainRate2d(IssmDouble* epsilonvx,IssmDouble* xyz_list, Gauss* gauss){_error_("not implemented yet");}; 62 void GetVyStrainRate2d(IssmDouble* epsilonvy,IssmDouble* xyz_list, Gauss* gauss){_error_("not implemented yet");}; 63 void GetVxStrainRate3d(IssmDouble* epsilonvx,IssmDouble* xyz_list, Gauss* gauss){_error_("not implemented yet");}; 64 void GetVyStrainRate3d(IssmDouble* epsilonvy,IssmDouble* xyz_list, Gauss* gauss){_error_("not implemented yet");}; 65 void GetVzStrainRate3d(IssmDouble* epsilonvz,IssmDouble* xyz_list, Gauss* gauss){_error_("not implemented yet");}; 66 void GetVxStrainRate3dHO(IssmDouble* epsilonvx,IssmDouble* xyz_list, Gauss* gauss){_error_("not implemented yet");}; 67 void GetVyStrainRate3dHO(IssmDouble* epsilonvy,IssmDouble* xyz_list, Gauss* gauss){_error_("not implemented yet");}; 69 68 void ChangeEnum(int newenumtype){_error_("not implemented yet");}; 70 69 void SquareMin(IssmDouble* psquaremin,Parameters* parameters){_error_("not implemented yet");}; -
issm/trunk-jpl/src/c/classes/Inputs/DatasetInput.h
r16799 r16818 9 9 /*{{{*/ 10 10 #include "./Input.h" 11 class Gauss Tria;12 class Gauss Penta;11 class Gauss; 12 class Gauss; 13 13 /*}}}*/ 14 14 … … 55 55 void GetInputAllTimeAverages(IssmDouble** pvalues,IssmDouble** ptimes, int* pnumtimes){_error_("not implemented yet");}; 56 56 void GetInputUpToCurrentTimeAverages(IssmDouble** pvalues, IssmDouble** ptimes, int* pnumtimes, IssmDouble currenttime){_error_("not implemented yet");}; 57 void GetVxStrainRate2d(IssmDouble* epsilonvx,IssmDouble* xyz_list, Gauss Tria* gauss){_error_("not implemented yet");};58 void GetVyStrainRate2d(IssmDouble* epsilonvy,IssmDouble* xyz_list, Gauss Tria* gauss){_error_("not implemented yet");};59 void GetVxStrainRate3d(IssmDouble* epsilonvx,IssmDouble* xyz_list, Gauss Penta* gauss){_error_("not implemented yet");};60 void GetVyStrainRate3d(IssmDouble* epsilonvy,IssmDouble* xyz_list, Gauss Penta* gauss){_error_("not implemented yet");};61 void GetVzStrainRate3d(IssmDouble* epsilonvz,IssmDouble* xyz_list, Gauss Penta* gauss){_error_("not implemented yet");};62 void GetVxStrainRate3dHO(IssmDouble* epsilonvx,IssmDouble* xyz_list, Gauss Penta* gauss){_error_("not implemented yet");};63 void GetVyStrainRate3dHO(IssmDouble* epsilonvy,IssmDouble* xyz_list, Gauss Penta* gauss){_error_("not implemented yet");};57 void GetVxStrainRate2d(IssmDouble* epsilonvx,IssmDouble* xyz_list, Gauss* gauss){_error_("not implemented yet");}; 58 void GetVyStrainRate2d(IssmDouble* epsilonvy,IssmDouble* xyz_list, Gauss* gauss){_error_("not implemented yet");}; 59 void GetVxStrainRate3d(IssmDouble* epsilonvx,IssmDouble* xyz_list, Gauss* gauss){_error_("not implemented yet");}; 60 void GetVyStrainRate3d(IssmDouble* epsilonvy,IssmDouble* xyz_list, Gauss* gauss){_error_("not implemented yet");}; 61 void GetVzStrainRate3d(IssmDouble* epsilonvz,IssmDouble* xyz_list, Gauss* gauss){_error_("not implemented yet");}; 62 void GetVxStrainRate3dHO(IssmDouble* epsilonvx,IssmDouble* xyz_list, Gauss* gauss){_error_("not implemented yet");}; 63 void GetVyStrainRate3dHO(IssmDouble* epsilonvy,IssmDouble* xyz_list, Gauss* gauss){_error_("not implemented yet");}; 64 64 void ChangeEnum(int newenumtype){_error_("not implemented yet");}; 65 65 void SquareMin(IssmDouble* psquaremin,Parameters* parameters){_error_("not implemented yet");}; -
issm/trunk-jpl/src/c/classes/Inputs/DoubleInput.cpp
r16799 r16818 123 123 void DoubleInput::GetInputValue(IssmDouble* pvalue,Gauss* gauss){*pvalue=this->value;} 124 124 /*}}}*/ 125 /*FUNCTION DoubleInput::GetVxStrainRate2d(IssmDouble* epsilonvx,IssmDouble* xyz_list, Gauss Tria* gauss){{{*/126 void DoubleInput::GetVxStrainRate2d(IssmDouble* epsilonvx,IssmDouble* xyz_list, Gauss Tria* gauss){125 /*FUNCTION DoubleInput::GetVxStrainRate2d(IssmDouble* epsilonvx,IssmDouble* xyz_list, Gauss* gauss){{{*/ 126 void DoubleInput::GetVxStrainRate2d(IssmDouble* epsilonvx,IssmDouble* xyz_list, Gauss* gauss){ 127 127 /*Epsilon is zero as vx is constant over the element*/ 128 128 for(int i=0;i<3;i++) epsilonvx[i]=0; 129 129 } 130 130 /*}}}*/ 131 /*FUNCTION DoubleInput::GetVyStrainRate2d(IssmDouble* epsilonvy,IssmDouble* xyz_list, Gauss Tria* gauss){{{*/132 void DoubleInput::GetVyStrainRate2d(IssmDouble* epsilonvy,IssmDouble* xyz_list, Gauss Tria* gauss){131 /*FUNCTION DoubleInput::GetVyStrainRate2d(IssmDouble* epsilonvy,IssmDouble* xyz_list, Gauss* gauss){{{*/ 132 void DoubleInput::GetVyStrainRate2d(IssmDouble* epsilonvy,IssmDouble* xyz_list, Gauss* gauss){ 133 133 /*Epsilon is zero as vy is constant over the element*/ 134 134 for(int i=0;i<3;i++) epsilonvy[i]=0; 135 135 } 136 136 /*}}}*/ 137 /*FUNCTION DoubleInput::GetVxStrainRate3d(IssmDouble* epsilonvx,IssmDouble* xyz_list, Gauss Penta* gauss){{{*/138 void DoubleInput::GetVxStrainRate3d(IssmDouble* epsilonvx,IssmDouble* xyz_list, Gauss Penta* gauss){137 /*FUNCTION DoubleInput::GetVxStrainRate3d(IssmDouble* epsilonvx,IssmDouble* xyz_list, Gauss* gauss){{{*/ 138 void DoubleInput::GetVxStrainRate3d(IssmDouble* epsilonvx,IssmDouble* xyz_list, Gauss* gauss){ 139 139 /*Epsilon is zero as vx is constant over the element*/ 140 140 for(int i=0;i<6;i++) epsilonvx[i]=0; 141 141 } 142 142 /*}}}*/ 143 /*FUNCTION DoubleInput::GetVyStrainRate3d(IssmDouble* epsilonvy,IssmDouble* xyz_list, Gauss Penta* gauss){{{*/144 void DoubleInput::GetVyStrainRate3d(IssmDouble* epsilonvy,IssmDouble* xyz_list, Gauss Penta* gauss){143 /*FUNCTION DoubleInput::GetVyStrainRate3d(IssmDouble* epsilonvy,IssmDouble* xyz_list, Gauss* gauss){{{*/ 144 void DoubleInput::GetVyStrainRate3d(IssmDouble* epsilonvy,IssmDouble* xyz_list, Gauss* gauss){ 145 145 /*Epsilon is zero as vy is constant over the element*/ 146 146 for(int i=0;i<6;i++) epsilonvy[i]=0; 147 147 } 148 148 /*}}}*/ 149 /*FUNCTION DoubleInput::GetVzStrainRate3d(IssmDouble* epsilonvz,IssmDouble* xyz_list, Gauss Penta* gauss){{{*/150 void DoubleInput::GetVzStrainRate3d(IssmDouble* epsilonvz,IssmDouble* xyz_list, Gauss Penta* gauss){149 /*FUNCTION DoubleInput::GetVzStrainRate3d(IssmDouble* epsilonvz,IssmDouble* xyz_list, Gauss* gauss){{{*/ 150 void DoubleInput::GetVzStrainRate3d(IssmDouble* epsilonvz,IssmDouble* xyz_list, Gauss* gauss){ 151 151 /*Epsilon is zero as vz is constant over the element*/ 152 152 for(int i=0;i<6;i++) epsilonvz[i]=0; 153 153 } 154 154 /*}}}*/ 155 /*FUNCTION DoubleInput::GetVxStrainRate3dHO(IssmDouble* epsilonvx,IssmDouble* xyz_list, Gauss Penta* gauss){{{*/156 void DoubleInput::GetVxStrainRate3dHO(IssmDouble* epsilonvx,IssmDouble* xyz_list, Gauss Penta* gauss){155 /*FUNCTION DoubleInput::GetVxStrainRate3dHO(IssmDouble* epsilonvx,IssmDouble* xyz_list, Gauss* gauss){{{*/ 156 void DoubleInput::GetVxStrainRate3dHO(IssmDouble* epsilonvx,IssmDouble* xyz_list, Gauss* gauss){ 157 157 /*Epsilon is zero as vx is constant over the element*/ 158 158 for(int i=0;i<5;i++) epsilonvx[i]=0; 159 159 } 160 160 /*}}}*/ 161 /*FUNCTION DoubleInput::GetVyStrainRate3dHO(IssmDouble* epsilonvy,IssmDouble* xyz_list, Gauss Penta* gauss){{{*/162 void DoubleInput::GetVyStrainRate3dHO(IssmDouble* epsilonvy,IssmDouble* xyz_list, Gauss Penta* gauss){161 /*FUNCTION DoubleInput::GetVyStrainRate3dHO(IssmDouble* epsilonvy,IssmDouble* xyz_list, Gauss* gauss){{{*/ 162 void DoubleInput::GetVyStrainRate3dHO(IssmDouble* epsilonvy,IssmDouble* xyz_list, Gauss* gauss){ 163 163 /*Epsilon is zero as vy is constant over the element*/ 164 164 for(int i=0;i<5;i++) epsilonvy[i]=0; -
issm/trunk-jpl/src/c/classes/Inputs/DoubleInput.h
r16799 r16818 9 9 /*{{{*/ 10 10 #include "./Input.h" 11 class Gauss Tria;12 class Gauss Penta;11 class Gauss; 12 class Gauss; 13 13 /*}}}*/ 14 14 … … 53 53 void GetInputAllTimeAverages(IssmDouble** pvalues,IssmDouble** ptimes, int* pnumtimes){_error_("not implemented yet");}; 54 54 void GetInputUpToCurrentTimeAverages(IssmDouble** pvalues, IssmDouble** ptimes, int* pnumtimes, IssmDouble currenttime){_error_("not implemented yet");}; 55 void GetVxStrainRate2d(IssmDouble* epsilonvx,IssmDouble* xyz_list, Gauss Tria* gauss);56 void GetVyStrainRate2d(IssmDouble* epsilonvy,IssmDouble* xyz_list, Gauss Tria* gauss);57 void GetVxStrainRate3d(IssmDouble* epsilonvx,IssmDouble* xyz_list, Gauss Penta* gauss);58 void GetVyStrainRate3d(IssmDouble* epsilonvy,IssmDouble* xyz_list, Gauss Penta* gauss);59 void GetVzStrainRate3d(IssmDouble* epsilonvz,IssmDouble* xyz_list, Gauss Penta* gauss);60 void GetVxStrainRate3dHO(IssmDouble* epsilonvx,IssmDouble* xyz_list, Gauss Penta* gauss);61 void GetVyStrainRate3dHO(IssmDouble* epsilonvy,IssmDouble* xyz_list, Gauss Penta* gauss);55 void GetVxStrainRate2d(IssmDouble* epsilonvx,IssmDouble* xyz_list, Gauss* gauss); 56 void GetVyStrainRate2d(IssmDouble* epsilonvy,IssmDouble* xyz_list, Gauss* gauss); 57 void GetVxStrainRate3d(IssmDouble* epsilonvx,IssmDouble* xyz_list, Gauss* gauss); 58 void GetVyStrainRate3d(IssmDouble* epsilonvy,IssmDouble* xyz_list, Gauss* gauss); 59 void GetVzStrainRate3d(IssmDouble* epsilonvz,IssmDouble* xyz_list, Gauss* gauss); 60 void GetVxStrainRate3dHO(IssmDouble* epsilonvx,IssmDouble* xyz_list, Gauss* gauss); 61 void GetVyStrainRate3dHO(IssmDouble* epsilonvy,IssmDouble* xyz_list, Gauss* gauss); 62 62 void ChangeEnum(int newenumtype); 63 63 void SquareMin(IssmDouble* psquaremin,Parameters* parameters); -
issm/trunk-jpl/src/c/classes/Inputs/Input.h
r16799 r16818 12 12 class Node; 13 13 class Gauss; 14 class Gauss Tria;14 class Gauss; 15 15 class GaussSeg; 16 16 class Parameters; 17 class Gauss Penta;17 class Gauss; 18 18 template <class doubletype> class Vector; 19 19 /*}}}*/ … … 36 36 virtual void GetInputAllTimeAverages(IssmDouble** pvalues,IssmDouble** ptimes, int* pnumtimes)=0; 37 37 virtual void GetInputUpToCurrentTimeAverages(IssmDouble** pvalues, IssmDouble** ptimes, int* pnumtimes, IssmDouble currenttime)=0; 38 virtual void GetVxStrainRate2d(IssmDouble* epsilonvx,IssmDouble* xyz_list, Gauss Tria* gauss)=0;39 virtual void GetVyStrainRate2d(IssmDouble* epsilonvy,IssmDouble* xyz_list, Gauss Tria* gauss)=0;40 virtual void GetVxStrainRate3d(IssmDouble* epsilonvx,IssmDouble* xyz_list, Gauss Penta* gauss)=0;41 virtual void GetVyStrainRate3d(IssmDouble* epsilonvy,IssmDouble* xyz_list, Gauss Penta* gauss)=0;42 virtual void GetVzStrainRate3d(IssmDouble* epsilonvz,IssmDouble* xyz_list, Gauss Penta* gauss)=0;43 virtual void GetVxStrainRate3dHO(IssmDouble* epsilonvx,IssmDouble* xyz_list, Gauss Penta* gauss)=0;44 virtual void GetVyStrainRate3dHO(IssmDouble* epsilonvy,IssmDouble* xyz_list, Gauss Penta* gauss)=0;38 virtual void GetVxStrainRate2d(IssmDouble* epsilonvx,IssmDouble* xyz_list, Gauss* gauss)=0; 39 virtual void GetVyStrainRate2d(IssmDouble* epsilonvy,IssmDouble* xyz_list, Gauss* gauss)=0; 40 virtual void GetVxStrainRate3d(IssmDouble* epsilonvx,IssmDouble* xyz_list, Gauss* gauss)=0; 41 virtual void GetVyStrainRate3d(IssmDouble* epsilonvy,IssmDouble* xyz_list, Gauss* gauss)=0; 42 virtual void GetVzStrainRate3d(IssmDouble* epsilonvz,IssmDouble* xyz_list, Gauss* gauss)=0; 43 virtual void GetVxStrainRate3dHO(IssmDouble* epsilonvx,IssmDouble* xyz_list, Gauss* gauss)=0; 44 virtual void GetVyStrainRate3dHO(IssmDouble* epsilonvy,IssmDouble* xyz_list, Gauss* gauss)=0; 45 45 virtual void ChangeEnum(int newenumtype)=0; 46 46 virtual void Configure(Parameters* parameters)=0; -
issm/trunk-jpl/src/c/classes/Inputs/IntInput.h
r16799 r16818 9 9 /*{{{*/ 10 10 #include "./Input.h" 11 class Gauss Tria;12 class Gauss Penta;11 class Gauss; 12 class Gauss; 13 13 /*}}}*/ 14 14 … … 55 55 void GetInputUpToCurrentTimeAverages(IssmDouble** pvalues, IssmDouble** ptimes, int* pnumtimes, IssmDouble currenttime){_error_("not implemented yet");}; 56 56 57 void GetVxStrainRate2d(IssmDouble* epsilonvx,IssmDouble* xyz_list, Gauss Tria* gauss){_error_("not implemented yet");};58 void GetVyStrainRate2d(IssmDouble* epsilonvy,IssmDouble* xyz_list, Gauss Tria* gauss){_error_("not implemented yet");};59 void GetVxStrainRate3d(IssmDouble* epsilonvx,IssmDouble* xyz_list, Gauss Penta* gauss){_error_("not implemented yet");};60 void GetVyStrainRate3d(IssmDouble* epsilonvy,IssmDouble* xyz_list, Gauss Penta* gauss){_error_("not implemented yet");};61 void GetVzStrainRate3d(IssmDouble* epsilonvz,IssmDouble* xyz_list, Gauss Penta* gauss){_error_("not implemented yet");};62 void GetVxStrainRate3dHO(IssmDouble* epsilonvx,IssmDouble* xyz_list, Gauss Penta* gauss){_error_("not implemented yet");};63 void GetVyStrainRate3dHO(IssmDouble* epsilonvy,IssmDouble* xyz_list, Gauss Penta* gauss){_error_("not implemented yet");};57 void GetVxStrainRate2d(IssmDouble* epsilonvx,IssmDouble* xyz_list, Gauss* gauss){_error_("not implemented yet");}; 58 void GetVyStrainRate2d(IssmDouble* epsilonvy,IssmDouble* xyz_list, Gauss* gauss){_error_("not implemented yet");}; 59 void GetVxStrainRate3d(IssmDouble* epsilonvx,IssmDouble* xyz_list, Gauss* gauss){_error_("not implemented yet");}; 60 void GetVyStrainRate3d(IssmDouble* epsilonvy,IssmDouble* xyz_list, Gauss* gauss){_error_("not implemented yet");}; 61 void GetVzStrainRate3d(IssmDouble* epsilonvz,IssmDouble* xyz_list, Gauss* gauss){_error_("not implemented yet");}; 62 void GetVxStrainRate3dHO(IssmDouble* epsilonvx,IssmDouble* xyz_list, Gauss* gauss){_error_("not implemented yet");}; 63 void GetVyStrainRate3dHO(IssmDouble* epsilonvy,IssmDouble* xyz_list, Gauss* gauss){_error_("not implemented yet");}; 64 64 void ChangeEnum(int newenumtype); 65 65 void SquareMin(IssmDouble* psquaremin,Parameters* parameters); -
issm/trunk-jpl/src/c/classes/Inputs/PentaInput.cpp
r16799 r16818 155 155 /*}}}*/ 156 156 /*FUNCTION PentaInput::GetVxStrainRate3d{{{*/ 157 void PentaInput::GetVxStrainRate3d(IssmDouble* epsilonvx,IssmDouble* xyz_list, Gauss Penta* gauss){157 void PentaInput::GetVxStrainRate3d(IssmDouble* epsilonvx,IssmDouble* xyz_list, Gauss* gauss){ 158 158 159 159 /*Intermediary*/ … … 181 181 /*}}}*/ 182 182 /*FUNCTION PentaInput::GetVyStrainRate3d{{{*/ 183 void PentaInput::GetVyStrainRate3d(IssmDouble* epsilonvx,IssmDouble* xyz_list, Gauss Penta* gauss){183 void PentaInput::GetVyStrainRate3d(IssmDouble* epsilonvx,IssmDouble* xyz_list, Gauss* gauss){ 184 184 185 185 /*Intermediary*/ … … 206 206 /*}}}*/ 207 207 /*FUNCTION PentaInput::GetVzStrainRate3d{{{*/ 208 void PentaInput::GetVzStrainRate3d(IssmDouble* epsilonvx,IssmDouble* xyz_list, Gauss Penta* gauss){208 void PentaInput::GetVzStrainRate3d(IssmDouble* epsilonvx,IssmDouble* xyz_list, Gauss* gauss){ 209 209 210 210 /*Intermediary*/ … … 231 231 /*}}}*/ 232 232 /*FUNCTION PentaInput::GetVxStrainRate3dHO{{{*/ 233 void PentaInput::GetVxStrainRate3dHO(IssmDouble* epsilonvx,IssmDouble* xyz_list, Gauss Penta* gauss){233 void PentaInput::GetVxStrainRate3dHO(IssmDouble* epsilonvx,IssmDouble* xyz_list, Gauss* gauss){ 234 234 235 235 int i; … … 257 257 /*}}}*/ 258 258 /*FUNCTION PentaInput::GetVyStrainRate3dHO{{{*/ 259 void PentaInput::GetVyStrainRate3dHO(IssmDouble* epsilonvy,IssmDouble* xyz_list, Gauss Penta* gauss){259 void PentaInput::GetVyStrainRate3dHO(IssmDouble* epsilonvy,IssmDouble* xyz_list, Gauss* gauss){ 260 260 261 261 int i; -
issm/trunk-jpl/src/c/classes/Inputs/PentaInput.h
r16799 r16818 10 10 #include "./Input.h" 11 11 #include "../Elements/PentaRef.h" 12 class Gauss Tria;13 class Gauss Penta;12 class Gauss; 13 class Gauss; 14 14 /*}}}*/ 15 15 … … 54 54 void GetInputUpToCurrentTimeAverages(IssmDouble** pvalues, IssmDouble** ptimes, int* pnumtimes, IssmDouble currenttime){_error_("not implemented yet");}; 55 55 56 void GetVxStrainRate2d(IssmDouble* epsilonvx,IssmDouble* xyz_list, Gauss Tria* gauss){_error_("not implemented yet");};57 void GetVyStrainRate2d(IssmDouble* epsilonvy,IssmDouble* xyz_list, Gauss Tria* gauss){_error_("not implemented yet");};58 void GetVxStrainRate3d(IssmDouble* epsilonvx,IssmDouble* xyz_list, Gauss Penta* gauss);59 void GetVyStrainRate3d(IssmDouble* epsilonvy,IssmDouble* xyz_list, Gauss Penta* gauss);60 void GetVzStrainRate3d(IssmDouble* epsilonvz,IssmDouble* xyz_list, Gauss Penta* gauss);61 void GetVxStrainRate3dHO(IssmDouble* epsilonvx,IssmDouble* xyz_list, Gauss Penta* gauss);62 void GetVyStrainRate3dHO(IssmDouble* epsilonvy,IssmDouble* xyz_list, Gauss Penta* gauss);56 void GetVxStrainRate2d(IssmDouble* epsilonvx,IssmDouble* xyz_list, Gauss* gauss){_error_("not implemented yet");}; 57 void GetVyStrainRate2d(IssmDouble* epsilonvy,IssmDouble* xyz_list, Gauss* gauss){_error_("not implemented yet");}; 58 void GetVxStrainRate3d(IssmDouble* epsilonvx,IssmDouble* xyz_list, Gauss* gauss); 59 void GetVyStrainRate3d(IssmDouble* epsilonvy,IssmDouble* xyz_list, Gauss* gauss); 60 void GetVzStrainRate3d(IssmDouble* epsilonvz,IssmDouble* xyz_list, Gauss* gauss); 61 void GetVxStrainRate3dHO(IssmDouble* epsilonvx,IssmDouble* xyz_list, Gauss* gauss); 62 void GetVyStrainRate3dHO(IssmDouble* epsilonvy,IssmDouble* xyz_list, Gauss* gauss); 63 63 void ChangeEnum(int newenumtype); 64 64 -
issm/trunk-jpl/src/c/classes/Inputs/SegInput.h
r16799 r16818 11 11 #include "../Elements/SegRef.h" 12 12 class GaussSeg; 13 class Gauss Penta;13 class Gauss; 14 14 /*}}}*/ 15 15 … … 54 54 void GetInputAllTimeAverages(IssmDouble** pvalues,IssmDouble** ptimes, int* pnumtimes){_error_("not implemented yet");}; 55 55 void GetInputUpToCurrentTimeAverages(IssmDouble** pvalues, IssmDouble** ptimes, int* pnumtimes, IssmDouble currenttime){_error_("not implemented yet");}; 56 void GetVxStrainRate2d(IssmDouble* epsilonvx,IssmDouble* xyz_list, Gauss Tria* gauss){_error_("not implemented yet");};57 void GetVyStrainRate2d(IssmDouble* epsilonvy,IssmDouble* xyz_list, Gauss Tria* gauss){_error_("not implemented yet");};58 void GetVxStrainRate3d(IssmDouble* epsilonvx,IssmDouble* xyz_list, Gauss Penta* gauss){_error_("not implemented yet");};59 void GetVyStrainRate3d(IssmDouble* epsilonvy,IssmDouble* xyz_list, Gauss Penta* gauss){_error_("not implemented yet");};60 void GetVzStrainRate3d(IssmDouble* epsilonvz,IssmDouble* xyz_list, Gauss Penta* gauss){_error_("not implemented yet");};61 void GetVxStrainRate3dHO(IssmDouble* epsilonvx,IssmDouble* xyz_list, Gauss Penta* gauss){_error_("not implemented yet");};62 void GetVyStrainRate3dHO(IssmDouble* epsilonvy,IssmDouble* xyz_list, Gauss Penta* gauss){_error_("not implemented yet");};56 void GetVxStrainRate2d(IssmDouble* epsilonvx,IssmDouble* xyz_list, Gauss* gauss){_error_("not implemented yet");}; 57 void GetVyStrainRate2d(IssmDouble* epsilonvy,IssmDouble* xyz_list, Gauss* gauss){_error_("not implemented yet");}; 58 void GetVxStrainRate3d(IssmDouble* epsilonvx,IssmDouble* xyz_list, Gauss* gauss){_error_("not implemented yet");}; 59 void GetVyStrainRate3d(IssmDouble* epsilonvy,IssmDouble* xyz_list, Gauss* gauss){_error_("not implemented yet");}; 60 void GetVzStrainRate3d(IssmDouble* epsilonvz,IssmDouble* xyz_list, Gauss* gauss){_error_("not implemented yet");}; 61 void GetVxStrainRate3dHO(IssmDouble* epsilonvx,IssmDouble* xyz_list, Gauss* gauss){_error_("not implemented yet");}; 62 void GetVyStrainRate3dHO(IssmDouble* epsilonvy,IssmDouble* xyz_list, Gauss* gauss){_error_("not implemented yet");}; 63 63 void ChangeEnum(int newenumtype){_error_("not implemented yet");}; 64 64 -
issm/trunk-jpl/src/c/classes/Inputs/TransientInput.h
r16799 r16818 9 9 /*{{{*/ 10 10 #include "./Input.h" 11 class Gauss Tria;11 class Gauss; 12 12 class Parameters; 13 class Gauss Penta;13 class Gauss; 14 14 /*}}}*/ 15 15 … … 59 59 void GetInputAllTimeAverages(IssmDouble** pvalues,IssmDouble** ptimes, int* pnumtimes); 60 60 void GetInputUpToCurrentTimeAverages(IssmDouble** pvalues, IssmDouble** ptimes, int* pnumtimes, IssmDouble currenttime); 61 void GetVxStrainRate2d(IssmDouble* epsilonvx,IssmDouble* xyz_list, Gauss Tria* gauss){_error_("not implemented yet");};62 void GetVyStrainRate2d(IssmDouble* epsilonvy,IssmDouble* xyz_list, Gauss Tria* gauss){_error_("not implemented yet");};63 void GetVxStrainRate3d(IssmDouble* epsilonvx,IssmDouble* xyz_list, Gauss Penta* gauss){_error_("not implemented yet");};64 void GetVyStrainRate3d(IssmDouble* epsilonvy,IssmDouble* xyz_list, Gauss Penta* gauss){_error_("not implemented yet");};65 void GetVzStrainRate3d(IssmDouble* epsilonvz,IssmDouble* xyz_list, Gauss Penta* gauss){_error_("not implemented yet");};66 void GetVxStrainRate3dHO(IssmDouble* epsilonvx,IssmDouble* xyz_list, Gauss Penta* gauss){_error_("not implemented yet");};67 void GetVyStrainRate3dHO(IssmDouble* epsilonvy,IssmDouble* xyz_list, Gauss Penta* gauss){_error_("not implemented yet");};61 void GetVxStrainRate2d(IssmDouble* epsilonvx,IssmDouble* xyz_list, Gauss* gauss){_error_("not implemented yet");}; 62 void GetVyStrainRate2d(IssmDouble* epsilonvy,IssmDouble* xyz_list, Gauss* gauss){_error_("not implemented yet");}; 63 void GetVxStrainRate3d(IssmDouble* epsilonvx,IssmDouble* xyz_list, Gauss* gauss){_error_("not implemented yet");}; 64 void GetVyStrainRate3d(IssmDouble* epsilonvy,IssmDouble* xyz_list, Gauss* gauss){_error_("not implemented yet");}; 65 void GetVzStrainRate3d(IssmDouble* epsilonvz,IssmDouble* xyz_list, Gauss* gauss){_error_("not implemented yet");}; 66 void GetVxStrainRate3dHO(IssmDouble* epsilonvx,IssmDouble* xyz_list, Gauss* gauss){_error_("not implemented yet");}; 67 void GetVyStrainRate3dHO(IssmDouble* epsilonvy,IssmDouble* xyz_list, Gauss* gauss){_error_("not implemented yet");}; 68 68 void ChangeEnum(int newenumtype); 69 69 -
issm/trunk-jpl/src/c/classes/Inputs/TriaInput.cpp
r16799 r16818 142 142 /*}}}*/ 143 143 /*FUNCTION TriaInput::GetVxStrainRate2d{{{*/ 144 void TriaInput::GetVxStrainRate2d(IssmDouble* epsilonvx,IssmDouble* xyz_list, Gauss Tria* gauss){144 void TriaInput::GetVxStrainRate2d(IssmDouble* epsilonvx,IssmDouble* xyz_list, Gauss* gauss){ 145 145 146 146 /*Intermediary*/ … … 168 168 /*}}}*/ 169 169 /*FUNCTION TriaInput::GetVyStrainRate2d{{{*/ 170 void TriaInput::GetVyStrainRate2d(IssmDouble* epsilonvy,IssmDouble* xyz_list, Gauss Tria* gauss){170 void TriaInput::GetVyStrainRate2d(IssmDouble* epsilonvy,IssmDouble* xyz_list, Gauss* gauss){ 171 171 172 172 /*Intermediary*/ -
issm/trunk-jpl/src/c/classes/Inputs/TriaInput.h
r16799 r16818 10 10 #include "./Input.h" 11 11 #include "../Elements/TriaRef.h" 12 class Gauss Tria;13 class Gauss Penta;12 class Gauss; 13 class Gauss; 14 14 /*}}}*/ 15 15 … … 54 54 void GetInputAllTimeAverages(IssmDouble** pvalues,IssmDouble** ptimes, int* pnumtimes); 55 55 void GetInputUpToCurrentTimeAverages(IssmDouble** pvalues, IssmDouble** ptimes, int* pnumtimes, IssmDouble currenttime); 56 void GetVxStrainRate2d(IssmDouble* epsilonvx,IssmDouble* xyz_list, Gauss Tria* gauss);57 void GetVyStrainRate2d(IssmDouble* epsilonvy,IssmDouble* xyz_list, Gauss Tria* gauss);58 void GetVxStrainRate3d(IssmDouble* epsilonvx,IssmDouble* xyz_list, Gauss Penta* gauss){_error_("not implemented yet");};59 void GetVyStrainRate3d(IssmDouble* epsilonvy,IssmDouble* xyz_list, Gauss Penta* gauss){_error_("not implemented yet");};60 void GetVzStrainRate3d(IssmDouble* epsilonvz,IssmDouble* xyz_list, Gauss Penta* gauss){_error_("not implemented yet");};61 void GetVxStrainRate3dHO(IssmDouble* epsilonvx,IssmDouble* xyz_list, Gauss Penta* gauss){_error_("not implemented yet");};62 void GetVyStrainRate3dHO(IssmDouble* epsilonvy,IssmDouble* xyz_list, Gauss Penta* gauss){_error_("not implemented yet");};56 void GetVxStrainRate2d(IssmDouble* epsilonvx,IssmDouble* xyz_list, Gauss* gauss); 57 void GetVyStrainRate2d(IssmDouble* epsilonvy,IssmDouble* xyz_list, Gauss* gauss); 58 void GetVxStrainRate3d(IssmDouble* epsilonvx,IssmDouble* xyz_list, Gauss* gauss){_error_("not implemented yet");}; 59 void GetVyStrainRate3d(IssmDouble* epsilonvy,IssmDouble* xyz_list, Gauss* gauss){_error_("not implemented yet");}; 60 void GetVzStrainRate3d(IssmDouble* epsilonvz,IssmDouble* xyz_list, Gauss* gauss){_error_("not implemented yet");}; 61 void GetVxStrainRate3dHO(IssmDouble* epsilonvx,IssmDouble* xyz_list, Gauss* gauss){_error_("not implemented yet");}; 62 void GetVyStrainRate3dHO(IssmDouble* epsilonvy,IssmDouble* xyz_list, Gauss* gauss){_error_("not implemented yet");}; 63 63 void ChangeEnum(int newenumtype); 64 64
Note:
See TracChangeset
for help on using the changeset viewer.