Changeset 3855
- Timestamp:
- 05/19/10 16:15:49 (15 years ago)
- Location:
- issm/trunk/src/c
- Files:
-
- 13 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk/src/c/DataSet/DataSet.h
r3847 r3855 143 143 144 144 void GetParameterDerivativeValue(double* derivativevalues, double* xyz_list, double* gauss,int enum_type); 145 void GetStrainRate2d(double* epsilon,double* xyz_list, double* gauss, int vxenum, int vyenum,int formulation_enum=MacAyealFormulationEnum); 146 void GetStrainRate3d(double* epsilon,double* xyz_list, double* gauss, int vxenum, int vyenum,int vzenum,int formulation_enum=StokesFormulationEnum); 145 void GetStrainRate2d(double* epsilon,double* xyz_list, double* gauss, int vxenum, int vyenum); 146 void GetStrainRate3d(double* epsilon,double* xyz_list, double* gauss, int vxenum, int vyenum,int vzenum); 147 void GetStrainRate3dPattyn(double* epsilon,double* xyz_list, double* gauss, int vxenum, int vyenum); 147 148 148 149 void ChangeEnum(int enumtype,int new_enumtype); -
issm/trunk/src/c/DataSet/Inputs.cpp
r3852 r3855 306 306 } 307 307 /*}}}*/ 308 /*FUNCTION Inputs::GetStrainRate2d(double* epsilon,double* xyz_list, double* gauss, int vxenum, int vyenum, int formulation_enum){{{1*/ 309 void Inputs::GetStrainRate2d(double* epsilon,double* xyz_list, double* gauss, int vxenum, int vyenum,int formulation_enum){ 308 /*FUNCTION Inputs::GetStrainRate2d(double* epsilon,double* xyz_list, double* gauss, int vxenum, int vyenum){{{1*/ 309 void Inputs::GetStrainRate2d(double* epsilon,double* xyz_list, double* gauss, int vxenum, int vyenum){ 310 /*Compute the 2d Strain Rate (3 components): 311 * 312 * epsilon=[exx eyy exy] 313 */ 310 314 311 315 vector<Object*>::iterator object; … … 341 345 342 346 /*Get strain rate assuming that epsilon has been allocated*/ 343 vxinput->GetVxStrainRate2d(epsilonvx,xyz_list,gauss,formulation_enum); 344 vyinput->GetVyStrainRate2d(epsilonvy,xyz_list,gauss,formulation_enum); 347 vxinput->GetVxStrainRate2d(epsilonvx,xyz_list,gauss); 348 vyinput->GetVyStrainRate2d(epsilonvy,xyz_list,gauss); 349 350 /*Sum all contributions*/ 345 351 for(i=0;i<3;i++) epsilon[i]=epsilonvx[i]+epsilonvy[i]; 346 352 347 353 } 348 354 /*}}}*/ 349 /*FUNCTION Inputs::GetStrainRate3d(double* epsilon,double* xyz_list, double* gauss, int vxenum, int vyenum, int formulation_enum){{{1*/ 350 void Inputs::GetStrainRate3d(double* epsilon,double* xyz_list, double* gauss, int vxenum, int vyenum,int vzenum,int formulation_enum){ 351 355 /*FUNCTION Inputs::GetStrainRate3d(double* epsilon,double* xyz_list, double* gauss, int vxenum, int vyenum, int vzenum){{{1*/ 356 void Inputs::GetStrainRate3d(double* epsilon,double* xyz_list, double* gauss, int vxenum, int vyenum,int vzenum){ 357 /*Compute the 3d Strain Rate (6 components): 358 * 359 * epsilon=[exx eyy ezz exy exz euz] 360 */ 361 362 int i; 352 363 vector<Object*>::iterator object; 353 364 Input* vxinput=NULL; 354 365 Input* vyinput=NULL; 355 366 Input* vzinput=NULL; 367 bool foundvx=false; 368 bool foundvy=false; 369 bool foundvz=false; 370 double epsilonvx[6]; 371 double epsilonvy[6]; 372 double epsilonvz[6]; 356 373 357 374 /*Go through inputs and find data for vxenum: */ 358 375 for ( object=objects.begin() ; object < objects.end(); object++ ){ 359 376 vxinput=(Input*)(*object); 360 if (vxinput->EnumType()==vxenum)break; 377 if (vxinput->EnumType()==vxenum){ 378 foundvx=true; 379 break; 380 } 361 381 } 362 382 /*Go through inputs and find data for vyenum: */ 363 383 for ( object=objects.begin() ; object < objects.end(); object++ ){ 364 384 vyinput=(Input*)(*object); 365 if (vyinput->EnumType()==vyenum)break; 366 } 367 /*Go through inputs and find data for vzenum: */ 385 if (vyinput->EnumType()==vyenum){ 386 foundvy=true; 387 break; 388 } 389 } 390 /*Go through inputs and find data for vzenum, not for Pattyn*/ 368 391 for ( object=objects.begin() ; object < objects.end(); object++ ){ 369 392 vzinput=(Input*)(*object); 370 if (vzinput->EnumType()==vzenum)break; 371 } 372 373 if (!vxinput || !vyinput || !vzinput){ 374 /*we could not find one input with the correct enum type. No defaults values were provided, 375 * error out: */ 376 ISSMERROR("Could not find input with enum %i or enum %i or enum %i",vxenum,vyenum,vzenum); 377 } 378 379 ISSMERROR("STOP, take care of Pattyn + see changes in 2d"); 393 if (vzinput->EnumType()==vzenum){ 394 foundvz=true; 395 break; 396 } 397 } 398 399 /*Check that all inputs have been found*/ 400 if (!foundvx || !foundvy || !foundvz){ 401 ISSMERROR("Could not find input with enum %i (%s), enum %i (%s) or enum %i (%s)",vxenum,EnumAsString(vxenum),vyenum,EnumAsString(vyenum),vzenum,EnumAsString(vzenum)); 402 } 403 404 /*Get strain rate assuming that epsilon has been allocated*/ 405 vxinput->GetVxStrainRate3d(epsilonvx,xyz_list,gauss); 406 vyinput->GetVyStrainRate3d(epsilonvy,xyz_list,gauss); 407 vzinput->GetVzStrainRate3d(epsilonvz,xyz_list,gauss); 408 409 /*Sum all contributions*/ 410 for(i=0;i<6;i++) epsilon[i]=epsilonvx[i]+epsilonvy[i]+epsilonvz[i]; 411 412 } 413 /*}}}*/ 414 /*FUNCTION Inputs::GetStrainRate3dPattyn(double* epsilon,double* xyz_list, double* gauss, int vxenum, int vyenum){{{1*/ 415 void Inputs::GetStrainRate3dPattyn(double* epsilon,double* xyz_list, double* gauss, int vxenum, int vyenum){ 416 /*Compute the 3d Blatter/PattynStrain Rate (5 components): 417 * 418 * epsilon=[exx eyy exy exz euz] 419 * 420 * with exz=1/2 du/dz 421 * eyz=1/2 dv/dz 422 * 423 * the contribution of vz is neglected 424 */ 425 426 int i; 427 vector<Object*>::iterator object; 428 Input* vxinput=NULL; 429 Input* vyinput=NULL; 430 bool foundvx=false; 431 bool foundvy=false; 432 double epsilonvx[5]; 433 double epsilonvy[5]; 434 435 /*Go through inputs and find data for vxenum: */ 436 for ( object=objects.begin() ; object < objects.end(); object++ ){ 437 vxinput=(Input*)(*object); 438 if (vxinput->EnumType()==vxenum){ 439 foundvx=true; 440 break; 441 } 442 } 443 /*Go through inputs and find data for vyenum: */ 444 for ( object=objects.begin() ; object < objects.end(); object++ ){ 445 vyinput=(Input*)(*object); 446 if (vyinput->EnumType()==vyenum){ 447 foundvy=true; 448 break; 449 } 450 } 451 452 /*Check that all inputs have been found*/ 453 if (!foundvx || !foundvy){ 454 ISSMERROR("Could not find input with enum %i (%s) or enum %i (%s)",vxenum,EnumAsString(vxenum),vyenum,EnumAsString(vyenum)); 455 } 456 457 /*Get strain rate assuming that epsilon has been allocated*/ 458 vxinput->GetVxStrainRate3dPattyn(epsilonvx,xyz_list,gauss); 459 vyinput->GetVyStrainRate3dPattyn(epsilonvy,xyz_list,gauss); 460 461 /*Sum all contributions*/ 462 for(i=0;i<5;i++) epsilon[i]=epsilonvx[i]+epsilonvy[i]; 380 463 381 464 } -
issm/trunk/src/c/objects/Inputs/BeamVertexInput.h
r3847 r3855 63 63 64 64 void GetParameterDerivativeValue(double* derivativevalues, double* xyz_list, double* gauss); 65 void GetVxStrainRate2d(double* epsilonvx,double* xyz_list, double* gauss,int formulation_enum=MacAyealFormulationEnum){ISSMERROR("not implemented yet");}; 66 void GetVyStrainRate2d(double* epsilonvy,double* xyz_list, double* gauss,int formulation_enum=MacAyealFormulationEnum){ISSMERROR("not implemented yet");}; 67 void GetVxStrainRate3d(double* epsilonvx,double* xyz_list, double* gauss,int formulation_enum=StokesFormulationEnum){ISSMERROR("not implemented yet");}; 68 void GetVyStrainRate3d(double* epsilonvy,double* xyz_list, double* gauss,int formulation_enum=StokesFormulationEnum){ISSMERROR("not implemented yet");}; 69 void GetVzStrainRate3d(double* epsilonvz,double* xyz_list, double* gauss,int formulation_enum=StokesFormulationEnum){ISSMERROR("not implemented yet");}; 65 void GetVxStrainRate2d(double* epsilonvx,double* xyz_list, double* gauss){ISSMERROR("not implemented yet");}; 66 void GetVyStrainRate2d(double* epsilonvy,double* xyz_list, double* gauss){ISSMERROR("not implemented yet");}; 67 void GetVxStrainRate3d(double* epsilonvx,double* xyz_list, double* gauss){ISSMERROR("not implemented yet");}; 68 void GetVyStrainRate3d(double* epsilonvy,double* xyz_list, double* gauss){ISSMERROR("not implemented yet");}; 69 void GetVzStrainRate3d(double* epsilonvz,double* xyz_list, double* gauss){ISSMERROR("not implemented yet");}; 70 void GetVxStrainRate3dPattyn(double* epsilonvx,double* xyz_list, double* gauss){ISSMERROR("not implemented yet");}; 71 void GetVyStrainRate3dPattyn(double* epsilonvy,double* xyz_list, double* gauss){ISSMERROR("not implemented yet");}; 70 72 void ChangeEnum(int newenumtype); 71 73 /*}}}*/ -
issm/trunk/src/c/objects/Inputs/BoolInput.h
r3847 r3855 63 63 64 64 void GetParameterDerivativeValue(double* derivativevalues, double* xyz_list, double* gauss); 65 void GetVxStrainRate2d(double* epsilonvx,double* xyz_list, double* gauss,int formulation_enum=MacAyealFormulationEnum){ISSMERROR("not implemented yet");}; 66 void GetVyStrainRate2d(double* epsilonvy,double* xyz_list, double* gauss,int formulation_enum=MacAyealFormulationEnum){ISSMERROR("not implemented yet");}; 67 void GetVxStrainRate3d(double* epsilonvx,double* xyz_list, double* gauss,int formulation_enum=StokesFormulationEnum){ISSMERROR("not implemented yet");}; 68 void GetVyStrainRate3d(double* epsilonvy,double* xyz_list, double* gauss,int formulation_enum=StokesFormulationEnum){ISSMERROR("not implemented yet");}; 69 void GetVzStrainRate3d(double* epsilonvz,double* xyz_list, double* gauss,int formulation_enum=StokesFormulationEnum){ISSMERROR("not implemented yet");}; 65 void GetVxStrainRate2d(double* epsilonvx,double* xyz_list, double* gauss){ISSMERROR("not implemented yet");}; 66 void GetVyStrainRate2d(double* epsilonvy,double* xyz_list, double* gauss){ISSMERROR("not implemented yet");}; 67 void GetVxStrainRate3d(double* epsilonvx,double* xyz_list, double* gauss){ISSMERROR("not implemented yet");}; 68 void GetVyStrainRate3d(double* epsilonvy,double* xyz_list, double* gauss){ISSMERROR("not implemented yet");}; 69 void GetVzStrainRate3d(double* epsilonvz,double* xyz_list, double* gauss){ISSMERROR("not implemented yet");}; 70 void GetVxStrainRate3dPattyn(double* epsilonvx,double* xyz_list, double* gauss){ISSMERROR("not implemented yet");}; 71 void GetVyStrainRate3dPattyn(double* epsilonvy,double* xyz_list, double* gauss){ISSMERROR("not implemented yet");}; 70 72 void ChangeEnum(int newenumtype); 71 73 /*}}}*/ -
issm/trunk/src/c/objects/Inputs/DoubleInput.h
r3847 r3855 63 63 64 64 void GetParameterDerivativeValue(double* derivativevalues, double* xyz_list, double* gauss); 65 void GetVxStrainRate2d(double* epsilonvx,double* xyz_list, double* gauss,int formulation_enum=MacAyealFormulationEnum){ISSMERROR("not implemented yet");}; 66 void GetVyStrainRate2d(double* epsilonvy,double* xyz_list, double* gauss,int formulation_enum=MacAyealFormulationEnum){ISSMERROR("not implemented yet");}; 67 void GetVxStrainRate3d(double* epsilonvx,double* xyz_list, double* gauss,int formulation_enum=StokesFormulationEnum){ISSMERROR("not implemented yet");}; 68 void GetVyStrainRate3d(double* epsilonvy,double* xyz_list, double* gauss,int formulation_enum=StokesFormulationEnum){ISSMERROR("not implemented yet");}; 69 void GetVzStrainRate3d(double* epsilonvz,double* xyz_list, double* gauss,int formulation_enum=StokesFormulationEnum){ISSMERROR("not implemented yet");}; 65 void GetVxStrainRate2d(double* epsilonvx,double* xyz_list, double* gauss){ISSMERROR("not implemented yet");}; 66 void GetVyStrainRate2d(double* epsilonvy,double* xyz_list, double* gauss){ISSMERROR("not implemented yet");}; 67 void GetVxStrainRate3d(double* epsilonvx,double* xyz_list, double* gauss){ISSMERROR("not implemented yet");}; 68 void GetVyStrainRate3d(double* epsilonvy,double* xyz_list, double* gauss){ISSMERROR("not implemented yet");}; 69 void GetVzStrainRate3d(double* epsilonvz,double* xyz_list, double* gauss){ISSMERROR("not implemented yet");}; 70 void GetVxStrainRate3dPattyn(double* epsilonvx,double* xyz_list, double* gauss){ISSMERROR("not implemented yet");}; 71 void GetVyStrainRate3dPattyn(double* epsilonvy,double* xyz_list, double* gauss){ISSMERROR("not implemented yet");}; 70 72 void ChangeEnum(int newenumtype); 71 73 /*}}}*/ -
issm/trunk/src/c/objects/Inputs/Input.h
r3847 r3855 36 36 37 37 virtual void GetParameterDerivativeValue(double* derivativevalues, double* xyz_list, double* gauss)=0; 38 virtual void GetVxStrainRate2d(double* epsilonvx,double* xyz_list, double* gauss,int formulation_enum=MacAyealFormulationEnum)=0; 39 virtual void GetVyStrainRate2d(double* epsilonvy,double* xyz_list, double* gauss,int formulation_enum=MacAyealFormulationEnum)=0; 40 virtual void GetVxStrainRate3d(double* epsilonvx,double* xyz_list, double* gauss,int formulation_enum=StokesFormulationEnum)=0; 41 virtual void GetVyStrainRate3d(double* epsilonvy,double* xyz_list, double* gauss,int formulation_enum=StokesFormulationEnum)=0; 42 virtual void GetVzStrainRate3d(double* epsilonvz,double* xyz_list, double* gauss,int formulation_enum=StokesFormulationEnum)=0; 38 virtual void GetVxStrainRate2d(double* epsilonvx,double* xyz_list, double* gauss)=0; 39 virtual void GetVyStrainRate2d(double* epsilonvy,double* xyz_list, double* gauss)=0; 40 virtual void GetVxStrainRate3d(double* epsilonvx,double* xyz_list, double* gauss)=0; 41 virtual void GetVyStrainRate3d(double* epsilonvy,double* xyz_list, double* gauss)=0; 42 virtual void GetVzStrainRate3d(double* epsilonvz,double* xyz_list, double* gauss)=0; 43 virtual void GetVxStrainRate3dPattyn(double* epsilonvx,double* xyz_list, double* gauss)=0; 44 virtual void GetVyStrainRate3dPattyn(double* epsilonvy,double* xyz_list, double* gauss)=0; 43 45 virtual void ChangeEnum(int newenumtype)=0; 44 46 virtual Input* SpawnTriaInput(int* indices)=0; -
issm/trunk/src/c/objects/Inputs/IntInput.h
r3847 r3855 63 63 64 64 void GetParameterDerivativeValue(double* derivativevalues, double* xyz_list, double* gauss); 65 void GetVxStrainRate2d(double* epsilonvx,double* xyz_list, double* gauss,int formulation_enum=MacAyealFormulationEnum){ISSMERROR("not implemented yet");}; 66 void GetVyStrainRate2d(double* epsilonvy,double* xyz_list, double* gauss,int formulation_enum=MacAyealFormulationEnum){ISSMERROR("not implemented yet");}; 67 void GetVxStrainRate3d(double* epsilonvx,double* xyz_list, double* gauss,int formulation_enum=StokesFormulationEnum){ISSMERROR("not implemented yet");}; 68 void GetVyStrainRate3d(double* epsilonvy,double* xyz_list, double* gauss,int formulation_enum=StokesFormulationEnum){ISSMERROR("not implemented yet");}; 69 void GetVzStrainRate3d(double* epsilonvz,double* xyz_list, double* gauss,int formulation_enum=StokesFormulationEnum){ISSMERROR("not implemented yet");}; 65 void GetVxStrainRate2d(double* epsilonvx,double* xyz_list, double* gauss){ISSMERROR("not implemented yet");}; 66 void GetVyStrainRate2d(double* epsilonvy,double* xyz_list, double* gauss){ISSMERROR("not implemented yet");}; 67 void GetVxStrainRate3d(double* epsilonvx,double* xyz_list, double* gauss){ISSMERROR("not implemented yet");}; 68 void GetVyStrainRate3d(double* epsilonvy,double* xyz_list, double* gauss){ISSMERROR("not implemented yet");}; 69 void GetVzStrainRate3d(double* epsilonvz,double* xyz_list, double* gauss){ISSMERROR("not implemented yet");}; 70 void GetVxStrainRate3dPattyn(double* epsilonvx,double* xyz_list, double* gauss){ISSMERROR("not implemented yet");}; 71 void GetVyStrainRate3dPattyn(double* epsilonvy,double* xyz_list, double* gauss){ISSMERROR("not implemented yet");}; 70 72 void ChangeEnum(int newenumtype); 71 73 /*}}}*/ -
issm/trunk/src/c/objects/Inputs/PentaVertexInput.cpp
r3847 r3855 234 234 } 235 235 /*}}}*/ 236 /*FUNCTION PentaVertexInput::GetVxStrainRate3d(double* epsilonvx,double* xyz_list, double* gauss,int formulation_enum) {{{1*/ 237 void PentaVertexInput::GetVxStrainRate3d(double* epsilonvx,double* xyz_list, double* gauss,int formulation_enum){ 238 239 if(formulation_enum==StokesAnalysisEnum){ 240 GetVxStrainRate3dStokes(epsilonvx,xyz_list,gauss); 241 } 242 else if(formulation_enum==PattynFormulationEnum){ 243 GetVxStrainRate3dPattyn(epsilonvx,xyz_list,gauss); 244 } 245 else{ 246 ISSMERROR("Formulation enum %i (%s) not supported yet",formulation_enum,EnumAsString(formulation_enum)); 247 } 248 } 249 /*}}}*/ 250 /*FUNCTION PentaVertexInput::GetVxStrainRate3dStokes(double* epsilonvx,double* xyz_list, double* gauss) {{{1*/ 251 void PentaVertexInput::GetVxStrainRate3dStokes(double* epsilonvx,double* xyz_list, double* gauss){ 236 /*FUNCTION PentaVertexInput::GetVxStrainRate3d(double* epsilonvx,double* xyz_list, double* gauss) {{{1*/ 237 void PentaVertexInput::GetVxStrainRate3d(double* epsilonvx,double* xyz_list, double* gauss){ 252 238 int i,j; 253 239 … … 293 279 } 294 280 /*}}}*/ 295 /*FUNCTION PentaVertexInput::GetVxStrainRate3dPattyn(double* epsilonvx,double* xyz_list, double* gauss) {{{1*/ 296 void PentaVertexInput::GetVxStrainRate3dPattyn(double* epsilonvx,double* xyz_list, double* gauss){ 297 298 int i; 299 const int numgrids=6; 300 const int NDOF2=2; 301 double B[5][NDOF2*numgrids]; 302 double velocity[numgrids][NDOF2]; 303 304 /*Get B matrix: */ 305 GetBPattyn(&B[0][0], xyz_list, gauss); 306 307 /*Here, we are computing the strain rate of (vx,0)*/ 308 for(i=0;i<numgrids;i++){ 309 velocity[i][0]=this->values[i]; 310 velocity[i][1]=0.0; 311 } 312 313 /*Multiply B by velocity, to get strain rate: */ 314 MatrixMultiply( &B[0][0],5,NDOF2*numgrids,0, 315 &velocity[0][0],NDOF2*numgrids,1,0, 316 epsilonvx,0); 317 318 } 319 /*}}}*/ 320 /*FUNCTION PentaVertexInput::GetVyStrainRate3d(double* epsilonvy,double* xyz_list, double* gauss,int formulation_enum) {{{1*/ 321 void PentaVertexInput::GetVyStrainRate3d(double* epsilonvy,double* xyz_list, double* gauss,int formulation_enum){ 322 323 if(formulation_enum==StokesAnalysisEnum){ 324 GetVyStrainRate3dStokes(epsilonvy,xyz_list,gauss); 325 } 326 else if(formulation_enum==PattynFormulationEnum){ 327 GetVyStrainRate3dPattyn(epsilonvy,xyz_list,gauss); 328 } 329 else{ 330 ISSMERROR("Formulation enum %i (%s) not supported yet",formulation_enum,EnumAsString(formulation_enum)); 331 } 332 } 333 /*}}}*/ 334 /*FUNCTION PentaVertexInput::GetVyStrainRate3dStokes(double* epsilonvy,double* xyz_list, double* gauss) {{{1*/ 335 void PentaVertexInput::GetVyStrainRate3dStokes(double* epsilonvy,double* xyz_list, double* gauss){ 281 /*FUNCTION PentaVertexInput::GetVyStrainRate3d(double* epsilonvy,double* xyz_list, double* gauss) {{{1*/ 282 void PentaVertexInput::GetVyStrainRate3d(double* epsilonvy,double* xyz_list, double* gauss){ 336 283 int i,j; 337 284 … … 377 324 } 378 325 /*}}}*/ 379 /*FUNCTION PentaVertexInput::GetVyStrainRate3dPattyn(double* epsilonvy,double* xyz_list, double* gauss) {{{1*/ 380 void PentaVertexInput::GetVyStrainRate3dPattyn(double* epsilonvy,double* xyz_list, double* gauss){ 381 382 int i; 383 const int numgrids=6; 384 const int NDOF2=2; 385 double B[5][NDOF2*numgrids]; 386 double velocity[numgrids][NDOF2]; 387 388 /*Get B matrix: */ 389 GetBPattyn(&B[0][0], xyz_list, gauss); 390 391 /*Here, we are computing the strain rate of (0,vy)*/ 392 for(i=0;i<numgrids;i++){ 393 velocity[i][0]=0.0; 394 velocity[i][1]=this->values[i]; 395 } 396 397 /*Multiply B by velocity, to get strain rate: */ 398 MatrixMultiply( &B[0][0],5,NDOF2*numgrids,0, 399 &velocity[0][0],NDOF2*numgrids,1,0, 400 epsilonvy,0); 401 402 } 403 /*}}}*/ 404 /*FUNCTION PentaVertexInput::GetVzStrainRate3d(double* epsilonvz,double* xyz_list, double* gauss,int formulation_enum) {{{1*/ 405 void PentaVertexInput::GetVzStrainRate3d(double* epsilonvz,double* xyz_list, double* gauss,int formulation_enum){ 406 407 if(formulation_enum==StokesAnalysisEnum){ 408 GetVzStrainRate3dStokes(epsilonvz,xyz_list,gauss); 409 } 410 else if(formulation_enum==PattynFormulationEnum){ 411 GetVzStrainRate3dPattyn(epsilonvz,xyz_list,gauss); 412 } 413 else{ 414 ISSMERROR("Formulation enum %i (%s) not supported yet",formulation_enum,EnumAsString(formulation_enum)); 415 } 416 } 417 /*}}}*/ 418 /*FUNCTION PentaVertexInput::GetVzStrainRate3dStokes(double* epsilonvz,double* xyz_list, double* gauss) {{{1*/ 419 void PentaVertexInput::GetVzStrainRate3dStokes(double* epsilonvz,double* xyz_list, double* gauss){ 326 /*FUNCTION PentaVertexInput::GetVzStrainRate3d(double* epsilonvz,double* xyz_list, double* gauss) {{{1*/ 327 void PentaVertexInput::GetVzStrainRate3d(double* epsilonvz,double* xyz_list, double* gauss){ 420 328 int i,j; 421 329 … … 462 370 } 463 371 /*}}}*/ 464 /*FUNCTION PentaVertexInput::GetVzStrainRate3dPattyn(double* epsilonvz,double* xyz_list, double* gauss) {{{1*/ 465 void PentaVertexInput::GetVzStrainRate3dPattyn(double* epsilonvz,double* xyz_list, double* gauss){ 466 467 /*vz does not contribute to the strain rate in Pattyn/Blatter's model*/ 468 for (int i=0;i<5;i++){ 469 epsilonvz[i]=0.0; 470 } 372 /*FUNCTION PentaVertexInput::GetVxStrainRate3dPattyn(double* epsilonvx,double* xyz_list, double* gauss) {{{1*/ 373 void PentaVertexInput::GetVxStrainRate3dPattyn(double* epsilonvx,double* xyz_list, double* gauss){ 374 375 int i; 376 const int numgrids=6; 377 const int NDOF2=2; 378 double B[5][NDOF2*numgrids]; 379 double velocity[numgrids][NDOF2]; 380 381 /*Get B matrix: */ 382 GetBPattyn(&B[0][0], xyz_list, gauss); 383 384 /*Here, we are computing the strain rate of (vx,0)*/ 385 for(i=0;i<numgrids;i++){ 386 velocity[i][0]=this->values[i]; 387 velocity[i][1]=0.0; 388 } 389 390 /*Multiply B by velocity, to get strain rate: */ 391 MatrixMultiply( &B[0][0],5,NDOF2*numgrids,0, 392 &velocity[0][0],NDOF2*numgrids,1,0, 393 epsilonvx,0); 394 395 } 396 /*}}}*/ 397 /*FUNCTION PentaVertexInput::GetVyStrainRate3dPattyn(double* epsilonvy,double* xyz_list, double* gauss) {{{1*/ 398 void PentaVertexInput::GetVyStrainRate3dPattyn(double* epsilonvy,double* xyz_list, double* gauss){ 399 400 int i; 401 const int numgrids=6; 402 const int NDOF2=2; 403 double B[5][NDOF2*numgrids]; 404 double velocity[numgrids][NDOF2]; 405 406 /*Get B matrix: */ 407 GetBPattyn(&B[0][0], xyz_list, gauss); 408 409 /*Here, we are computing the strain rate of (0,vy)*/ 410 for(i=0;i<numgrids;i++){ 411 velocity[i][0]=0.0; 412 velocity[i][1]=this->values[i]; 413 } 414 415 /*Multiply B by velocity, to get strain rate: */ 416 MatrixMultiply( &B[0][0],5,NDOF2*numgrids,0, 417 &velocity[0][0],NDOF2*numgrids,1,0, 418 epsilonvy,0); 471 419 472 420 } -
issm/trunk/src/c/objects/Inputs/PentaVertexInput.h
r3847 r3855 62 62 63 63 void GetParameterDerivativeValue(double* derivativevalues, double* xyz_list, double* gauss); 64 void GetVxStrainRate2d(double* epsilonvx,double* xyz_list, double* gauss,int formulation_enum=MacAyealFormulationEnum){ISSMERROR("not implemented yet");}; 65 void GetVyStrainRate2d(double* epsilonvy,double* xyz_list, double* gauss,int formulation_enum=MacAyealFormulationEnum){ISSMERROR("not implemented yet");}; 66 void GetVxStrainRate3d(double* epsilonvx,double* xyz_list, double* gauss,int formulation_enum=StokesFormulationEnum); 67 void GetVxStrainRate3dStokes(double* epsilonvx,double* xyz_list, double* gauss); 64 void GetVxStrainRate2d(double* epsilonvx,double* xyz_list, double* gauss){ISSMERROR("not implemented yet");}; 65 void GetVyStrainRate2d(double* epsilonvy,double* xyz_list, double* gauss){ISSMERROR("not implemented yet");}; 66 void GetVxStrainRate3d(double* epsilonvx,double* xyz_list, double* gauss); 67 void GetVyStrainRate3d(double* epsilonvy,double* xyz_list, double* gauss); 68 void GetVzStrainRate3d(double* epsilonvz,double* xyz_list, double* gauss); 68 69 void GetVxStrainRate3dPattyn(double* epsilonvx,double* xyz_list, double* gauss); 69 void GetVyStrainRate3d(double* epsilonvy,double* xyz_list, double* gauss,int formulation_enum=StokesFormulationEnum);70 void GetVyStrainRate3dStokes(double* epsilonvy,double* xyz_list, double* gauss);71 70 void GetVyStrainRate3dPattyn(double* epsilonvy,double* xyz_list, double* gauss); 72 void GetVzStrainRate3d(double* epsilonvz,double* xyz_list, double* gauss,int formulation_enum=StokesFormulationEnum);73 void GetVzStrainRate3dStokes(double* epsilonvz,double* xyz_list, double* gauss);74 void GetVzStrainRate3dPattyn(double* epsilonvz,double* xyz_list, double* gauss);75 71 void ChangeEnum(int newenumtype); 76 72 void GetNodalFunctionsP1(double* l1l6, double* gauss_coord); -
issm/trunk/src/c/objects/Inputs/SingVertexInput.h
r3847 r3855 62 62 63 63 void GetParameterDerivativeValue(double* derivativevalues, double* xyz_list, double* gauss); 64 void GetVxStrainRate2d(double* epsilonvx,double* xyz_list, double* gauss,int formulation_enum=MacAyealFormulationEnum){ISSMERROR("not implemented yet");}; 65 void GetVyStrainRate2d(double* epsilonvy,double* xyz_list, double* gauss,int formulation_enum=MacAyealFormulationEnum){ISSMERROR("not implemented yet");}; 66 void GetVxStrainRate3d(double* epsilonvx,double* xyz_list, double* gauss,int formulation_enum=StokesFormulationEnum){ISSMERROR("not implemented yet");}; 67 void GetVyStrainRate3d(double* epsilonvy,double* xyz_list, double* gauss,int formulation_enum=StokesFormulationEnum){ISSMERROR("not implemented yet");}; 68 void GetVzStrainRate3d(double* epsilonvz,double* xyz_list, double* gauss,int formulation_enum=StokesFormulationEnum){ISSMERROR("not implemented yet");}; 64 void GetVxStrainRate2d(double* epsilonvx,double* xyz_list, double* gauss){ISSMERROR("not implemented yet");}; 65 void GetVyStrainRate2d(double* epsilonvy,double* xyz_list, double* gauss){ISSMERROR("not implemented yet");}; 66 void GetVxStrainRate3d(double* epsilonvx,double* xyz_list, double* gauss){ISSMERROR("not implemented yet");}; 67 void GetVyStrainRate3d(double* epsilonvy,double* xyz_list, double* gauss){ISSMERROR("not implemented yet");}; 68 void GetVzStrainRate3d(double* epsilonvz,double* xyz_list, double* gauss){ISSMERROR("not implemented yet");}; 69 void GetVxStrainRate3dPattyn(double* epsilonvx,double* xyz_list, double* gauss){ISSMERROR("not implemented yet");}; 70 void GetVyStrainRate3dPattyn(double* epsilonvy,double* xyz_list, double* gauss){ISSMERROR("not implemented yet");}; 69 71 void ChangeEnum(int newenumtype); 70 72 /*}}}*/ -
issm/trunk/src/c/objects/Inputs/TriaVertexInput.cpp
r3847 r3855 203 203 } 204 204 /*}}}*/ 205 /*FUNCTION TriaVertexInput::GetVxStrainRate2d(double* epsilonvx,double* xyz_list, double* gauss ,int formulation_enum) {{{1*/206 void TriaVertexInput::GetVxStrainRate2d(double* epsilonvx,double* xyz_list, double* gauss ,int formulation_enum){205 /*FUNCTION TriaVertexInput::GetVxStrainRate2d(double* epsilonvx,double* xyz_list, double* gauss) {{{1*/ 206 void TriaVertexInput::GetVxStrainRate2d(double* epsilonvx,double* xyz_list, double* gauss){ 207 207 208 208 /*Intermediary*/ … … 227 227 } 228 228 /*}}}*/ 229 /*FUNCTION TriaVertexInput::GetVyStrainRate2d(double* epsilonvy,double* xyz_list, double* gauss ,int formulation_enum) {{{1*/230 void TriaVertexInput::GetVyStrainRate2d(double* epsilonvy,double* xyz_list, double* gauss ,int formulation_enum){229 /*FUNCTION TriaVertexInput::GetVyStrainRate2d(double* epsilonvy,double* xyz_list, double* gauss) {{{1*/ 230 void TriaVertexInput::GetVyStrainRate2d(double* epsilonvy,double* xyz_list, double* gauss){ 231 231 232 232 /*Intermediary*/ -
issm/trunk/src/c/objects/Inputs/TriaVertexInput.h
r3847 r3855 63 63 64 64 void GetParameterDerivativeValue(double* derivativevalues, double* xyz_list, double* gauss); 65 void GetVxStrainRate2d(double* epsilonvx,double* xyz_list, double* gauss,int formulation_enum=MacAyealFormulationEnum); 66 void GetVyStrainRate2d(double* epsilonvy,double* xyz_list, double* gauss,int formulation_enum=MacAyealFormulationEnum); 67 void GetVxStrainRate3d(double* epsilonvx,double* xyz_list, double* gauss,int formulation_enum=StokesFormulationEnum){ISSMERROR("not implemented yet");}; 68 void GetVyStrainRate3d(double* epsilonvy,double* xyz_list, double* gauss,int formulation_enum=StokesFormulationEnum){ISSMERROR("not implemented yet");}; 69 void GetVzStrainRate3d(double* epsilonvz,double* xyz_list, double* gauss,int formulation_enum=StokesFormulationEnum){ISSMERROR("not implemented yet");}; 65 void GetVxStrainRate2d(double* epsilonvx,double* xyz_list, double* gauss); 66 void GetVyStrainRate2d(double* epsilonvy,double* xyz_list, double* gauss); 67 void GetVxStrainRate3d(double* epsilonvx,double* xyz_list, double* gauss){ISSMERROR("not implemented yet");}; 68 void GetVyStrainRate3d(double* epsilonvy,double* xyz_list, double* gauss){ISSMERROR("not implemented yet");}; 69 void GetVzStrainRate3d(double* epsilonvz,double* xyz_list, double* gauss){ISSMERROR("not implemented yet");}; 70 void GetVxStrainRate3dPattyn(double* epsilonvx,double* xyz_list, double* gauss){ISSMERROR("not implemented yet");}; 71 void GetVyStrainRate3dPattyn(double* epsilonvy,double* xyz_list, double* gauss){ISSMERROR("not implemented yet");}; 70 72 void ChangeEnum(int newenumtype); 71 73 -
issm/trunk/src/c/parallel/diagnostic_core.cpp
r3835 r3855 140 140 141 141 if(verbose)_printf_("%s\n"," extruding horizontal velocities..."); 142 143 FieldExtrudex( ug,fem_dh->elements,fem_dh->nodes, fem_dh->vertices,fem_dh->loads,fem_dh->materials,fem_dh->parameters,"velocity",1); 144 142 FieldExtrudex(ug,fem_dh->elements,fem_dh->nodes, fem_dh->vertices,fem_dh->loads,fem_dh->materials,fem_dh->parameters,"velocity",1); 145 143 SplitSolutionVectorx(ug,numberofnodes,numberofdofspernode_dh,&vx,&vy); 146 144 model->UpdateInputsFromVector(vx,VxEnum,VertexEnum);
Note:
See TracChangeset
for help on using the changeset viewer.