Changeset 26887


Ignore:
Timestamp:
02/16/22 07:27:08 (3 years ago)
Author:
Mathieu Morlighem
Message:

NEW: added method to update input from passive double, needed for checkpointing!

Location:
issm/trunk-jpl/src/c/modules/SetControlInputsFromVectorx
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk-jpl/src/c/modules/SetControlInputsFromVectorx/SetControlInputsFromVectorx.cpp

    r25539 r26887  
    4040        xDelete<IssmDouble>(serial_vector);
    4141}
     42void SetControlInputsFromVectorx(FemModel* femmodel,IssmPDouble* vector){
     43
     44        /*Get total size and recast*/
     45        int  num_controls;
     46        int* M = NULL;
     47        int* N = NULL;
     48        femmodel->parameters->FindParam(&num_controls,InversionNumControlParametersEnum);
     49        femmodel->parameters->FindParam(&M,NULL,ControlInputSizeMEnum);
     50        femmodel->parameters->FindParam(&N,NULL,ControlInputSizeNEnum);
     51
     52        int size = 0;
     53        for(int i=0;i<num_controls;i++) size += M[i]*N[i];
     54
     55        IssmDouble* serial_vector=xNew<IssmDouble>(size);
     56        for(int i=0;i<size;i++) serial_vector[i] = reCast<IssmDouble>(vector[i]);
     57
     58        SetControlInputsFromVectorx(femmodel,serial_vector);
     59
     60        xDelete<IssmDouble>(serial_vector);
     61        xDelete<int>(M);
     62        xDelete<int>(N);
     63}
  • issm/trunk-jpl/src/c/modules/SetControlInputsFromVectorx/SetControlInputsFromVectorx.h

    r18128 r26887  
    1010void SetControlInputsFromVectorx(FemModel* femmodel,Vector<IssmDouble>* vector);
    1111void SetControlInputsFromVectorx(FemModel* femmodel,IssmDouble* vector);
     12void SetControlInputsFromVectorx(FemModel* femmodel,IssmPDouble* vector);
    1213
    1314#endif
Note: See TracChangeset for help on using the changeset viewer.