Changeset 8592


Ignore:
Timestamp:
06/09/11 15:22:09 (14 years ago)
Author:
Mathieu Morlighem
Message:

Added new DatasetInput for multiple inputs (needed for control methods: weights)
fixed a leak in Penta.cpp
removed some unnecessary model fields, now in marshall

Location:
issm/trunk/src
Files:
3 added
26 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk/src/c/Container/DataSet.cpp

    r8378 r8592  
    252252                                dataset->AddObject(controlinputinput);}
    253253                                break;
     254                        case DatasetInputEnum:{
     255                                DatasetInput* datasetinputinput=NULL;
     256                                datasetinputinput=new DatasetInput();
     257                                datasetinputinput->Demarshall(&marshalled_dataset);
     258                                dataset->AddObject(datasetinputinput);}
     259                                break;
    254260                        case TriaVertexElementResultEnum:{
    255261                                TriaVertexElementResult* triavertexelementresult=NULL;
  • issm/trunk/src/c/EnumDefinitions/EnumDefinitions.h

    r8582 r8592  
    455455        ReferenceTemperatureEnum,
    456456        ThicknessAbsGradientEnum,
    457         VelAbsGradientEnum
     457        VelAbsGradientEnum,
     458        DatasetInputEnum
    458459};
    459460
  • issm/trunk/src/c/Makefile.am

    r8483 r8592  
    220220                                        ./objects/Inputs/ControlInput.h\
    221221                                        ./objects/Inputs/ControlInput.cpp\
     222                                        ./objects/Inputs/DatasetInput.h\
     223                                        ./objects/Inputs/DatasetInput.cpp\
    222224                                        ./objects/Elements/Penta.h\
    223225                                        ./objects/Elements/Penta.cpp\
     
    887889                                        ./objects/Inputs/ControlInput.h\
    888890                                        ./objects/Inputs/ControlInput.cpp\
     891                                        ./objects/Inputs/DatasetInput.h\
     892                                        ./objects/Inputs/DatasetInput.cpp\
    889893                                        ./objects/Elements/Penta.h\
    890894                                        ./objects/Elements/Penta.cpp\
  • issm/trunk/src/c/modules/EnumToStringx/EnumToStringx.cpp

    r8582 r8592  
    399399                case ThicknessAbsGradientEnum : return "ThicknessAbsGradient";
    400400                case VelAbsGradientEnum : return "VelAbsGradient";
     401                case DatasetInputEnum : return "DatasetInput";
    401402                default : return "unknown";
    402403
  • issm/trunk/src/c/modules/StringToEnumx/StringToEnumx.cpp

    r8582 r8592  
    397397        else if (strcmp(name,"ThicknessAbsGradient")==0) return ThicknessAbsGradientEnum;
    398398        else if (strcmp(name,"VelAbsGradient")==0) return VelAbsGradientEnum;
     399        else if (strcmp(name,"DatasetInput")==0) return DatasetInputEnum;
    399400        else _error_("Enum %s not found",name);
    400401
  • issm/trunk/src/c/objects/Elements/Penta.cpp

    r8500 r8592  
    45994599
    46004600                if(control_type[i]==RheologyBbarEnum){
    4601                         if (!IsOnBed()) return;
     4601                        if (!IsOnBed()) goto cleanup_and_return;
    46024602                        input=(Input*)matice->inputs->GetInput(RheologyBEnum); _assert_(input);
    46034603                }
     
    46184618
    46194619        /*Clean up and return*/
     4620cleanup_and_return:
    46204621        xfree((void**)&control_type);
    46214622}
     
    49464947                for(i=0;i<6;i++)nodeinputs[i]=iomodel->vz_obs[penta_vertex_ids[i]-1]/iomodel->yts;
    49474948                this->inputs->AddInput(new PentaVertexInput(VzObsEnum,nodeinputs));
    4948         }
    4949         if (iomodel->weights) {
    4950                 for(i=0;i<6;i++)nodeinputs[i]=iomodel->weights[penta_vertex_ids[i]-1];
    4951                 this->inputs->AddInput(new PentaVertexInput(WeightsEnum,nodeinputs));
    49524949        }
    49534950        if (iomodel->elementoniceshelf) this->inputs->AddInput(new BoolInput(ElementOnIceShelfEnum,(IssmBool)iomodel->elementoniceshelf[index]));
     
    50315028        }
    50325029
     5030        /*DatasetInputs*/
     5031        if (iomodel->weights) {
     5032
     5033                /*Create inputs and add to DataSetInput*/
     5034                DatasetInput* datasetinput=new DatasetInput(WeightsEnum);
     5035                for(j=0;j<iomodel->num_cm_responses;j++){
     5036                        for(i=0;i<6;i++)nodeinputs[i]=iomodel->weights[penta_vertex_ids[i]-1];
     5037                        datasetinput->inputs->AddObject(new PentaVertexInput(WeightsEnum,nodeinputs));
     5038                }
     5039
     5040                /*Add datasetinput to element inputs*/
     5041                this->inputs->AddInput(datasetinput);
     5042        }
    50335043}
    50345044/*}}}*/
  • issm/trunk/src/c/objects/Elements/Tria.cpp

    r8567 r8592  
    16301630                thickness_input->GetParameterDerivativeValue(&dH[0],&xyz_list[0][0],gauss);
    16311631                thicknessobs_input->GetParameterValue(&thicknessobs, gauss);
    1632                 weights_input->GetParameterValue(&weight, gauss);
     1632                weights_input->GetParameterValue(&weight, gauss,0);
    16331633
    16341634                for(i=0;i<numdof;i++) pe->values[i]+=(thicknessobs-thickness)*weight*Jdet*gauss->weight*l1l2l3[i];
     
    16771677        GetParameterListOnVertices(&vx_list[0],VxEnum);
    16781678        GetParameterListOnVertices(&vy_list[0],VyEnum);
    1679         GetParameterListOnVertices(&weights_list[0],WeightsEnum);
     1679        GetParameterListOnVertices(&weights_list[0],WeightsEnum,0,0);
    16801680        inputs->GetParameterValue(&response,CmResponseEnum);
    16811681        if(response==SurfaceAverageVelMisfitEnum){
     
    18571857        GetParameterListOnVertices(&vx_list[0],VxEnum);
    18581858        GetParameterListOnVertices(&vy_list[0],VyEnum);
    1859         GetParameterListOnVertices(&weights_list[0],WeightsEnum);
     1859        GetParameterListOnVertices(&weights_list[0],WeightsEnum,0,0);
    18601860        inputs->GetParameterValue(&response,CmResponseEnum);
    18611861        if(response==SurfaceAverageVelMisfitEnum){
     
    21842184        GetVerticesCoordinates(&xyz_list[0][0], nodes, NUMVERTICES);
    21852185        Input* surface_mass_balance_input=inputs->GetInput(SurfaceMassBalanceEnum); _assert_(surface_mass_balance_input);
    2186         Input* basal_melting_input=inputs->GetInput(BasalMeltingRateEnum);           _assert_(basal_melting_input);
    2187         Input* thickness_input=inputs->GetInput(ThicknessEnum);           _assert_(thickness_input);
     2186        Input* basal_melting_input=inputs->GetInput(BasalMeltingRateEnum);          _assert_(basal_melting_input);
     2187        Input* thickness_input=inputs->GetInput(ThicknessEnum);                     _assert_(thickness_input);
    21882188
    21892189        /* Start  looping on the number of gaussian points: */
     
    25582558                        gauss->GaussVertex(iv);
    25592559                        input->GetParameterValue(&pvalue[iv],gauss);
     2560                }
     2561        }
     2562        else{
     2563                for (int iv=0;iv<NUMVERTICES;iv++) pvalue[iv]=defaultvalue;
     2564        }
     2565
     2566        /*clean-up*/
     2567        delete gauss;
     2568}
     2569/*}}}*/
     2570/*FUNCTION Tria::GetParameterListOnVertices(double* pvalue,int enumtype,double defaultvalue,int index) TO BE REMOVED{{{1*/
     2571void Tria::GetParameterListOnVertices(double* pvalue,int enumtype,double defaultvalue,int index){
     2572
     2573        double     value[NUMVERTICES];
     2574        GaussTria *gauss = NULL;
     2575        Input     *input = inputs->GetInput(enumtype);
     2576
     2577        /*Checks in debugging mode*/
     2578        _assert_(pvalue);
     2579
     2580        /* Start looping on the number of vertices: */
     2581        if (input){
     2582                gauss=new GaussTria();
     2583                for (int iv=0;iv<NUMVERTICES;iv++){
     2584                        gauss->GaussVertex(iv);
     2585                        input->GetParameterValue(&pvalue[iv],gauss,index);
    25602586                }
    25612587        }
     
    35183544                this->inputs->AddInput(new TriaVertexInput(VzObsEnum,nodeinputs));
    35193545        }
    3520         if (iomodel->weights) {
    3521                 for(i=0;i<3;i++)nodeinputs[i]=iomodel->weights[tria_vertex_ids[i]-1];
    3522                 this->inputs->AddInput(new TriaVertexInput(WeightsEnum,nodeinputs));
    3523         }
     3546
    35243547        if (iomodel->elementoniceshelf) this->inputs->AddInput(new BoolInput(ElementOnIceShelfEnum,(IssmBool)iomodel->elementoniceshelf[index]));
    35253548        if (iomodel->elementonbed) this->inputs->AddInput(new BoolInput(ElementOnBedEnum,(IssmBool)iomodel->elementonbed[index]));
     
    35703593                }
    35713594        }
     3595
     3596        /*DatasetInputs*/
     3597        if (iomodel->weights) {
     3598
     3599                /*Create inputs and add to DataSetInput*/
     3600                DatasetInput* datasetinput=new DatasetInput(WeightsEnum);
     3601                for(j=0;j<iomodel->num_cm_responses;j++){
     3602                        for(i=0;i<3;i++)nodeinputs[i]=iomodel->weights[tria_vertex_ids[i]-1];
     3603                        datasetinput->inputs->AddObject(new TriaVertexInput(WeightsEnum,nodeinputs));
     3604                }
     3605
     3606                /*Add datasetinput to element inputs*/
     3607                this->inputs->AddInput(datasetinput);
     3608        }
    35723609}
    35733610/*}}}*/
     
    48314868        GetParameterListOnVertices(&vx_list[0],VxEnum);
    48324869        GetParameterListOnVertices(&vy_list[0],VyEnum);
    4833         GetParameterListOnVertices(&weights_list[0],WeightsEnum);
     4870        GetParameterListOnVertices(&weights_list[0],WeightsEnum,0,0);
    48344871
    48354872        /*retrieve some parameters: */
     
    49414978        GetParameterListOnVertices(&vx_list[0],VxEnum);
    49424979        GetParameterListOnVertices(&vy_list[0],VyEnum);
    4943         GetParameterListOnVertices(&weights_list[0],WeightsEnum);
     4980        GetParameterListOnVertices(&weights_list[0],WeightsEnum,0,0);
    49444981
    49454982        /*retrieve some parameters: */
     
    50215058        GetParameterListOnVertices(&vx_list[0],VxEnum);
    50225059        GetParameterListOnVertices(&vy_list[0],VyEnum);
    5023         GetParameterListOnVertices(&weights_list[0],WeightsEnum);
     5060        GetParameterListOnVertices(&weights_list[0],WeightsEnum,0,0);
    50245061
    50255062        /*retrieve some parameters: */
     
    51045141        GetParameterListOnVertices(&vx_list[0],VxEnum);
    51055142        GetParameterListOnVertices(&vy_list[0],VyEnum);
    5106         GetParameterListOnVertices(&weights_list[0],WeightsEnum);
     5143        GetParameterListOnVertices(&weights_list[0],WeightsEnum,0,0);
    51075144
    51085145        /*retrieve some parameters: */
     
    52065243
    52075244        /* Recover input data: */
     5245        GetParameterListOnVertices(&weights_list[0],WeightsEnum,0,0);
    52085246        GetParameterListOnVertices(&obs_vx_list[0],VxObsEnum);
    52095247        GetParameterListOnVertices(&obs_vy_list[0],VyObsEnum);
    52105248        GetParameterListOnVertices(&vx_list[0],VxEnum);
    52115249        GetParameterListOnVertices(&vy_list[0],VyEnum);
    5212         GetParameterListOnVertices(&weights_list[0],WeightsEnum);
    52135250
    52145251        /*retrieve some parameters: */
     
    53045341                thickness_input->GetParameterDerivativeValue(&dH[0],&xyz_list[0][0],gauss);
    53055342                thicknessobs_input->GetParameterValue(&thicknessobs,gauss);
    5306                 weights_input->GetParameterValue(&weight,gauss);
     5343                weights_input->GetParameterValue(&weight,gauss,0);
    53075344
    53085345                /*compute ThicknessAbsMisfit*/
  • issm/trunk/src/c/objects/Elements/Tria.h

    r8418 r8592  
    178178                void    GetParameterListOnVertices(double* pvalue,int enumtype);
    179179                void    GetParameterListOnVertices(double* pvalue,int enumtype,double defaultvalue);
     180                void    GetParameterListOnVertices(double* pvalue,int enumtype,double defaultvalue,int index); //TO BE REMOVED
    180181                void    GetParameterValue(double* pvalue,Node* node,int enumtype);
    181182                void      GetSolutionFromInputsDiagnosticHoriz(Vec solution);
  • issm/trunk/src/c/objects/Inputs/BoolInput.h

    r8363 r8592  
    5353                void GetParameterValue(double* pvalue,GaussTria* gauss);
    5454                void GetParameterValue(double* pvalue,GaussPenta* gauss);
     55                void GetParameterValue(double* pvalue,GaussTria* gauss ,int index){_error_("not implemented yet");};
     56                void GetParameterValue(double* pvalue,GaussPenta* gauss ,int index){_error_("not implemented yet");};
    5557                void GetParameterDerivativeValue(double* derivativevalues, double* xyz_list, GaussTria* gauss);
    5658                void GetParameterDerivativeValue(double* derivativevalues, double* xyz_list, GaussPenta* gauss);
  • issm/trunk/src/c/objects/Inputs/ControlInput.h

    r8386 r8592  
    5757                void GetParameterValue(double* pvalue,GaussTria* gauss);
    5858                void GetParameterValue(double* pvalue,GaussPenta* gauss);
     59                void GetParameterValue(double* pvalue,GaussTria* gauss ,int index){_error_("not implemented yet");};
     60                void GetParameterValue(double* pvalue,GaussPenta* gauss ,int index){_error_("not implemented yet");};
    5961                void GetParameterDerivativeValue(double* derivativevalues, double* xyz_list, GaussTria* gauss);
    6062                void GetParameterDerivativeValue(double* derivativevalues, double* xyz_list, GaussPenta* gauss);
  • issm/trunk/src/c/objects/Inputs/DoubleInput.h

    r8363 r8592  
    5252                void GetParameterValue(double* pvalue,GaussTria* gauss);
    5353                void GetParameterValue(double* pvalue,GaussPenta* gauss);
     54                void GetParameterValue(double* pvalue,GaussTria* gauss ,int index){_error_("not implemented yet");};
     55                void GetParameterValue(double* pvalue,GaussPenta* gauss ,int index){_error_("not implemented yet");};
    5456                void GetParameterDerivativeValue(double* derivativevalues, double* xyz_list, GaussTria* gauss);
    5557                void GetParameterDerivativeValue(double* derivativevalues, double* xyz_list, GaussPenta* gauss);
  • issm/trunk/src/c/objects/Inputs/Input.h

    r8363 r8592  
    2828                virtual void GetParameterValue(double* pvalue,GaussTria* gauss)=0;
    2929                virtual void GetParameterValue(double* pvalue,GaussPenta* gauss)=0;
     30                virtual void GetParameterValue(double* pvalue,GaussTria* gauss ,int index)=0;
     31                virtual void GetParameterValue(double* pvalue,GaussPenta* gauss,int index)=0;
    3032                virtual void GetParameterDerivativeValue(double* derivativevalues, double* xyz_list, GaussTria* gauss)=0;
    3133                virtual void GetParameterDerivativeValue(double* derivativevalues, double* xyz_list, GaussPenta* gauss)=0;
  • issm/trunk/src/c/objects/Inputs/IntInput.h

    r8363 r8592  
    5353                void GetParameterValue(double* pvalue,GaussTria* gauss);
    5454                void GetParameterValue(double* pvalue,GaussPenta* gauss);
     55                void GetParameterValue(double* pvalue,GaussTria* gauss ,int index){_error_("not implemented yet");};
     56                void GetParameterValue(double* pvalue,GaussPenta* gauss ,int index){_error_("not implemented yet");};
    5557                void GetParameterDerivativeValue(double* derivativevalues, double* xyz_list, GaussTria* gauss);
    5658                void GetParameterDerivativeValue(double* derivativevalues, double* xyz_list, GaussPenta* gauss);
  • issm/trunk/src/c/objects/Inputs/PentaVertexForcing.h

    r8376 r8592  
    5858                void GetParameterValue(double* pvalue,GaussTria* gauss);
    5959                void GetParameterValue(double* pvalue,GaussPenta* gauss){_error_("not implemented yet");};
     60                void GetParameterValue(double* pvalue,GaussTria* gauss ,int index){_error_("not implemented yet");};
     61                void GetParameterValue(double* pvalue,GaussPenta* gauss ,int index){_error_("not implemented yet");};
    6062                void GetParameterDerivativeValue(double* derivativevalues, double* xyz_list, GaussTria* gauss);
    6163                void GetParameterDerivativeValue(double* derivativevalues, double* xyz_list, GaussPenta* gauss){_error_("not implemented yet");};
  • issm/trunk/src/c/objects/Inputs/PentaVertexInput.h

    r8363 r8592  
    5353                void GetParameterValue(double* pvalue,GaussTria* gauss){_error_("not implemented yet");};
    5454                void GetParameterValue(double* pvalue,GaussPenta* gauss);
     55                void GetParameterValue(double* pvalue,GaussTria* gauss ,int index){_error_("not implemented yet");};
     56                void GetParameterValue(double* pvalue,GaussPenta* gauss ,int index){_error_("not implemented yet");};
    5557                void GetParameterDerivativeValue(double* derivativevalues, double* xyz_list, GaussTria* gauss){_error_("not implemented yet");};
    5658                void GetParameterDerivativeValue(double* derivativevalues, double* xyz_list, GaussPenta* gauss);
  • issm/trunk/src/c/objects/Inputs/TriaVertexForcing.h

    r8363 r8592  
    5858                void GetParameterValue(double* pvalue,GaussTria* gauss);
    5959                void GetParameterValue(double* pvalue,GaussPenta* gauss){_error_("not implemented yet");};
     60                void GetParameterValue(double* pvalue,GaussTria* gauss ,int index){_error_("not implemented yet");};
     61                void GetParameterValue(double* pvalue,GaussPenta* gauss ,int index){_error_("not implemented yet");};
    6062                void GetParameterDerivativeValue(double* derivativevalues, double* xyz_list, GaussTria* gauss);
    6163                void GetParameterDerivativeValue(double* derivativevalues, double* xyz_list, GaussPenta* gauss){_error_("not implemented yet");};
  • issm/trunk/src/c/objects/Inputs/TriaVertexInput.h

    r8363 r8592  
    5353                void GetParameterValue(double* pvalue,GaussTria* gauss);
    5454                void GetParameterValue(double* pvalue,GaussPenta* gauss){_error_("not implemented yet");};
     55                void GetParameterValue(double* pvalue,GaussTria* gauss ,int index){_error_("not implemented yet");};
     56                void GetParameterValue(double* pvalue,GaussPenta* gauss,int index){_error_("not implemented yet");};
    5557                void GetParameterDerivativeValue(double* derivativevalues, double* xyz_list, GaussTria* gauss);
    5658                void GetParameterDerivativeValue(double* derivativevalues, double* xyz_list, GaussPenta* gauss){_error_("not implemented yet");};
  • issm/trunk/src/c/objects/IoModel.cpp

    r8561 r8592  
    169169        /*Get control parameters: */
    170170        IoModelFetchData(&this->num_control_type,iomodel_handle,"num_control_type");
     171        IoModelFetchData(&this->num_cm_responses,iomodel_handle,"num_cm_responses");
    171172
    172173        /*!Get solution parameters: */
  • issm/trunk/src/c/objects/IoModel.h

    r8561 r8592  
    133133
    134134                /*control methods: */
     135                int      num_cm_responses;
    135136                int      num_control_type;
    136137                double*  control_type;
  • issm/trunk/src/c/objects/objects.h

    r8468 r8592  
    8989#include "./Inputs/TriaVertexForcing.h"
    9090#include "./Inputs/ControlInput.h"
     91#include "./Inputs/DatasetInput.h"
    9192
    9293/*ElementResults: */
  • issm/trunk/src/m/classes/version/7.6/model.m

    r8587 r8592  
    223223                 control_analysis=0;
    224224                 control_type=0;
    225                  num_control_type=0;
    226225                 weights=[];
    227226                 nsteps=0;
     
    252251                 %debugging
    253252                 verbose=0;
    254                  verbose_binary=0;
    255253                 element_debug=0;
    256254                 element_debugid=NaN;
     
    399397                 accumulation_rate;
    400398                 hydro_gamma;
     399                 num_control_type;
     400                 verbose_binary;
    401401                 % }}}
    402402         end
  • issm/trunk/src/m/classes/version/7.7/model.m

    r8587 r8592  
    223223                 control_analysis=0;
    224224                 control_type=0;
    225                  num_control_type=0;
    226225                 weights=[];
    227226                 nsteps=0;
     
    252251                 %debugging
    253252                 verbose=0;
    254                  verbose_binary=0;
    255253                 element_debug=0;
    256254                 element_debugid=NaN;
     
    399397                 accumulation_rate;
    400398                 hydro_gamma;
     399                 num_control_type;
     400                 verbose_binary;
    401401                 % }}}
    402402         end
  • issm/trunk/src/m/model/marshall.m

    r8562 r8592  
    3434WriteData(fid,md.nodeonhutter,'Mat','nodeonhutter');
    3535WriteData(fid,md.nodeonmacayeal,'Mat','nodeonmacayeal');
    36 
    3736if md.dim==3,
    3837        WriteData(fid,md.numberofelements2d,'Integer','numberofelements2d');
     
    5150WriteData(fid,md.borderstokes,'Mat','borderstokes');
    5251
    53 
    5452WriteData(fid,md.thickness,'Mat','thickness');
    5553WriteData(fid,md.thickness_coeff,'Mat','thickness_coeff');
     
    6765WriteData(fid,md.temperature,'Mat','temperature');
    6866WriteData(fid,md.waterfraction,'Mat','waterfraction');
    69 
    7067
    7168WriteData(fid,md.drag_type,'Integer','drag_type');
     
    154151%Control methods
    155152WriteData(fid,md.control_analysis,'Integer','control_analysis');
    156 WriteData(fid,md.num_control_type,'Integer','num_control_type');
     153WriteData(fid,numel(md.control_type),'Integer','num_control_type');
     154WriteData(fid,size(md.cm_responses,2),'Integer','num_cm_responses');
    157155WriteData(fid,md.control_type,'Mat','control_type');
    158156
     
    164162WriteData(fid,md.meanvel,'Scalar','meanvel');
    165163WriteData(fid,md.epsvel,'Scalar','epsvel');
    166 WriteData(fid,md.verbose_binary,'Integer','verbose_binary');
     164WriteData(fid,VerboseToBinary(md.verbose),'Integer','verbose_binary');
    167165WriteData(fid,md.output_frequency,'Integer','output_frequency');
    168166WriteData(fid,md.artificial_diffusivity,'Integer','artificial_diffusivity');
  • issm/trunk/src/m/model/presolve.m

    r8330 r8592  
    88md.inputfilename=[md.name '.bin'];
    99md.outputfilename=[md.name '.outbin'];
    10 
    11 %verbose;
    12 md.verbose_binary=VerboseToBinary(md.verbose);
    13 
    14 %deal with control methods
    15 if ~md.control_analysis
    16         md.num_control_type=0;
    17 else
    18         md.num_control_type=numel(md.control_type);
    19 end
    2010
    2111%deal with rifts.
  • issm/trunk/src/m/solutions/NewFemModel.m

    r8330 r8592  
    1010
    1111        %Set verbosity
    12         SetVerbosityLevel(md.verbose_binary);
     12        SetVerbosityLevel(VerboseToBinary(md.verbose));
    1313
    1414   %Dynamically allocate whatever is a list of length nummodels: */
  • issm/trunk/src/mex/Makefile.am

    r8468 r8592  
    2828                                InputControlUpdate \
    2929                                InputConvergence\
    30                                 GetPId\
    3130                                GetSolutionFromInputs\
    3231                                GetVectorFromInputs\
     
    177176                          StringToEnum/StringToEnum.h
    178177
    179 GetPId_SOURCES = GetPId/GetPId.cpp\
    180                                           GetPId/GetPId.h
    181 
    182178GetSolutionFromInputs_SOURCES = GetSolutionFromInputs/GetSolutionFromInputs.cpp\
    183179                          GetSolutionFromInputs/GetSolutionFromInputs.h
Note: See TracChangeset for help on using the changeset viewer.