Changeset 13550


Ignore:
Timestamp:
10/05/12 08:36:40 (12 years ago)
Author:
Eric.Larour
Message:

CHG: fixed bug. Solver pointers need to be allocated even when autodiff is not on

File:
1 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk-jpl/src/c/modules/ModelProcessorx/Autodiff/CreateParametersAutodiff.cpp

    r13546 r13550  
    111111                parameters->AddObject(new DataSetParam(AutodiffIndependentObjectsEnum,iomodel->independent_objects));
    112112                /*}}}*/
    113         /*initialize a placeholder to store solver pointers: {{{*/
    114         GenericParam<Adolc_edf> *theAdolcEDF_p=new GenericParam<Adolc_edf>(AdolcParamEnum);
    115         theAdolcEDF_p->GetParameterValue().myEDF_for_solverx_p=reg_ext_fct(EDF_for_solverx);
    116         // to save some space:
    117         // we know we won't use adolc inside of  the solver:
    118         theAdolcEDF_p->GetParameterValue().myEDF_for_solverx_p->nestedAdolc=false;
    119         // the solution vector is just allocated and doesn't have a meaningfull prior value
    120         theAdolcEDF_p->GetParameterValue().myEDF_for_solverx_p->dp_y_priorRequired=false;
    121          // the solver wrapper makes sure the matrix and the right hand side don't change
    122         theAdolcEDF_p->GetParameterValue().myEDF_for_solverx_p->dp_x_changes=false;
    123         parameters->AddObject(theAdolcEDF_p);
    124         /*}}}*/
    125113
    126114                #endif
     115        }
     116               
     117        #ifdef _HAVE_ADOLC_
     118                /*initialize a placeholder to store solver pointers: {{{*/
     119                GenericParam<Adolc_edf> *theAdolcEDF_p=new GenericParam<Adolc_edf>(AdolcParamEnum);
     120                theAdolcEDF_p->GetParameterValue().myEDF_for_solverx_p=reg_ext_fct(EDF_for_solverx);
     121                // to save some space:
     122                // we know we won't use adolc inside of  the solver:
     123                theAdolcEDF_p->GetParameterValue().myEDF_for_solverx_p->nestedAdolc=false;
     124                // the solution vector is just allocated and doesn't have a meaningfull prior value
     125                theAdolcEDF_p->GetParameterValue().myEDF_for_solverx_p->dp_y_priorRequired=false;
     126                // the solver wrapper makes sure the matrix and the right hand side don't change
     127                theAdolcEDF_p->GetParameterValue().myEDF_for_solverx_p->dp_x_changes=false;
     128                parameters->AddObject(theAdolcEDF_p);
     129                /*}}}*/
     130        #endif
     131       
     132        /*Assign output pointer: */
     133        *pparameters=parameters;
    127134
    128                 /*Assign output pointer: */
    129                 *pparameters=parameters;
    130 
    131         }
    132135}
Note: See TracChangeset for help on using the changeset viewer.