Changeset 4836 for issm/trunk
- Timestamp:
- 07/27/10 14:23:21 (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk/src/c/objects/Elements/Tria.cpp
r4835 r4836 2534 2534 int found=0; 2535 2535 2536 /*parameters: */ 2536 /*inputs: */ 2537 Input* vxaverage_input=NULL; 2538 Input* vyaverage_input=NULL; 2537 2539 bool artdiff; 2538 2540 … … 2543 2545 /*retrieve some parameters: */ 2544 2546 this->parameters->FindParam(&artdiff,ArtDiffEnum); 2547 2548 /*Retrieve all inputs we will be needed*/ 2549 vxaverage_input=inputs->GetInput(VxAverageEnum); 2550 vyaverage_input=inputs->GetInput(VyAverageEnum); 2545 2551 2546 2552 //Create Artificial diffusivity once for all if requested … … 2551 2557 2552 2558 //Build K matrix (artificial diffusivity matrix) 2553 inputs->GetParameterAverage(&v_gauss[0],VxAverageEnum);2554 inputs->GetParameterAverage(&v_gauss[1],VyAverageEnum);2559 vxaverage_input->GetParameterAverage(&v_gauss[0]); 2560 vyaverage_input->GetParameterAverage(&v_gauss[1]); 2555 2561 2556 2562 K[0][0]=pow(Jdettria,(double).5)/2.0*fabs(v_gauss[0]); … … 2577 2583 2578 2584 //Get vx, vy and their derivatives at gauss point 2579 inputs->GetParameterValue(&vx, &gauss_l1l2l3[0],VxAverageEnum);2580 inputs->GetParameterValue(&vy, &gauss_l1l2l3[0],VyAverageEnum);2581 2582 inputs->GetParameterDerivativeValue(&dvx[0],&xyz_list[0][0],&gauss_l1l2l3[0],VxAverageEnum);2583 inputs->GetParameterDerivativeValue(&dvy[0],&xyz_list[0][0],&gauss_l1l2l3[0],VyAverageEnum);2585 vxaverage_input->GetParameterValue(&vx, &gauss_l1l2l3[0]); 2586 vyaverage_input->GetParameterValue(&vy, &gauss_l1l2l3[0]); 2587 2588 vxaverage_input->GetParameterDerivativeValue(&dvx[0],&xyz_list[0][0],&gauss_l1l2l3[0]); 2589 vyaverage_input->GetParameterDerivativeValue(&dvy[0],&xyz_list[0][0],&gauss_l1l2l3[0]); 2584 2590 2585 2591 dvxdx=dvx[0]; … … 2678 2684 int found; 2679 2685 2686 /*inputs: */ 2687 Input* vx_input=NULL; 2688 Input* vy_input=NULL; 2689 2680 2690 /* Get node coordinates and dof list: */ 2681 2691 GetVerticesCoordinates(&xyz_list[0][0], nodes, numgrids); … … 2684 2694 /* Get gaussian points and weights (make this a statically initialized list of points? fstd): */ 2685 2695 GaussTria( &num_gauss, &first_gauss_area_coord, &second_gauss_area_coord, &third_gauss_area_coord, &gauss_weights, 2); 2696 2697 /*Retrieve all inputs we will be needed*/ 2698 vx_input=inputs->GetInput(VxEnum); 2699 vy_input=inputs->GetInput(VyEnum); 2686 2700 2687 2701 /* Start looping on the number of gaussian points: */ … … 2702 2716 2703 2717 //Get vx, vy and their derivatives at gauss point 2704 inputs->GetParameterValue(&vx, &gauss_l1l2l3[0],VxEnum);2705 inputs->GetParameterValue(&vy, &gauss_l1l2l3[0],VyEnum);2718 vx_input->GetParameterValue(&vx, &gauss_l1l2l3[0]); 2719 vy_input->GetParameterValue(&vy, &gauss_l1l2l3[0]); 2706 2720 2707 2721 DL_scalar=-gauss_weight*Jdettria; … … 2783 2797 int found=0; 2784 2798 2785 /*parameters: */ 2799 /*inputs: */ 2800 Input* vxaverage_input=NULL; 2801 Input* vyaverage_input=NULL; 2786 2802 bool artdiff; 2787 2803 … … 2813 2829 ny=ny/norm; 2814 2830 2831 /*Retrieve all inputs we will be needed*/ 2832 vxaverage_input=inputs->GetInput(VxAverageEnum); 2833 vyaverage_input=inputs->GetInput(VyAverageEnum); 2834 2815 2835 //Create Artificial diffusivity once for all if requested 2816 2836 if(artdiff){ … … 2820 2840 2821 2841 //Build K matrix (artificial diffusivity matrix) 2822 inputs->GetParameterAverage(&v_gauss[0],VxAverageEnum);2823 inputs->GetParameterAverage(&v_gauss[1],VyAverageEnum);2842 vxaverage_input->GetParameterAverage(&v_gauss[0]); 2843 vyaverage_input->GetParameterAverage(&v_gauss[1]); 2824 2844 2825 2845 K[0][0]=pow(10,2)*pow(Jdettria,(double).5)/2.0*fabs(v_gauss[0]); //pow should be zero!! … … 2846 2866 2847 2867 //Get vx, vy and their derivatives at gauss point 2848 inputs->GetParameterValue(&vx,&gauss_l1l2l3[0],VxAverageEnum);2849 inputs->GetParameterValue(&vy,&gauss_l1l2l3[0],VyAverageEnum);2850 2851 inputs->GetParameterDerivativeValue(&dvx[0],&xyz_list[0][0],&gauss_l1l2l3[0],VxAverageEnum);2852 inputs->GetParameterDerivativeValue(&dvy[0],&xyz_list[0][0],&gauss_l1l2l3[0],VyAverageEnum);2868 vxaverage_input->GetParameterValue(&vx,&gauss_l1l2l3[0]); 2869 vyaverage_input->GetParameterValue(&vy,&gauss_l1l2l3[0]); 2870 2871 vxaverage_input->GetParameterDerivativeValue(&dvx[0],&xyz_list[0][0],&gauss_l1l2l3[0]); 2872 vyaverage_input->GetParameterDerivativeValue(&dvy[0],&xyz_list[0][0],&gauss_l1l2l3[0]); 2853 2873 2854 2874 dvxdx=dvx[0]; … … 3089 3109 double gauss[numvertices][numvertices] = {{1,0,0},{0,1,0},{0,0,1}}; //TO BE DELETED 3090 3110 3091 3092 3111 double MAXSLOPE=.06; // 6 % 3093 3112 double MOUNTAINKEXPONENT=10; … … 3097 3116 int drag_type; 3098 3117 Input* surface_input=NULL; 3118 Input* vx_input=NULL; 3119 Input* vy_input=NULL; 3120 Input* vz_input=NULL; 3099 3121 3100 3122 /*retrive parameters: */ … … 3105 3127 inputs->GetParameterValue(&drag_type,DragTypeEnum); 3106 3128 surface_input=inputs->GetInput(SurfaceEnum); 3129 vx_input=inputs->GetInput(VxEnum); 3130 vy_input=inputs->GetInput(VyEnum); 3131 vz_input=inputs->GetInput(VzEnum); 3107 3132 3108 3133 /* Get node coordinates and dof list: */ … … 3460 3485 int found; 3461 3486 3462 /*parameters: */ 3487 /*inputs: */ 3488 Input* vxaverage_input=NULL; 3489 Input* vyaverage_input=NULL; 3463 3490 double dt; 3464 3491 bool artdiff; … … 3471 3498 GetVerticesCoordinates(&xyz_list[0][0], nodes, numgrids); 3472 3499 GetDofList(&doflist[0],&numberofdofspernode); 3500 3501 /*Retrieve all inputs we will be needing: */ 3502 vxaverage_input=inputs->GetInput(VxAverageEnum); 3503 vyaverage_input=inputs->GetInput(VyAverageEnum); 3473 3504 3474 3505 //Create Artificial diffusivity once for all if requested … … 3479 3510 3480 3511 //Build K matrix (artificial diffusivity matrix) 3481 inputs->GetParameterAverage(&v_gauss[0],VxAverageEnum);3482 inputs->GetParameterAverage(&v_gauss[1],VyAverageEnum);3512 vxaverage_input->GetParameterAverage(&v_gauss[0]); 3513 vyaverage_input->GetParameterAverage(&v_gauss[1]); 3483 3514 3484 3515 K[0][0]=pow(Jdettria,(double).5)/2.0*fabs(v_gauss[0]); … … 3517 3548 3518 3549 //Get vx, vy and their derivatives at gauss point 3519 inputs->GetParameterValue(&vx,&gauss_l1l2l3[0],VxAverageEnum);3520 inputs->GetParameterValue(&vy,&gauss_l1l2l3[0],VyAverageEnum);3521 3522 inputs->GetParameterDerivativeValue(&dvx[0],&xyz_list[0][0],&gauss_l1l2l3[0],VxAverageEnum);3523 inputs->GetParameterDerivativeValue(&dvy[0],&xyz_list[0][0],&gauss_l1l2l3[0],VyAverageEnum);3550 vxaverage_input->GetParameterValue(&vx,&gauss_l1l2l3[0]); 3551 vyaverage_input->GetParameterValue(&vy,&gauss_l1l2l3[0]); 3552 3553 vxaverage_input->GetParameterDerivativeValue(&dvx[0],&xyz_list[0][0],&gauss_l1l2l3[0]); 3554 vyaverage_input->GetParameterDerivativeValue(&dvy[0],&xyz_list[0][0],&gauss_l1l2l3[0]); 3524 3555 3525 3556 dvxdx=dvx[0]; … … 3623 3654 int found; 3624 3655 3625 /*parameters: */ 3656 /*inputs: */ 3657 Input* vxaverage_input=NULL; 3658 Input* vyaverage_input=NULL; 3626 3659 double dt; 3627 3660 … … 3635 3668 /* Get gaussian points and weights (make this a statically initialized list of points? fstd): */ 3636 3669 GaussTria( &num_gauss, &first_gauss_area_coord, &second_gauss_area_coord, &third_gauss_area_coord, &gauss_weights, 2); 3670 3671 /*Retrieve all inputs we will be needed*/ 3672 vxaverage_input=inputs->GetInput(VxAverageEnum); 3673 vyaverage_input=inputs->GetInput(VyAverageEnum); 3637 3674 3638 3675 /* Start looping on the number of gaussian points: */ … … 3665 3702 3666 3703 //Get vx, vy and their derivatives at gauss point 3667 inputs->GetParameterValue(&vx,&gauss_l1l2l3[0],VxAverageEnum);3668 inputs->GetParameterValue(&vy,&gauss_l1l2l3[0],VyAverageEnum);3704 vxaverage_input->GetParameterValue(&vx,&gauss_l1l2l3[0]); 3705 vyaverage_input->GetParameterValue(&vy,&gauss_l1l2l3[0]); 3669 3706 3670 3707 DL_scalar=-dt*gauss_weight*Jdettria; … … 3826 3863 rho_ice=matpar->GetRhoIce(); 3827 3864 heatcapacity=matpar->GetHeatCapacity(); 3828 3829 3865 3830 3866 GaussTria (&num_gauss, &first_gauss_area_coord, &second_gauss_area_coord, &third_gauss_area_coord, &gauss_weights, 2); … … 3904 3940 double melting_g; 3905 3941 3942 /*inputs: */ 3943 Input* accumulation_input=NULL; 3944 Input* melting_input=NULL; 3945 3906 3946 /* Get node coordinates and dof list: */ 3907 3947 GetVerticesCoordinates(&xyz_list[0][0], nodes, numgrids); … … 3911 3951 GaussTria( &num_gauss, &first_gauss_area_coord, &second_gauss_area_coord, &third_gauss_area_coord, &gauss_weights, 2); 3912 3952 3953 /*retrieve inputs :*/ 3954 accumulation_input=inputs->GetInput(AccumulationRateEnum); 3955 melting_input=inputs->GetInput(MeltingRateEnum); 3956 3913 3957 /* Start looping on the number of gaussian points: */ 3914 3958 for (ig=0; ig<num_gauss; ig++){ … … 3922 3966 GetJacobianDeterminant2d(&Jdettria, &xyz_list[0][0],gauss_l1l2l3); 3923 3967 3924 /*Get L matrix: * /3968 /*Get L matrix: * 3925 3969 GetL(&L[0], &xyz_list[0][0], gauss_l1l2l3,numberofdofspernode); 3926 3970 3927 3971 /* Get accumulation, melting at gauss point */ 3928 inputs->GetParameterValue(&accumulation_g, &gauss_l1l2l3[0],AccumulationRateEnum);3929 inputs->GetParameterValue(&melting_g, &gauss_l1l2l3[0],MeltingRateEnum);3972 accumulation_input->GetParameterValue(&accumulation_g, &gauss_l1l2l3[0]); 3973 melting_input->GetParameterValue(&melting_g, &gauss_l1l2l3[0]); 3930 3974 3931 3975 /* Add value into pe_g: */ … … 3947 3991 /*FUNCTION Tria::CreatePVectorBalancedthickness_DG {{{1*/ 3948 3992 void Tria::CreatePVectorBalancedthickness_DG(Vec pg){ 3949 3950 3993 3951 3994 /* local declarations */ … … 3979 4022 double dhdt_g; 3980 4023 4024 /*inputs: */ 4025 Input* accumulation_input=NULL; 4026 Input* melting_input=NULL; 4027 Input* dhdt_input=NULL; 4028 3981 4029 /* Get node coordinates and dof list: */ 3982 4030 GetVerticesCoordinates(&xyz_list[0][0], nodes, numgrids); … … 3985 4033 /* Get gaussian points and weights (make this a statically initialized list of points? fstd): */ 3986 4034 GaussTria( &num_gauss, &first_gauss_area_coord, &second_gauss_area_coord, &third_gauss_area_coord, &gauss_weights, 2); 4035 4036 /*Retrieve all inputs we will be needing: */ 4037 accumulation_input=inputs->GetInput(AccumulationRateEnum); 4038 melting_input=inputs->GetInput(MeltingRateEnum); 4039 dhdt_input=inputs->GetInput(DhDtEnum); 3987 4040 3988 4041 /* Start looping on the number of gaussian points: */ … … 4001 4054 4002 4055 /* Get accumulation, melting and thickness at gauss point */ 4003 inputs->GetParameterValue(&accumulation_g, &gauss_l1l2l3[0],AccumulationRateEnum);4004 inputs->GetParameterValue(&melting_g, &gauss_l1l2l3[0],MeltingRateEnum);4005 inputs->GetParameterValue(&dhdt_g, &gauss_l1l2l3[0],DhDtEnum);4056 accumulation_input->GetParameterValue(&accumulation_g, &gauss_l1l2l3[0]); 4057 melting_input->GetParameterValue(&melting_g, &gauss_l1l2l3[0]); 4058 dhdt_input->GetParameterValue(&dhdt_g, &gauss_l1l2l3[0]); 4006 4059 4007 4060 /* Add value into pe_g: */ … … 4054 4107 double melting_g; 4055 4108 4109 /*inputs: */ 4110 Input* accumulation_input=NULL; 4111 Input* melting_input=NULL; 4112 4056 4113 /* Get node coordinates and dof list: */ 4057 4114 GetVerticesCoordinates(&xyz_list[0][0], nodes, numgrids); … … 4060 4117 /* Get gaussian points and weights (make this a statically initialized list of points? fstd): */ 4061 4118 GaussTria( &num_gauss, &first_gauss_area_coord, &second_gauss_area_coord, &third_gauss_area_coord, &gauss_weights, 2); 4119 4120 /*Retrieve all inputs we will be needing: */ 4121 accumulation_input=inputs->GetInput(AccumulationRateEnum); 4122 melting_input=inputs->GetInput(MeltingRateEnum); 4062 4123 4063 4124 /* Start looping on the number of gaussian points: */ … … 4076 4137 4077 4138 /* Get accumulation, melting at gauss point */ 4078 inputs->GetParameterValue(&accumulation_g, &gauss_l1l2l3[0],AccumulationRateEnum);4079 inputs->GetParameterValue(&melting_g, &gauss_l1l2l3[0],MeltingRateEnum);4139 accumulation_input->GetParameterValue(&accumulation_g, &gauss_l1l2l3[0]); 4140 melting_input->GetParameterValue(&melting_g, &gauss_l1l2l3[0]); 4080 4141 4081 4142 /* Add value into pe_g: */ … … 4136 4197 double dbdx,dbdy; 4137 4198 4199 /*inputs: */ 4200 Input* melting_input=NULL; 4201 Input* vx_input=NULL; 4202 Input* vy_input=NULL; 4203 Input* bed_input=NULL; 4204 4138 4205 /* Get node coordinates and dof list: */ 4139 4206 GetVerticesCoordinates(&xyz_list[0][0], nodes, numgrids); … … 4142 4209 /* Get gaussian points and weights (make this a statically initialized list of points? fstd): */ 4143 4210 GaussTria( &num_gauss, &first_gauss_area_coord, &second_gauss_area_coord, &third_gauss_area_coord, &gauss_weights, 2); 4211 4212 /*Retrieve all inputs we will be needing: */ 4213 melting_input=inputs->GetInput(MeltingRateEnum); 4214 vx_input=inputs->GetInput(VxEnum); 4215 vy_input=inputs->GetInput(VyEnum); 4216 bed_input=inputs->GetInput(BedEnum); 4144 4217 4145 4218 /*For icesheets: */ … … 4154 4227 4155 4228 /*Get melting at gaussian point: */ 4156 inputs->GetParameterValue(&meltingvalue, &gauss_l1l2l3[0],MeltingRateEnum);4229 melting_input->GetParameterValue(&meltingvalue, &gauss_l1l2l3[0]); 4157 4230 4158 4231 /*Get velocity at gaussian point: */ 4159 inputs->GetParameterValue(&vx, &gauss_l1l2l3[0],VxEnum);4160 inputs->GetParameterValue(&vy, &gauss_l1l2l3[0],VyEnum);4232 vx_input->GetParameterValue(&vx, &gauss_l1l2l3[0]); 4233 vy_input->GetParameterValue(&vy, &gauss_l1l2l3[0]); 4161 4234 4162 4235 /*Get bed slope: */ 4163 inputs->GetParameterDerivativeValue(&slope[0],&xyz_list[0][0],&gauss_l1l2l3[0],BedEnum);4236 bed_input->GetParameterDerivativeValue(&slope[0],&xyz_list[0][0],&gauss_l1l2l3[0]); 4164 4237 dbdx=slope[0]; 4165 4238 dbdy=slope[1]; … … 4170 4243 //Get L matrix if viscous basal drag present: 4171 4244 GetL(&L[0], &xyz_list[0][0], gauss_l1l2l3,NDOF1); 4172 4173 4245 4174 4246 /*Build gaussian vector: */ … … 4380 4452 double thickness_g; 4381 4453 4382 /* parameters: */4454 /*inputs: */ 4383 4455 double dt; 4456 Input* accumulation_input=NULL; 4457 Input* melting_input=NULL; 4458 Input* thickness_input=NULL; 4384 4459 4385 4460 /*retrieve some parameters: */ … … 4392 4467 /* Get gaussian points and weights (make this a statically initialized list of points? fstd): */ 4393 4468 GaussTria( &num_gauss, &first_gauss_area_coord, &second_gauss_area_coord, &third_gauss_area_coord, &gauss_weights, 2); 4469 4470 /*Retrieve all inputs we will be needing: */ 4471 accumulation_input=inputs->GetInput(AccumulationRateEnum); 4472 melting_input=inputs->GetInput(MeltingRateEnum); 4473 thickness_input=inputs->GetInput(ThicknessEnum); 4394 4474 4395 4475 /* Start looping on the number of gaussian points: */ … … 4408 4488 4409 4489 /* Get accumulation, melting and thickness at gauss point */ 4410 inputs->GetParameterValue(&accumulation_g, &gauss_l1l2l3[0],AccumulationRateEnum);4411 inputs->GetParameterValue(&melting_g, &gauss_l1l2l3[0],MeltingRateEnum);4412 inputs->GetParameterValue(&thickness_g, &gauss_l1l2l3[0],ThicknessEnum);4490 accumulation_input->GetParameterValue(&accumulation_g, &gauss_l1l2l3[0]); 4491 melting_input->GetParameterValue(&melting_g, &gauss_l1l2l3[0]); 4492 thickness_input->GetParameterValue(&thickness_g, &gauss_l1l2l3[0]); 4413 4493 4414 4494 /* Add value into pe_g: */ … … 4461 4541 double thickness_g; 4462 4542 double dt; 4543 Input* accumulation_input=NULL; 4544 Input* melting_input=NULL; 4545 Input* thickness_input=NULL; 4463 4546 4464 4547 /*retrieve some parameters: */ … … 4471 4554 /* Get gaussian points and weights (make this a statically initialized list of points? fstd): */ 4472 4555 GaussTria( &num_gauss, &first_gauss_area_coord, &second_gauss_area_coord, &third_gauss_area_coord, &gauss_weights, 2); 4556 4557 /*Retrieve all inputs we will be needing: */ 4558 accumulation_input=inputs->GetInput(AccumulationRateEnum); 4559 melting_input=inputs->GetInput(MeltingRateEnum); 4560 thickness_input=inputs->GetInput(ThicknessEnum); 4473 4561 4474 4562 /* Start looping on the number of gaussian points: */ … … 4487 4575 4488 4576 /* Get accumulation, melting and thickness at gauss point */ 4489 inputs->GetParameterValue(&accumulation_g, &gauss_l1l2l3[0],AccumulationRateEnum);4490 inputs->GetParameterValue(&melting_g, &gauss_l1l2l3[0],MeltingRateEnum);4491 inputs->GetParameterValue(&thickness_g, &gauss_l1l2l3[0],ThicknessEnum);4577 accumulation_input->GetParameterValue(&accumulation_g, &gauss_l1l2l3[0]); 4578 melting_input->GetParameterValue(&melting_g, &gauss_l1l2l3[0]); 4579 thickness_input->GetParameterValue(&thickness_g, &gauss_l1l2l3[0]); 4492 4580 4493 4581 /* Add value into pe_g: */ … … 4541 4629 int analysis_type; 4542 4630 4631 /*inputs :*/ 4632 Input* slope_input=NULL; 4633 4543 4634 /*retrive parameters: */ 4544 4635 parameters->FindParam(&analysis_type,AnalysisTypeEnum); … … 4548 4639 GetDofList(&doflist[0],&numberofdofspernode); 4549 4640 4550 4551 4641 /* Get gaussian points and weights: */ 4552 4642 GaussTria( &num_gauss, &first_gauss_area_coord, &second_gauss_area_coord, &third_gauss_area_coord, &gauss_weights, 2); /*We need higher order because our load is order 2*/ 4553 4643 4554 4644 /*Retrieve all inputs we will be needing: */ 4645 if ( (analysis_type==SurfaceSlopeXAnalysisEnum) || (analysis_type==SurfaceSlopeYAnalysisEnum)){ 4646 slope_input=inputs->GetInput(SurfaceEnum); 4647 } 4648 if ( (analysis_type==BedSlopeXAnalysisEnum) || (analysis_type==BedSlopeYAnalysisEnum)){ 4649 slope_input=inputs->GetInput(BedEnum); 4650 } 4651 4555 4652 /* Start looping on the number of gaussian points: */ 4556 4653 for (ig=0; ig<num_gauss; ig++){ … … 4561 4658 gauss_l1l2l3[2]=*(third_gauss_area_coord+ig); 4562 4659 4563 if ( (analysis_type==SurfaceSlopeXAnalysisEnum) || (analysis_type==SurfaceSlopeYAnalysisEnum)){ 4564 inputs->GetParameterDerivativeValue(&slope[0],&xyz_list[0][0],&gauss_l1l2l3[0],SurfaceEnum); 4565 } 4566 if ( (analysis_type==BedSlopeXAnalysisEnum) || (analysis_type==BedSlopeYAnalysisEnum)){ 4567 inputs->GetParameterDerivativeValue(&slope[0],&xyz_list[0][0],&gauss_l1l2l3[0],BedEnum); 4568 } 4660 slope_input->GetParameterDerivativeValue(&slope[0],&xyz_list[0][0],&gauss_l1l2l3[0]); 4569 4661 4570 4662 /* Get Jacobian determinant: */ … … 4639 4731 double t_pmp; 4640 4732 double scalar_ocean; 4733 4734 /*inputs: */ 4735 Input* pressure_input=NULL; 4641 4736 4642 4737 /* Get node coordinates and dof list: */ … … 4660 4755 GaussTria (&num_area_gauss, &first_gauss_area_coord, &second_gauss_area_coord, &third_gauss_area_coord, &gauss_weights, 2); 4661 4756 4757 /*Retrieve all inputs we will be needing: */ 4758 pressure_input=inputs->GetInput(PressureEnum); 4759 4662 4760 /* Start looping on the number of gauss 2d (nodes on the bedrock) */ 4663 4761 for (ig=0; ig<num_area_gauss; ig++){ … … 4674 4772 4675 4773 /*Get geothermal flux and basal friction */ 4676 inputs->GetParameterValue(&pressure, &gauss_coord[0],PressureEnum);4774 pressure_input->GetParameterValue(&pressure, &gauss_coord[0]); 4677 4775 t_pmp=meltingpoint-beta*pressure; 4678 4776 … … 4749 4847 parameters->FindParam(&analysis_type,AnalysisTypeEnum); 4750 4848 4849 /*inputs: */ 4850 Input* vx_input=NULL; //TO BE DELETED 4851 Input* vy_input=NULL; //TO BE DELETED 4852 Input* vz_input=NULL; //TO BE DELETED 4853 Input* geothermalflux_input=NULL; 4751 4854 4752 4855 /* Get node coordinates and dof list: */ … … 4766 4869 friction=new Friction("3d",inputs,matpar,analysis_type); 4767 4870 4871 /*Retrieve all inputs we will be needing: */ 4872 vx_input=inputs->GetInput(VxEnum); 4873 vy_input=inputs->GetInput(VyEnum); 4874 vz_input=inputs->GetInput(VzEnum); 4875 geothermalflux_input=inputs->GetInput(GeothermalFluxEnum); 4876 4768 4877 /*COMPUT alpha2_list and basalfriction_list (TO BE DELETED)*/ 4769 4878 for(i=0;i<numgrids;i++){ 4770 4879 friction->GetAlpha2(&alpha2_list[i],&gauss[i][0],VxEnum,VyEnum,VzEnum); //TO BE DELETED 4771 4880 } 4772 inputs->GetParameterValues(&vx_list[0],&gauss[0][0],3,VxEnum); //TO BE DELETED4773 inputs->GetParameterValues(&vy_list[0],&gauss[0][0],3,VyEnum); //TO BE DELETED4881 vx_input->GetParameterValues(&vx_list[0],&gauss[0][0],3); //TO BE DELETED 4882 vy_input->GetParameterValues(&vy_list[0],&gauss[0][0],3); //TO BE DELETED 4774 4883 for(i=0;i<numgrids;i++){ 4775 4884 basalfriction_list[i]=alpha2_list[i]*(pow(vx_list[i],(double)2.0)+pow(vy_list[i],(double)2.0)); //TO BE DELETED … … 4793 4902 4794 4903 /*Get geothermal flux and basal friction */ 4795 inputs->GetParameterValue(&geothermalflux_value, &gauss_coord[0],GeothermalFluxEnum);4904 geothermalflux_input->GetParameterValue(&geothermalflux_value, &gauss_coord[0]); 4796 4905 4797 4906 /*Friction: */
Note:
See TracChangeset
for help on using the changeset viewer.