Changeset 15300
- Timestamp:
- 06/21/13 09:07:23 (12 years ago)
- Location:
- issm/trunk-jpl/src/c/classes
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/src/c/classes/Elements/Tria.cpp
r15298 r15300 887 887 888 888 /*Add Stress tensor components into inputs*/ 889 this->inputs->AddInput(new TriaInput(StressTensorxxEnum,&sigma_xx[0] ));890 this->inputs->AddInput(new TriaInput(StressTensorxyEnum,&sigma_xy[0] ));891 this->inputs->AddInput(new TriaInput(StressTensorxzEnum,&sigma_xz[0] ));892 this->inputs->AddInput(new TriaInput(StressTensoryyEnum,&sigma_yy[0] ));893 this->inputs->AddInput(new TriaInput(StressTensoryzEnum,&sigma_yz[0] ));894 this->inputs->AddInput(new TriaInput(StressTensorzzEnum,&sigma_zz[0] ));889 this->inputs->AddInput(new TriaInput(StressTensorxxEnum,&sigma_xx[0],P1Enum)); 890 this->inputs->AddInput(new TriaInput(StressTensorxyEnum,&sigma_xy[0],P1Enum)); 891 this->inputs->AddInput(new TriaInput(StressTensorxzEnum,&sigma_xz[0],P1Enum)); 892 this->inputs->AddInput(new TriaInput(StressTensoryyEnum,&sigma_yy[0],P1Enum)); 893 this->inputs->AddInput(new TriaInput(StressTensoryzEnum,&sigma_yz[0],P1Enum)); 894 this->inputs->AddInput(new TriaInput(StressTensorzzEnum,&sigma_zz[0],P1Enum)); 895 895 896 896 /*Clean up and return*/ … … 1028 1028 for (int imonth=0;imonth<12;imonth++) { 1029 1029 for(i=0;i<NUMVERTICES;i++) tmp[i]=monthlytemperatures[i][imonth]; 1030 TriaInput* newmonthinput1 = new TriaInput(SurfaceforcingsMonthlytemperaturesEnum,&tmp[0] );1030 TriaInput* newmonthinput1 = new TriaInput(SurfaceforcingsMonthlytemperaturesEnum,&tmp[0],P1Enum); 1031 1031 NewTemperatureInput->AddTimeInput(newmonthinput1,time+imonth/12.*yts); 1032 1032 1033 1033 for(i=0;i<NUMVERTICES;i++) tmp[i]=monthlyprec[i][imonth]; 1034 TriaInput* newmonthinput2 = new TriaInput(SurfaceforcingsPrecipitationEnum,&tmp[0] );1034 TriaInput* newmonthinput2 = new TriaInput(SurfaceforcingsPrecipitationEnum,&tmp[0],P1Enum); 1035 1035 NewPrecipitationInput->AddTimeInput(newmonthinput2,time+imonth/12.*yts); 1036 1036 } … … 1780 1780 for(i=0;i<num_cm_responses;i++){ 1781 1781 for(j=0;j<3;j++)nodeinputs[j]=iomodel->Data(InversionCostFunctionsCoefficientsEnum)[(tria_vertex_ids[j]-1)*num_cm_responses+i]; 1782 datasetinput->inputs->AddObject(new TriaInput(InversionCostFunctionsCoefficientsEnum,nodeinputs ));1782 datasetinput->inputs->AddObject(new TriaInput(InversionCostFunctionsCoefficientsEnum,nodeinputs,P1Enum)); 1783 1783 } 1784 1784 … … 1866 1866 1867 1867 /*Add input to the element: */ 1868 this->inputs->AddInput(new TriaInput(enum_type,values ));1868 this->inputs->AddInput(new TriaInput(enum_type,values,P1Enum)); 1869 1869 1870 1870 /*Free ressources:*/ … … 1931 1931 1932 1932 /*Add input to the element: */ 1933 this->inputs->AddInput(new TriaInput(ThicknessEnum,newthickness ));1934 this->inputs->AddInput(new TriaInput(SurfaceEnum,newsurface ));1935 this->inputs->AddInput(new TriaInput(BedEnum,newbed ));1933 this->inputs->AddInput(new TriaInput(ThicknessEnum,newthickness,P1Enum)); 1934 this->inputs->AddInput(new TriaInput(SurfaceEnum,newsurface,P1Enum)); 1935 this->inputs->AddInput(new TriaInput(BedEnum,newbed,P1Enum)); 1936 1936 1937 1937 /*Free ressources:*/ … … 1956 1956 /*update input*/ 1957 1957 if (name==MaterialsRheologyBbarEnum || name==MaterialsRheologyBEnum || name==MaterialsRheologyZEnum || name==MaterialsRheologyZbarEnum){ 1958 material->inputs->AddInput(new TriaInput(name,values ));1958 material->inputs->AddInput(new TriaInput(name,values,P1Enum)); 1959 1959 } 1960 1960 else{ 1961 this->inputs->AddInput(new TriaInput(name,values ));1961 this->inputs->AddInput(new TriaInput(name,values,P1Enum)); 1962 1962 } 1963 1963 return; … … 1969 1969 /*update input*/ 1970 1970 if (name==MaterialsRheologyBbarEnum || name==MaterialsRheologyBEnum || name==MaterialsRheologyZEnum || name==MaterialsRheologyZbarEnum){ 1971 material->inputs->AddInput(new TriaInput(name,values ));1971 material->inputs->AddInput(new TriaInput(name,values,P1Enum)); 1972 1972 } 1973 1973 else{ 1974 this->inputs->AddInput(new TriaInput(name,values ));1974 this->inputs->AddInput(new TriaInput(name,values,P1Enum)); 1975 1975 } 1976 1976 return; … … 1986 1986 } 1987 1987 /*Add input to the element: */ 1988 this->inputs->AddInput(new TriaInput(name,values ));1988 this->inputs->AddInput(new TriaInput(name,values,P1Enum)); 1989 1989 1990 1990 /*Free ressources:*/ … … 1998 1998 } 1999 1999 /*Add input to the element: */ 2000 this->inputs->AddInput(new TriaInput(name,values ));2000 this->inputs->AddInput(new TriaInput(name,values,P1Enum)); 2001 2001 2002 2002 /*Free ressources:*/ … … 2074 2074 2075 2075 /*create static input: */ 2076 this->inputs->AddInput(new TriaInput(vector_enum,nodeinputs ));2076 this->inputs->AddInput(new TriaInput(vector_enum,nodeinputs,P1Enum)); 2077 2077 } 2078 2078 else if(M==numberofvertices+1){ … … 2090 2090 2091 2091 if(t==0) transientinput=new TransientInput(vector_enum); 2092 transientinput->AddTimeInput(new TriaInput(vector_enum,nodeinputs ),time);2092 transientinput->AddTimeInput(new TriaInput(vector_enum,nodeinputs,P1Enum),time); 2093 2093 } 2094 2094 this->inputs->AddInput(transientinput); … … 2357 2357 if(!this->IsFloating() && floatingelement==true){ 2358 2358 for(i=0;i<NUMVERTICES;i++)melting[i]=gl_melting_rate/yts; 2359 this->inputs->AddInput(new TriaInput(BasalforcingsMeltingRateEnum,&melting[0] ));2359 this->inputs->AddInput(new TriaInput(BasalforcingsMeltingRateEnum,&melting[0],P1Enum)); 2360 2360 } 2361 2361 2362 2362 /*Update inputs*/ 2363 2363 this->inputs->AddInput(new BoolInput(MaskElementonfloatingiceEnum,floatingelement)); 2364 this->inputs->AddInput(new TriaInput(SurfaceEnum,&s[0] ));2365 this->inputs->AddInput(new TriaInput(BedEnum,&b[0] ));2364 this->inputs->AddInput(new TriaInput(SurfaceEnum,&s[0],P1Enum)); 2365 this->inputs->AddInput(new TriaInput(BedEnum,&b[0],P1Enum)); 2366 2366 2367 2367 /*Recalculate phi*/ 2368 2368 if(migration_style==SubelementMigrationEnum || migration_style==SubelementMigration2Enum){ 2369 2369 for(i=0;i<NUMVERTICES;i++) phi[i]=h[i]+ba[i]/density; 2370 this->inputs->AddInput(new TriaInput(GLlevelsetEnum,&phi[0] ));2370 this->inputs->AddInput(new TriaInput(GLlevelsetEnum,&phi[0],P1Enum)); 2371 2371 } 2372 2372 } … … 2527 2527 2528 2528 /*Update inputs*/ 2529 this->inputs->AddInput(new TriaInput(SurfaceforcingsMassBalanceEnum,&agd[0] ));2529 this->inputs->AddInput(new TriaInput(SurfaceforcingsMassBalanceEnum,&agd[0],P1Enum)); 2530 2530 // this->inputs->AddInput(new TriaVertexInput(ThermalSpcTemperatureEnum,&Tsurf[0])); 2531 2531 … … 2617 2617 } //end of the loop over the vertices 2618 2618 /*Update inputs*/ 2619 this->inputs->AddInput(new TriaInput(SurfaceforcingsMassBalanceEnum,&smb[0] ));2619 this->inputs->AddInput(new TriaInput(SurfaceforcingsMassBalanceEnum,&smb[0],P1Enum)); 2620 2620 } 2621 2621 /*}}}*/ … … 2801 2801 if(!iomodel->Data(VxEnum)){ 2802 2802 for(i=0;i<3;i++)nodeinputs[i]=0; 2803 this->inputs->AddInput(new TriaInput(VxEnum,nodeinputs ));2804 if(dakota_analysis) this->inputs->AddInput(new TriaInput(QmuVxEnum,nodeinputs ));2803 this->inputs->AddInput(new TriaInput(VxEnum,nodeinputs,P1Enum)); 2804 if(dakota_analysis) this->inputs->AddInput(new TriaInput(QmuVxEnum,nodeinputs,P1Enum)); 2805 2805 } 2806 2806 if(!iomodel->Data(VyEnum)){ 2807 2807 for(i=0;i<3;i++)nodeinputs[i]=0; 2808 this->inputs->AddInput(new TriaInput(VyEnum,nodeinputs ));2809 if(dakota_analysis) this->inputs->AddInput(new TriaInput(QmuVyEnum,nodeinputs ));2808 this->inputs->AddInput(new TriaInput(VyEnum,nodeinputs,P1Enum)); 2809 if(dakota_analysis) this->inputs->AddInput(new TriaInput(QmuVyEnum,nodeinputs,P1Enum)); 2810 2810 } 2811 2811 if(!iomodel->Data(VzEnum)){ 2812 2812 for(i=0;i<3;i++)nodeinputs[i]=0; 2813 this->inputs->AddInput(new TriaInput(VzEnum,nodeinputs ));2814 if(dakota_analysis) this->inputs->AddInput(new TriaInput(QmuVzEnum,nodeinputs ));2813 this->inputs->AddInput(new TriaInput(VzEnum,nodeinputs,P1Enum)); 2814 if(dakota_analysis) this->inputs->AddInput(new TriaInput(QmuVzEnum,nodeinputs,P1Enum)); 2815 2815 } 2816 2816 if(!iomodel->Data(PressureEnum)){ 2817 2817 for(i=0;i<3;i++)nodeinputs[i]=0; 2818 2818 if(dakota_analysis){ 2819 this->inputs->AddInput(new TriaInput(PressureEnum,nodeinputs ));2820 this->inputs->AddInput(new TriaInput(QmuPressureEnum,nodeinputs ));2819 this->inputs->AddInput(new TriaInput(PressureEnum,nodeinputs,P1Enum)); 2820 this->inputs->AddInput(new TriaInput(QmuPressureEnum,nodeinputs,P1Enum)); 2821 2821 } 2822 2822 } … … 3756 3756 3757 3757 /*Add vx and vy as inputs to the tria element: */ 3758 this->inputs->AddInput(new TriaInput(VxEnum,vx ));3759 this->inputs->AddInput(new TriaInput(VyEnum,vy ));3760 this->inputs->AddInput(new TriaInput(VelEnum,vel ));3761 this->inputs->AddInput(new TriaInput(PressureEnum,pressure ));3758 this->inputs->AddInput(new TriaInput(VxEnum,vx,P1Enum)); 3759 this->inputs->AddInput(new TriaInput(VyEnum,vy,P1Enum)); 3760 this->inputs->AddInput(new TriaInput(VelEnum,vel,P1Enum)); 3761 this->inputs->AddInput(new TriaInput(PressureEnum,pressure,P1Enum)); 3762 3762 3763 3763 /*Free ressources:*/ … … 3827 3827 3828 3828 /*Add vx and vy as inputs to the tria element: */ 3829 this->inputs->AddInput(new TriaInput(VxEnum,vx ));3830 this->inputs->AddInput(new TriaInput(VyEnum,vy ));3831 this->inputs->AddInput(new TriaInput(VelEnum,vel ));3832 this->inputs->AddInput(new TriaInput(PressureEnum,pressure ));3829 this->inputs->AddInput(new TriaInput(VxEnum,vx,P1Enum)); 3830 this->inputs->AddInput(new TriaInput(VyEnum,vy,P1Enum)); 3831 this->inputs->AddInput(new TriaInput(VelEnum,vel,P1Enum)); 3832 this->inputs->AddInput(new TriaInput(PressureEnum,pressure,P1Enum)); 3833 3833 3834 3834 /*Free ressources:*/ … … 3993 3993 GradientIndexing(&vertexpidlist[0],control_index); 3994 3994 for(int i=0;i<NUMVERTICES;i++) grad_list[i]=gradient[vertexpidlist[i]]; 3995 grad_input=new TriaInput(GradientEnum,grad_list );3995 grad_input=new TriaInput(GradientEnum,grad_list,P1Enum); 3996 3996 3997 3997 ((ControlInput*)input)->SetGradient(grad_input); … … 5760 5760 5761 5761 /*Add vx and vy as inputs to the tria element: */ 5762 this->inputs->AddInput(new TriaInput(AdjointxEnum,lambdax ));5763 this->inputs->AddInput(new TriaInput(AdjointyEnum,lambday ));5762 this->inputs->AddInput(new TriaInput(AdjointxEnum,lambdax,P1Enum)); 5763 this->inputs->AddInput(new TriaInput(AdjointyEnum,lambday,P1Enum)); 5764 5764 5765 5765 /*Free ressources:*/ … … 5790 5790 5791 5791 /*Add vx and vy as inputs to the tria element: */ 5792 this->inputs->AddInput(new TriaInput(AdjointEnum,lambda ));5792 this->inputs->AddInput(new TriaInput(AdjointEnum,lambda,P1Enum)); 5793 5793 5794 5794 /*Free ressources:*/ … … 5842 5842 values[i]=vector[vertexpidlist[i]]; 5843 5843 } 5844 new_input = new TriaInput(control_enum,values );5844 new_input = new TriaInput(control_enum,values,P1Enum); 5845 5845 5846 5846 if(control_enum==MaterialsRheologyBbarEnum || control_enum==MaterialsRheologyZbarEnum){ … … 5936 5936 5937 5937 /*Add to inputs*/ 5938 this->inputs->AddInput(new TriaInput(HydrologyWaterVxEnum,vx ));5939 this->inputs->AddInput(new TriaInput(HydrologyWaterVyEnum,vy ));5938 this->inputs->AddInput(new TriaInput(HydrologyWaterVxEnum,vx,P1Enum)); 5939 this->inputs->AddInput(new TriaInput(HydrologyWaterVyEnum,vy,P1Enum)); 5940 5940 } 5941 5941 /*}}}*/ … … 6470 6470 6471 6471 /*Add input to the element: */ 6472 this->inputs->AddInput(new TriaInput(WatercolumnEnum,values ));6472 this->inputs->AddInput(new TriaInput(WatercolumnEnum,values,P1Enum)); 6473 6473 6474 6474 /*Free ressources:*/ … … 6524 6524 6525 6525 /*Add input to the element: */ 6526 this->inputs->AddInput(new TriaInput(SedimentHeadEnum,values ));6527 this->inputs->AddInput(new TriaInput(SedimentHeadResidualEnum,residual ));6526 this->inputs->AddInput(new TriaInput(SedimentHeadEnum,values,P1Enum)); 6527 this->inputs->AddInput(new TriaInput(SedimentHeadResidualEnum,residual,P1Enum)); 6528 6528 6529 6529 /*Free ressources:*/ … … 6789 6789 6790 6790 /*Add new inputs: */ 6791 this->inputs->AddInput(new TriaInput(ThicknessEnum,thickness ));6792 this->inputs->AddInput(new TriaInput(BedEnum,bed ));6793 this->inputs->AddInput(new TriaInput(SurfaceEnum,surface ));6791 this->inputs->AddInput(new TriaInput(ThicknessEnum,thickness,P1Enum)); 6792 this->inputs->AddInput(new TriaInput(BedEnum,bed,P1Enum)); 6793 this->inputs->AddInput(new TriaInput(SurfaceEnum,surface,P1Enum)); 6794 6794 6795 6795 break; 6796 6796 default: 6797 this->inputs->AddInput(new TriaInput(name,values ));6797 this->inputs->AddInput(new TriaInput(name,values,P1Enum)); 6798 6798 } 6799 6799 break; -
issm/trunk-jpl/src/c/classes/Inputs/ControlInput.cpp
r15298 r15300 31 31 switch(enum_input){ 32 32 case TriaInputEnum: 33 values =new TriaInput(enum_type,pvalues );34 savedvalues=new TriaInput(enum_type,pvalues );35 minvalues =new TriaInput(enum_type,pmin );36 maxvalues =new TriaInput(enum_type,pmax );33 values =new TriaInput(enum_type,pvalues,P1Enum); 34 savedvalues=new TriaInput(enum_type,pvalues,P1Enum); 35 minvalues =new TriaInput(enum_type,pmin,P1Enum); 36 maxvalues =new TriaInput(enum_type,pmax,P1Enum); 37 37 break; 38 38 case PentaP1InputEnum: -
issm/trunk-jpl/src/c/classes/Inputs/PentaP1Input.cpp
r15298 r15300 100 100 101 101 /*Create new Tria input*/ 102 outinput=new TriaInput(this->enum_type,&newvalues[0] );102 outinput=new TriaInput(this->enum_type,&newvalues[0],P1Enum); 103 103 104 104 /*Assign output*/ -
issm/trunk-jpl/src/c/classes/Inputs/TriaInput.h
r15298 r15300 22 22 /*TriaInput constructors, destructors*/ 23 23 TriaInput(); 24 TriaInput(int enum_type,IssmDouble* values,int element_type_in =P1Enum);24 TriaInput(int enum_type,IssmDouble* values,int element_type_in); 25 25 ~TriaInput(); 26 26 -
issm/trunk-jpl/src/c/classes/Materials/Matdamageice.cpp
r15298 r15300 630 630 IssmDouble values[3]; 631 631 for (int i=0;i<3;i++) values[i]=vector[((Tria*)element)->vertices[i]->Pid()]; 632 this->inputs->AddInput(new TriaInput(name,values ));632 this->inputs->AddInput(new TriaInput(name,values,P1Enum)); 633 633 return; 634 634 } … … 672 672 IssmDouble values[3]; 673 673 for (int i=0;i<3;i++) values[i]=vector[((Tria*)element)->vertices[i]->Sid()]; //use sid list, to index into serial oriented vector 674 this->inputs->AddInput(new TriaInput(name,values ));674 this->inputs->AddInput(new TriaInput(name,values,P1Enum)); 675 675 /*Special case for rheology B in 2D: Pourave land for this solution{{{*/ 676 676 if(name==MaterialsRheologyBEnum){ … … 685 685 if(dim==2){ 686 686 /*Dupliacte rheology input: */ 687 this->inputs->AddInput(new TriaInput(MaterialsRheologyBbarEnum,values ));687 this->inputs->AddInput(new TriaInput(MaterialsRheologyBbarEnum,values,P1Enum)); 688 688 } 689 689 } … … 759 759 if (iomodel->Data(MaterialsRheologyBEnum)) { 760 760 for(i=0;i<num_vertices;i++) nodeinputs[i]=iomodel->Data(MaterialsRheologyBEnum)[reCast<int,IssmDouble>(iomodel->Data(MeshElementsEnum)[num_vertices*index+i]-1)]; 761 this->inputs->AddInput(new TriaInput(MaterialsRheologyBbarEnum,nodeinputs ));761 this->inputs->AddInput(new TriaInput(MaterialsRheologyBbarEnum,nodeinputs,P1Enum)); 762 762 } 763 763 … … 765 765 if (iomodel->Data(MaterialsRheologyNEnum)) { 766 766 for(i=0;i<num_vertices;i++) nodeinputs[i]=iomodel->Data(MaterialsRheologyNEnum)[index]; 767 this->inputs->AddInput(new TriaInput(MaterialsRheologyNEnum,nodeinputs ));767 this->inputs->AddInput(new TriaInput(MaterialsRheologyNEnum,nodeinputs,P1Enum)); 768 768 } 769 769 … … 771 771 if (iomodel->Data(MaterialsRheologyZEnum)) { 772 772 for(i=0;i<num_vertices;i++) nodeinputs[i]=iomodel->Data(MaterialsRheologyZEnum)[reCast<int,IssmDouble>(iomodel->Data(MeshElementsEnum)[num_vertices*index+i]-1)]; 773 this->inputs->AddInput(new TriaInput(MaterialsRheologyZbarEnum,nodeinputs ));773 this->inputs->AddInput(new TriaInput(MaterialsRheologyZbarEnum,nodeinputs,P1Enum)); 774 774 } 775 775 -
issm/trunk-jpl/src/c/classes/Materials/Matice.cpp
r15298 r15300 564 564 IssmDouble values[3]; 565 565 for (int i=0;i<3;i++) values[i]=vector[((Tria*)element)->vertices[i]->Pid()]; 566 this->inputs->AddInput(new TriaInput(name,values ));566 this->inputs->AddInput(new TriaInput(name,values,P1Enum)); 567 567 return; 568 568 } … … 606 606 IssmDouble values[3]; 607 607 for (int i=0;i<3;i++) values[i]=vector[((Tria*)element)->vertices[i]->Sid()]; //index into serial oriented vector 608 this->inputs->AddInput(new TriaInput(name,values ));608 this->inputs->AddInput(new TriaInput(name,values,P1Enum)); 609 609 /*Special case for rheology B in 2D: Pourave land for this solution{{{*/ 610 610 if(name==MaterialsRheologyBEnum){ … … 619 619 if(dim==2){ 620 620 /*Dupliacte rheology input: */ 621 this->inputs->AddInput(new TriaInput(MaterialsRheologyBbarEnum,values ));621 this->inputs->AddInput(new TriaInput(MaterialsRheologyBbarEnum,values,P1Enum)); 622 622 } 623 623 } … … 699 699 if (iomodel->Data(MaterialsRheologyBEnum)) { 700 700 for(i=0;i<num_vertices;i++) nodeinputs[i]=iomodel->Data(MaterialsRheologyBEnum)[reCast<int,IssmDouble>(iomodel->Data(MeshElementsEnum)[num_vertices*index+i]-1)]; 701 this->inputs->AddInput(new TriaInput(MaterialsRheologyBbarEnum,nodeinputs ));701 this->inputs->AddInput(new TriaInput(MaterialsRheologyBbarEnum,nodeinputs,P1Enum)); 702 702 } 703 703 … … 705 705 if (iomodel->Data(MaterialsRheologyNEnum)) { 706 706 for(i=0;i<num_vertices;i++) nodeinputs[i]=iomodel->Data(MaterialsRheologyNEnum)[index]; 707 this->inputs->AddInput(new TriaInput(MaterialsRheologyNEnum,nodeinputs ));707 this->inputs->AddInput(new TriaInput(MaterialsRheologyNEnum,nodeinputs,P1Enum)); 708 708 } 709 709
Note:
See TracChangeset
for help on using the changeset viewer.