Changeset 4921
- Timestamp:
- 08/02/10 11:20:28 (15 years ago)
- Location:
- issm/trunk/src/c/objects
- Files:
-
- 14 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk/src/c/objects/Elements/Beam.cpp
r4912 r4921 980 980 } 981 981 /*}}}*/ 982 /*FUNCTION Beam::GetParameterValue{{{1*/983 void Beam::GetParameterValue(double* pvalue, double* value_list,double gauss_coord){984 985 double l1l2[2];986 987 GetNodalFunctions(&l1l2[0],gauss_coord);988 989 *pvalue=l1l2[0]*value_list[0]+l1l2[1]*value_list[1];990 }991 /*}}}*/992 982 /*FUNCTION Beam::IsInput{{{1*/ 993 983 bool Beam::IsInput(int name){ -
issm/trunk/src/c/objects/Elements/Beam.h
r4912 r4921 115 115 void GetDofList(int* doflist,int* pnumberofdofs); 116 116 void GetDofList1(int* doflist); 117 void GetParameterValue(double* pp, double* plist, double* gauss_l1l2l3);118 void GetParameterValue(double* pvalue, double* value_list,double gauss_coord);119 117 bool IsInput(int name); 120 118 void SetClone(int* minranks); -
issm/trunk/src/c/objects/Elements/BeamRef.cpp
r4910 r4921 69 69 } 70 70 /*}}}*/ 71 /*FUNCTION BeamRef::GetParameterValue{{{1*/ 72 void BeamRef::GetParameterValue(double* pvalue, double* value_list,double gauss_coord){ 73 74 /*Nodal functions*/ 75 double l1l2[2]; 76 77 /*Get nodal functions*/ 78 GetNodalFunctions(&l1l2[0],gauss_coord); 79 80 /*Assign output pointer*/ 81 *pvalue=l1l2[0]*value_list[0]+l1l2[1]*value_list[1]; 82 } 83 /*}}}*/ -
issm/trunk/src/c/objects/Elements/BeamRef.h
r4910 r4921 25 25 void GetJacobianDeterminant(double* Jdet, double* z_list,double gauss); 26 26 void GetNodalFunctions(double* l1l2, double gauss); 27 void GetParameterValue(double* pvalue, double* value_list,double gauss_coord); 27 28 28 29 }; -
issm/trunk/src/c/objects/Elements/Penta.cpp
r4912 r4921 4083 4083 } 4084 4084 /*}}}*/ 4085 /*FUNCTION Penta::GetParameterValue(double* pvalue, double* v_list,double* gauss_coord) {{{1*/4086 void Penta::GetParameterValue(double* pvalue, double* v_list,double* gauss_coord){4087 4088 const int numgrids=6;4089 double l1l6[numgrids];4090 4091 GetNodalFunctionsP1(&l1l6[0], gauss_coord);4092 4093 *pvalue=l1l6[0]*v_list[0]+l1l6[1]*v_list[1]+l1l6[2]*v_list[2]+l1l6[3]*v_list[3]+l1l6[4]*v_list[4]+l1l6[5]*v_list[5];4094 }4095 /*}}}*/4096 4085 /*FUNCTION Penta::GetParameterValue(double* pvalue,Node* node1,Node* node2,double gauss_seg,int enumtype) {{{1*/ 4097 4086 void Penta::GetParameterValue(double* pvalue,Node* node,int enumtype){ -
issm/trunk/src/c/objects/Elements/Penta.h
r4899 r4921 146 146 void GetNodalFunctionsDerivativesStokes(double* dh1dh7,double* xyz_list, double* gauss_coord); 147 147 void GetNodalFunctionsStokes(double* l1l7, double* gauss_coord); 148 void GetParameterValue(double* pvalue, double* v_list,double* gauss_coord);149 148 void GetParameterValue(double* pvalue,Node* node,int enumtype); 150 149 void GetPhi(double* phi, double* epsilon, double viscosity); -
issm/trunk/src/c/objects/Elements/PentaRef.cpp
r4898 r4921 908 908 } 909 909 /*}}}*/ 910 /*FUNCTION PentaRef::GetParameterValue{{{1*/ 911 void PentaRef::GetParameterValue(double* pvalue,double* plist,double* gauss){ 912 /*P1 interpolation on Gauss point*/ 913 914 /*intermediary*/ 915 double l1l6[6]; 916 917 /*nodal functions: */ 918 GetNodalFunctionsP1(&l1l6[0],gauss); 919 920 /*Assign output pointers:*/ 921 *pvalue=l1l6[0]*plist[0]+l1l6[1]*plist[1]+l1l6[2]*plist[2]+l1l6[3]*plist[3]+l1l6[4]*plist[4]+l1l6[5]*plist[5]; 922 923 } 924 /*}}}*/ 925 /*FUNCTION PentaRef::GetParameterDerivativeValue{{{1*/ 926 void PentaRef::GetParameterDerivativeValue(double* p, double* plist,double* xyz_list, double* gauss){ 927 /*From grid values of parameter p (p_list[0], p_list[1], p_list[2], p_list[3], p_list[4] and p_list[4]), return parameter derivative value at gaussian point specified by gauss_coord: 928 * dp/dx=p_list[0]*dh1/dx+p_list[1]*dh2/dx+p_list[2]*dh3/dx+p_list[3]*dh4/dx+p_list[4]*dh5/dx+p_list[5]*dh6/dx; 929 * dp/dy=p_list[0]*dh1/dy+p_list[1]*dh2/dy+p_list[2]*dh3/dy+p_list[3]*dh4/dy+p_list[4]*dh5/dy+p_list[5]*dh6/dy; 930 * dp/dz=p_list[0]*dh1/dz+p_list[1]*dh2/dz+p_list[2]*dh3/dz+p_list[3]*dh4/dz+p_list[4]*dh5/dz+p_list[5]*dh6/dz; 931 * 932 * p is a vector of size 3x1 already allocated. 933 */ 934 double dh1dh6[3][6]; 935 936 /*Get nodal funnctions derivatives in actual coordinate system: */ 937 GetNodalFunctionsP1Derivatives(&dh1dh6[0][0],xyz_list, gauss); 938 939 /*Assign output*/ 940 p[0]=plist[0]*dh1dh6[0][0]+plist[1]*dh1dh6[0][1]+plist[2]*dh1dh6[0][2]+plist[3]*dh1dh6[0][3]+plist[4]*dh1dh6[0][4]+plist[5]*dh1dh6[0][5]; 941 p[1]=plist[0]*dh1dh6[1][0]+plist[1]*dh1dh6[1][1]+plist[2]*dh1dh6[1][2]+plist[3]*dh1dh6[1][3]+plist[4]*dh1dh6[1][4]+plist[5]*dh1dh6[1][5]; 942 p[2]=plist[0]*dh1dh6[2][0]+plist[1]*dh1dh6[2][1]+plist[2]*dh1dh6[2][2]+plist[3]*dh1dh6[2][3]+plist[4]*dh1dh6[2][4]+plist[5]*dh1dh6[2][5]; 943 944 } 945 /*}}}*/ -
issm/trunk/src/c/objects/Elements/PentaRef.h
r4885 r4921 44 44 void GetLStokes(double* LStokes, double* gauss_tria); 45 45 void GetLprimeStokes(double* LprimeStokes, double* xyz_list, double* gauss_tria, double* gauss); 46 void GetParameterValue(double* pvalue,double* plist,double* gauss); 47 void GetParameterDerivativeValue(double* pvalues, double* plist,double* xyz_list, double* gauss); 46 48 47 49 }; -
issm/trunk/src/c/objects/Elements/Tria.cpp
r4904 r4921 1152 1152 //if (drag_type==2) friction->GetAlphaComplement(&alpha_complement, gauss_l1l2l3,VxEnum,VyEnum); // TO BE UNCOMMENTED 1153 1153 //else alpha_complement=0; 1154 GetParameterValue(&alpha_complement,&alpha2complement_list[0],gauss_l1l2l3); // TO BE DELETED1154 TriaRef::GetParameterValue(&alpha_complement,&alpha2complement_list[0],gauss_l1l2l3); // TO BE DELETED 1155 1155 1156 1156 /*Recover alpha_complement and k: */ … … 1923 1923 1924 1924 /*Compute misfit at gaussian point: */ 1925 GetParameterValue(&misfit, &misfit_list[0],gauss_l1l2l3);1925 TriaRef::GetParameterValue(&misfit, &misfit_list[0],gauss_l1l2l3); 1926 1926 1927 1927 /*compute Misfit*/ … … 2973 2973 /*Friction: */ 2974 2974 // friction->GetAlpha2(&alpha2, gauss_l1l2l3,VxEnum,VyEnum,VzEnum); // TO UNCOMMENT 2975 GetParameterValue(&alpha2,&alpha2_list[0],gauss_l1l2l3); // TO BE DELETED2975 TriaRef::GetParameterValue(&alpha2,&alpha2_list[0],gauss_l1l2l3); // TO BE DELETED 2976 2976 2977 2977 // If we have a slope > 6% for this element, it means we are on a mountain. In this particular case, … … 4427 4427 4428 4428 /*Compute absolute(x/y) at gaussian point: */ 4429 GetParameterValue(&dux, &dux_list[0],gauss_l1l2l3);4430 GetParameterValue(&duy, &duy_list[0],gauss_l1l2l3);4429 TriaRef::GetParameterValue(&dux, &dux_list[0],gauss_l1l2l3); 4430 TriaRef::GetParameterValue(&duy, &duy_list[0],gauss_l1l2l3); 4431 4431 4432 4432 /*compute Du*/ … … 4667 4667 4668 4668 /*Compute absolute(x/y) at gaussian point: */ 4669 GetParameterValue(&dux, &dux_list[0],gauss_l1l2l3);4670 GetParameterValue(&duy, &duy_list[0],gauss_l1l2l3);4669 TriaRef::GetParameterValue(&dux, &dux_list[0],gauss_l1l2l3); 4670 TriaRef::GetParameterValue(&duy, &duy_list[0],gauss_l1l2l3); 4671 4671 4672 4672 /*compute Du*/ … … 5242 5242 /*Friction: */ 5243 5243 //friction->GetAlpha2(&alpha2,&gauss_coord[0],VxEnum,VyEnum,VzEnum); 5244 GetParameterValue(&basalfriction,&basalfriction_list[0],gauss_coord); // TO BE DELETED5244 TriaRef::GetParameterValue(&basalfriction,&basalfriction_list[0],gauss_coord); // TO BE DELETED 5245 5245 5246 5246 /*Calculate scalar parameter*/ … … 5359 5359 } 5360 5360 5361 }5362 /*}}}*/5363 /*FUNCTION Tria::GetParameterDerivativeValue {{{1*/5364 void Tria::GetParameterDerivativeValue(double* p, double* plist,double* xyz_list, double* gauss_l1l2l3){5365 5366 const int NDOF2=2;5367 const int numgrids=3;5368 /*From node values of parameter p (plist[0],plist[1],plist[2]), return parameter derivative value at gaussian5369 * point specified by gauss_l1l2l3:5370 * dp/dx=plist[0]*dh1/dx+plist[1]*dh2/dx+plist[2]*dh3/dx5371 * dp/dx=plist[0]*dh1/dx+plist[1]*dh2/dx+plist[2]*dh3/dx5372 *5373 * p is a vector of size 2x1 already allocated.5374 */5375 5376 double dh1dh3[NDOF2][numgrids]; //nodal derivative functions in actual coordinate system.5377 5378 /*Get dh1dh2dh3 in actual coordinate system: */5379 GetNodalFunctionsDerivatives(&dh1dh3[0][0],xyz_list, gauss_l1l2l3);5380 5381 *(p+0)=plist[0]*dh1dh3[0][0]+plist[1]*dh1dh3[0][1]+plist[2]*dh1dh3[0][2];5382 *(p+1)=plist[0]*dh1dh3[1][0]+plist[1]*dh1dh3[1][1]+plist[2]*dh1dh3[1][2];5383 5384 }5385 /*}}}*/5386 /*FUNCTION Tria::GetParameterValue(double* pp, double* plist, double* gauss_l1l2l3) {{{1*/5387 void Tria::GetParameterValue(double* pp, double* plist, double* gauss_l1l2l3){5388 5389 /*From node values of parameter p (plist[0],plist[1],plist[2]), return parameter value at gaussian5390 * point specifie by gauss_l1l2l3: */5391 5392 /*nodal functions: */5393 double l1l2l3[3];5394 5395 /*output: */5396 double p;5397 5398 GetNodalFunctions(l1l2l3, gauss_l1l2l3);5399 5400 p=l1l2l3[0]*plist[0]+l1l2l3[1]*plist[1]+l1l2l3[2]*plist[2];5401 5402 /*Assign output pointers:*/5403 *pp=p;5404 5361 } 5405 5362 /*}}}*/ -
issm/trunk/src/c/objects/Elements/Tria.h
r4904 r4921 141 141 void GetDofList(int* doflist,int* pnumberofdofs); 142 142 void GetDofList1(int* doflist); 143 void GetParameterDerivativeValue(double* p, double* plist,double* xyz_list, double* gauss_l1l2l3);144 143 void GetParameterValue(double* pp, double* plist, double* gauss_l1l2l3); 145 144 void GetParameterValue(double* pvalue,Node* node,int enumtype); -
issm/trunk/src/c/objects/Elements/TriaRef.cpp
r4910 r4921 358 358 } 359 359 /*}}}*/ 360 /*FUNCTION TriaRef::GetParameterDerivativeValue {{{1*/ 361 void TriaRef::GetParameterDerivativeValue(double* p, double* plist,double* xyz_list, double* gauss){ 362 363 /*From node values of parameter p (plist[0],plist[1],plist[2]), return parameter derivative value at gaussian 364 * point specified by gauss_l1l2l3: 365 * dp/dx=plist[0]*dh1/dx+plist[1]*dh2/dx+plist[2]*dh3/dx 366 * dp/dx=plist[0]*dh1/dx+plist[1]*dh2/dx+plist[2]*dh3/dx 367 * 368 * p is a vector of size 2x1 already allocated. 369 */ 370 371 /*Nodal Derivatives*/ 372 double dh1dh3[2][3]; //nodal derivative functions in actual coordinate system. 373 374 /*Get dh1dh2dh3 in actual coordinate system: */ 375 GetNodalFunctionsDerivatives(&dh1dh3[0][0],xyz_list, gauss); 376 377 /*Assign values*/ 378 *(p+0)=plist[0]*dh1dh3[0][0]+plist[1]*dh1dh3[0][1]+plist[2]*dh1dh3[0][2]; 379 *(p+1)=plist[0]*dh1dh3[1][0]+plist[1]*dh1dh3[1][1]+plist[2]*dh1dh3[1][2]; 380 381 } 382 /*}}}*/ 383 /*FUNCTION TriaRef::GetParameterValue{{{1*/ 384 void TriaRef::GetParameterValue(double* p, double* plist, double* gauss){ 385 386 /*From node values of parameter p (plist[0],plist[1],plist[2]), return parameter value at gaussian 387 * point specifie by gauss: */ 388 389 /*nodal functions annd output: */ 390 double l1l2l3[3]; 391 392 /*Get nodal functions*/ 393 GetNodalFunctions(l1l2l3, gauss); 394 395 /*Get parameter*/ 396 *p=l1l2l3[0]*plist[0]+l1l2l3[1]*plist[1]+l1l2l3[2]*plist[2]; 397 } 398 /*}}}*/ -
issm/trunk/src/c/objects/Elements/TriaRef.h
r4885 r4921 35 35 void GetNodalFunctionsDerivatives(double* l1l2l3,double* xyz_list, double* gauss); 36 36 void GetNodalFunctionsDerivativesReference(double* dl1dl3,double* gauss); 37 void GetParameterValue(double* pp, double* plist, double* gauss); 38 void GetParameterDerivativeValue(double* pp, double* plist,double* xyz_list, double* gauss); 37 39 38 40 }; -
issm/trunk/src/c/objects/Inputs/PentaVertexInput.cpp
r4899 r4921 212 212 /*FUNCTION PentaVertexInput::GetParameterValue(double* pvalue,double* gauss){{{1*/ 213 213 void PentaVertexInput::GetParameterValue(double* pvalue,double* gauss){ 214 /*P1 interpolation on Gauss point*/ 215 216 /*intermediary*/ 217 double l1l6[6]; 218 219 /*nodal functions: */ 220 GetNodalFunctionsP1(&l1l6[0],gauss); 221 222 /*Assign output pointers:*/ 223 *pvalue=l1l6[0]*values[0]+l1l6[1]*values[1]+l1l6[2]*values[2]+l1l6[3]*values[3]+l1l6[4]*values[4]+l1l6[5]*values[5]; 214 215 /*Call PentaRef function*/ 216 PentaRef::GetParameterValue(pvalue,&values[0],gauss); 224 217 225 218 } … … 247 240 /*FUNCTION PentaVertexInput::GetParameterDerivativeValue{{{1*/ 248 241 void PentaVertexInput::GetParameterDerivativeValue(double* p, double* xyz_list, double* gauss){ 249 /*From grid values of parameter p (p_list[0], p_list[1], p_list[2], p_list[3], p_list[4] and p_list[4]), return parameter derivative value at gaussian point specified by gauss_coord: 250 * dp/dx=p_list[0]*dh1/dx+p_list[1]*dh2/dx+p_list[2]*dh3/dx+p_list[3]*dh4/dx+p_list[4]*dh5/dx+p_list[5]*dh6/dx; 251 * dp/dy=p_list[0]*dh1/dy+p_list[1]*dh2/dy+p_list[2]*dh3/dy+p_list[3]*dh4/dy+p_list[4]*dh5/dy+p_list[5]*dh6/dy; 252 * dp/dz=p_list[0]*dh1/dz+p_list[1]*dh2/dz+p_list[2]*dh3/dz+p_list[3]*dh4/dz+p_list[4]*dh5/dz+p_list[5]*dh6/dz; 253 * 254 * p is a vector of size 3x1 already allocated. 255 */ 256 257 const int NDOF3=3; 258 const int numgrids=6; 259 double dh1dh6[NDOF3][numgrids]; 260 261 /*Get nodal funnctions derivatives in actual coordinate system: */ 262 GetNodalFunctionsP1Derivatives(&dh1dh6[0][0],xyz_list, gauss); 263 264 p[0]=this->values[0]*dh1dh6[0][0]+this->values[1]*dh1dh6[0][1]+this->values[2]*dh1dh6[0][2]+this->values[3]*dh1dh6[0][3]+this->values[4]*dh1dh6[0][4]+this->values[5]*dh1dh6[0][5]; 265 p[1]=this->values[0]*dh1dh6[1][0]+this->values[1]*dh1dh6[1][1]+this->values[2]*dh1dh6[1][2]+this->values[3]*dh1dh6[1][3]+this->values[4]*dh1dh6[1][4]+this->values[5]*dh1dh6[1][5]; 266 p[2]=this->values[0]*dh1dh6[2][0]+this->values[1]*dh1dh6[2][1]+this->values[2]*dh1dh6[2][2]+this->values[3]*dh1dh6[2][3]+this->values[4]*dh1dh6[2][4]+this->values[5]*dh1dh6[2][5]; 267 242 243 /*Call PentaRef function*/ 244 PentaRef::GetParameterDerivativeValue(p,&values[0],xyz_list,gauss); 268 245 } 269 246 /*}}}*/ -
issm/trunk/src/c/objects/Inputs/TriaVertexInput.cpp
r4899 r4921 142 142 } 143 143 /*}}}*/ 144 /*FUNCTION BeamVertexInput::SpawnBeamInput{{{1*/144 /*FUNCTION TriaVertexInput::SpawnBeamInput{{{1*/ 145 145 Input* TriaVertexInput::SpawnBeamInput(int* indices){ 146 146 … … 192 192 /*FUNCTION TriaVertexInput::GetParameterValue{{{1*/ 193 193 void TriaVertexInput::GetParameterValue(double* pvalue,double* gauss){ 194 /*P1 interpolation on Gauss point*/ 195 196 /*intermediary*/ 197 double l1l2l3[3]; 198 199 /*nodal functions: */ 200 GetNodalFunctions(l1l2l3,gauss); 201 202 /*Assign output pointers:*/ 203 *pvalue=l1l2l3[0]*values[0]+l1l2l3[1]*values[1]+l1l2l3[2]*values[2]; 194 195 /*Call TriaRef function*/ 196 TriaRef::GetParameterValue(pvalue,&values[0],gauss); 204 197 205 198 } … … 225 218 /*FUNCTION TriaVertexInput::GetParameterDerivativeValue{{{1*/ 226 219 void TriaVertexInput::GetParameterDerivativeValue(double* p, double* xyz_list, double* gauss){ 227 /*From node values of parameter p (plist[0],plist[1],plist[2]), return parameter derivative value at gaussian 228 * point specified by gauss_l1l2l3: 229 * dp/dx=plist[0]*dh1/dx+plist[1]*dh2/dx+plist[2]*dh3/dx 230 * dp/dx=plist[0]*dh1/dx+plist[1]*dh2/dx+plist[2]*dh3/dx 231 * 232 * p is a vector of size 2x1 already allocated. 233 */ 234 235 const int NDOF2=2; 236 const int numgrids=3; 237 double dh1dh3[NDOF2][numgrids]; //nodal derivative functions in actual coordinate system. 238 239 /*Get nodal funnctions derivatives in actual coordinate system: */ 240 GetNodalFunctionsDerivatives(&dh1dh3[0][0],xyz_list,gauss); 241 242 p[0]=this->values[0]*dh1dh3[0][0]+this->values[1]*dh1dh3[0][1]+this->values[2]*dh1dh3[0][2]; 243 p[1]=this->values[0]*dh1dh3[1][0]+this->values[1]*dh1dh3[1][1]+this->values[2]*dh1dh3[1][2]; 244 220 221 /*Call TriaRef function*/ 222 TriaRef::GetParameterDerivativeValue(p,&values[0],xyz_list,gauss); 245 223 } 246 224 /*}}}*/
Note:
See TracChangeset
for help on using the changeset viewer.