Changeset 16479
- Timestamp:
- 10/21/13 14:30:32 (11 years ago)
- Location:
- issm/trunk-jpl/src/c/classes/Elements
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/src/c/classes/Elements/Penta.cpp
r16478 r16479 3038 3038 break; 3039 3039 case P1Enum:{ 3040 3041 IssmDouble values[NUMVERTICES]; 3040 IssmDouble values[NUMVERTICES]; 3042 3041 IssmPDouble pvalues[NUMVERTICES]; 3043 int sidlist[NUMVERTICES]; 3044 3045 GetVertexSidList(&sidlist[0]); 3046 GetInputListOnVertices(&values[0],output_enum); 3047 for(int i=0;i<NUMVERTICES;i++) pvalues[i] = reCast<IssmPDouble>(values[i]); 3048 3049 vector->SetValues(NUMVERTICES,&sidlist[0],&pvalues[0],INS_VAL); 3042 int connectivity[NUMVERTICES]; 3043 int sidlist[NUMVERTICES]; 3044 3045 this->GetVertexSidList(&sidlist[0]); 3046 this->GetConnectivityList(&connectivity[0]); 3047 this->GetInputListOnVertices(&values[0],output_enum); 3048 for(int i=0;i<NUMVERTICES;i++) pvalues[i] = reCast<IssmPDouble>(values[i])/reCast<IssmPDouble>(connectivity[i]); 3049 3050 vector->SetValues(NUMVERTICES,&sidlist[0],&pvalues[0],ADD_VAL); 3050 3051 break; 3051 3052 } … … 5332 5333 5333 5334 }/*}}}*/ 5334 /*FUNCTION Penta::Control InputSetGradient{{{*/5335 /*FUNCTION Penta::ControlToVectors{{{*/ 5335 5336 void Penta::ControlToVectors(Vector<IssmDouble>* vector_control, Vector<IssmDouble>* vector_gradient,int control_enum){ 5336 5337 … … 5349 5350 if (input->ObjectEnum()!=ControlInputEnum) _error_("Input " << EnumToStringx(control_enum) << " is not a ControlInput"); 5350 5351 5351 int sidlist[NUMVERTICES]; 5352 IssmPDouble values[NUMVERTICES]; 5352 int sidlist[NUMVERTICES]; 5353 int connectivity[NUMVERTICES]; 5354 IssmPDouble values[NUMVERTICES]; 5353 5355 IssmPDouble gradients[NUMVERTICES]; 5354 5356 IssmDouble value,gradient; 5355 5357 5356 GetVertexSidList(&sidlist[0]); 5358 this->GetConnectivityList(&connectivity[0]); 5359 this->GetVertexSidList(&sidlist[0]); 5357 5360 5358 5361 GaussPenta* gauss=new GaussPenta(); … … 5363 5366 ((ControlInput*)input)->GetGradientValue(&gradient,gauss); 5364 5367 5365 values[iv] = reCast<IssmPDouble>(value) ;5366 gradients[iv] = reCast<IssmPDouble>(gradient) ;5368 values[iv] = reCast<IssmPDouble>(value)/reCast<IssmPDouble>(connectivity[iv]); 5369 gradients[iv] = reCast<IssmPDouble>(gradient)/reCast<IssmPDouble>(connectivity[iv]); 5367 5370 } 5368 5371 delete gauss; 5369 5372 5370 vector_control->SetValues(NUMVERTICES,&sidlist[0],&values[0], INS_VAL);5371 vector_gradient->SetValues(NUMVERTICES,&sidlist[0],&gradients[0], INS_VAL);5373 vector_control->SetValues(NUMVERTICES,&sidlist[0],&values[0],ADD_VAL); 5374 vector_gradient->SetValues(NUMVERTICES,&sidlist[0],&gradients[0],ADD_VAL); 5372 5375 5373 5376 }/*}}}*/ -
issm/trunk-jpl/src/c/classes/Elements/Tria.cpp
r16478 r16479 2592 2592 break; 2593 2593 case P1Enum:{ 2594 2595 IssmDouble values[NUMVERTICES]; 2594 IssmDouble values[NUMVERTICES]; 2596 2595 IssmPDouble pvalues[NUMVERTICES]; 2597 int sidlist[NUMVERTICES]; 2598 2599 GetVertexSidList(&sidlist[0]); 2600 GetInputListOnVertices(&values[0],output_enum); 2601 for(int i=0;i<NUMVERTICES;i++) pvalues[i] = reCast<IssmPDouble>(values[i]); 2602 2603 vector->SetValues(NUMVERTICES,&sidlist[0],&pvalues[0],INS_VAL); 2596 int connectivity[NUMVERTICES]; 2597 int sidlist[NUMVERTICES]; 2598 2599 this->GetVertexSidList(&sidlist[0]); 2600 this->GetConnectivityList(&connectivity[0]); 2601 this->GetInputListOnVertices(&values[0],output_enum); 2602 for(int i=0;i<NUMVERTICES;i++) pvalues[i] = reCast<IssmPDouble>(values[i])/reCast<IssmPDouble>(connectivity[i]); 2603 2604 vector->SetValues(NUMVERTICES,&sidlist[0],&pvalues[0],ADD_VAL); 2604 2605 break; 2605 2606 } … … 4873 4874 4874 4875 }/*}}}*/ 4875 /*FUNCTION Tria::Control InputSetGradient{{{*/4876 /*FUNCTION Tria::ControlToVectors{{{*/ 4876 4877 void Tria::ControlToVectors(Vector<IssmDouble>* vector_control, Vector<IssmDouble>* vector_gradient,int control_enum){ 4877 4878 … … 4886 4887 if (input->ObjectEnum()!=ControlInputEnum) _error_("Input " << EnumToStringx(control_enum) << " is not a ControlInput"); 4887 4888 4888 int sidlist[NUMVERTICES]; 4889 IssmPDouble values[NUMVERTICES]; 4889 int sidlist[NUMVERTICES]; 4890 int connectivity[NUMVERTICES]; 4891 IssmPDouble values[NUMVERTICES]; 4890 4892 IssmPDouble gradients[NUMVERTICES]; 4891 4893 IssmDouble value,gradient; 4892 4894 4893 GetVertexSidList(&sidlist[0]); 4895 this->GetConnectivityList(&connectivity[0]); 4896 this->GetVertexSidList(&sidlist[0]); 4894 4897 4895 4898 GaussTria* gauss=new GaussTria(); … … 4900 4903 ((ControlInput*)input)->GetGradientValue(&gradient,gauss); 4901 4904 4902 values[iv] = reCast<IssmPDouble>(value) ;4903 gradients[iv] = reCast<IssmPDouble>(gradient) ;4905 values[iv] = reCast<IssmPDouble>(value)/reCast<IssmPDouble>(connectivity[iv]); 4906 gradients[iv] = reCast<IssmPDouble>(gradient)/reCast<IssmPDouble>(connectivity[iv]); 4904 4907 } 4905 4908 delete gauss; 4906 4909 4907 vector_control->SetValues(NUMVERTICES,&sidlist[0],&values[0], INS_VAL);4908 vector_gradient->SetValues(NUMVERTICES,&sidlist[0],&gradients[0], INS_VAL);4910 vector_control->SetValues(NUMVERTICES,&sidlist[0],&values[0],ADD_VAL); 4911 vector_gradient->SetValues(NUMVERTICES,&sidlist[0],&gradients[0],ADD_VAL); 4909 4912 4910 4913 }/*}}}*/
Note:
See TracChangeset
for help on using the changeset viewer.