Changeset 9126


Ignore:
Timestamp:
07/26/11 17:43:41 (14 years ago)
Author:
Eric.Larour
Message:

Reinitialize temperature to qmu temperature at each qmu step, to avoid fake sensitivities.

Location:
issm/trunk/src/c
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk/src/c/EnumDefinitions/EnumDefinitions.h

    r9113 r9126  
    546546        NumRequestedOutputsEnum,
    547547        BasalFrictionEnum,
    548         ViscousHeatingEnum
     548        ViscousHeatingEnum,
     549        QmuTemperatureEnum
    549550};
    550551
  • issm/trunk/src/c/modules/EnumToStringx/EnumToStringx.cpp

    r9113 r9126  
    488488                case BasalFrictionEnum : return "BasalFriction";
    489489                case ViscousHeatingEnum : return "ViscousHeating";
     490                case QmuTemperatureEnum : return "QmuTemperature";
    490491                default : return "unknown";
    491492
  • issm/trunk/src/c/modules/ModelProcessorx/Thermal/UpdateElementsThermal.cpp

    r8986 r9126  
    5353        IoModelToInputsx(elements,iomodel,iomodel_handle,VzEnum);
    5454       
     55        if(iomodel->qmu_analysis)elements->InputDuplicate(TemperatureEnum,QmuTemperatureEnum);
     56
    5557        /*Free data: */
    5658        xfree((void**)&iomodel->elements);
  • issm/trunk/src/c/modules/StringToEnumx/StringToEnumx.cpp

    r9113 r9126  
    486486        else if (strcmp(name,"BasalFriction")==0) return BasalFrictionEnum;
    487487        else if (strcmp(name,"ViscousHeating")==0) return ViscousHeatingEnum;
     488        else if (strcmp(name,"QmuTemperature")==0) return QmuTemperatureEnum;
    488489        else _error_("Enum %s not found",name);
    489490
  • issm/trunk/src/c/solutions/thermal_core.cpp

    r9002 r9126  
    2424        bool control_analysis;
    2525        int solution_type;
     26        bool   qmu_analysis         = false;
    2627
    2728        //first recover parameters common to all solutions
     
    3031        femmodel->parameters->FindParam(&control_analysis,ControlAnalysisEnum);
    3132        femmodel->parameters->FindParam(&solution_type,SolutionTypeEnum);
     33        femmodel->parameters->FindParam(&qmu_analysis,QmuAnalysisEnum);
    3234
    3335        /*Compute number of time steps: */
     
    3739        }
    3840        else nsteps=(int)(ndt/dt);
     41
     42        /*for qmu analysis, reinitialize temperature so that fake sensitivities do not show up as a result of a different restart of the convergence at each trial.*/
     43        if(qmu_analysis){
     44                InputDuplicatex(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,QmuTemperatureEnum,TemperatureEnum);
     45        }
     46
    3947
    4048        /*Loop through time: */
Note: See TracChangeset for help on using the changeset viewer.