Changeset 1901


Ignore:
Timestamp:
08/25/09 17:13:48 (16 years ago)
Author:
Mathieu Morlighem
Message:

no more transient or steady subanalysistype in thermal. use md.dt

Location:
issm/trunk/src
Files:
1 deleted
19 edited

Legend:

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

    r1866 r1901  
    3131//thermal
    3232int ThermalAnalysisEnum(void){          return          230; }
    33 int SteadyAnalysisEnum(void){           return          231; }
    34 int TransientAnalysisEnum(void){        return          232; }
     33//transient
     34int TransientAnalysisEnum(void){        return          231; }
    3535//slope
    3636int SlopeComputeAnalysisEnum(void){     return          240; }
  • issm/trunk/src/c/EnumDefinitions/EnumDefinitions.h

    r1866 r1901  
    3232//thermal
    3333int ThermalAnalysisEnum(void);
    34 int SteadyAnalysisEnum(void);
     34//transient
    3535int TransientAnalysisEnum(void);
    36 int ThermalstaticAnalysisEnum(void);
    3736//slope
    3837int SlopeComputeAnalysisEnum(void);
     
    109108int EnumIsLoad(int en);
    110109int EnumIsMaterial(int en);
    111 int AnalysisTypeAsEnum(char* analysis_type);
    112110#endif
  • issm/trunk/src/c/EnumDefinitions/SynchronizeMatlabEnum.sh

    r1789 r1901  
    33#Create a matlab file using the same Enum as in EnumDefinitions.cpp
    44#and move the file to src/m/enum
     5
     6#first remove all existing enum
     7rm $ISSM_DIR/src/m/enum/*.m
    58
    69#Get the list of interesting lines of EnumDefinitions.cpp and introduce line number
  • issm/trunk/src/c/Makefile.am

    r1881 r1901  
    180180                                        ./EnumDefinitions/EnumDefinitions.h\
    181181                                        ./EnumDefinitions/EnumDefinitions.cpp\
    182                                         ./EnumDefinitions/AnalysisTypeAsEnum.cpp\
    183182                                        ./ModelProcessorx/IoModel.h\
    184183                                        ./ModelProcessorx/IoModel.cpp\
     
    475474                                        ./EnumDefinitions/EnumDefinitions.h\
    476475                                        ./EnumDefinitions/EnumDefinitions.cpp\
    477                                         ./EnumDefinitions/AnalysisTypeAsEnum.cpp\
    478476                                        ./ModelProcessorx/IoModel.h\
    479477                                        ./ModelProcessorx/IoModel.cpp\
  • issm/trunk/src/c/ModelProcessorx/Melting/CreateParametersMelting.cpp

    r1834 r1901  
    2828
    2929        /* get initial melting if transient*/
    30         if(iomodel->sub_analysis_type==TransientAnalysisEnum()){
     30        if(iomodel->dt){
    3131
    3232                /*Get melting: */
  • issm/trunk/src/c/ModelProcessorx/Thermal/CreateParametersThermal.cpp

    r1834 r1901  
    6666
    6767        /* get initial temperature and melting if transient*/
    68         if(iomodel->sub_analysis_type==TransientAnalysisEnum()){
     68        if(iomodel->dt){
    6969
    7070                /*Get melting and temperature: */
  • issm/trunk/src/c/objects/Pengrid.cpp

    r1439 r1901  
    482482
    483483        found=inputs->Recover("dt",&dt);
    484         if((!found) && (sub_analysis_type==TransientAnalysisEnum()))throw ErrorException(__FUNCT__," could not find dt in inputs!");
     484        if(!found)throw ErrorException(__FUNCT__," could not find dt in inputs!");
    485485
    486486        meltingpoint=matpar->GetMeltingPoint();
     
    500500        }
    501501        else{
    502                 if (sub_analysis_type==SteadyAnalysisEnum()){
    503                         P_terms[0]=melting_offset*pow((double)10,penalty_offset)*(temperature-t_pmp);
     502                if (dt){
     503                        P_terms[0]=melting_offset*pow((double)10,penalty_offset)*(temperature-t_pmp)/dt;
    504504                }
    505505                else{
    506                         P_terms[0]=melting_offset*pow((double)10,penalty_offset)*(temperature-t_pmp)/dt;
     506                        P_terms[0]=melting_offset*pow((double)10,penalty_offset)*(temperature-t_pmp);
    507507                }
    508508        }
  • issm/trunk/src/c/objects/Penta.cpp

    r1858 r1901  
    35083508                        D_scalar=gauss_weight*Jdet*(thermalconductivity/(rho_ice*heatcapacity));
    35093509
    3510                         if(sub_analysis_type!=SteadyAnalysisEnum()){
     3510                        if(dt){
    35113511                                D_scalar=D_scalar*dt;
    35123512                        }
     
    35333533                        D_scalar=gauss_weight*Jdet;
    35343534
    3535                         if(sub_analysis_type!=SteadyAnalysisEnum()){
     3535                        if(dt){
    35363536                                D_scalar=D_scalar*dt;
    35373537                        }
     
    35463546
    35473547                        /*Transient: */
    3548                         if(sub_analysis_type!=SteadyAnalysisEnum()){
     3548                        if(dt){
    35493549                                GetNodalFunctions(&L[0], gauss_coord);
    35503550                                D_scalar=gauss_weight*Jdet;
     
    35673567                                /*Build K: */
    35683568                                D_scalar=gauss_weight*Jdet/(pow(u,2)+pow(v,2)+epsvel);
    3569                                 if(sub_analysis_type!=SteadyAnalysisEnum()){
     3569                                if(dt){
    35703570                                        D_scalar=D_scalar*dt;
    35713571                                }
     
    38703870        found=inputs->Recover("velocity",&vxvyvz_list[0][0],3,dofs,numgrids,(void**)nodes);
    38713871        if(!found)throw ErrorException(__FUNCT__," could not find velocity in inputs!");
    3872 
    3873         if(sub_analysis_type==TransientAnalysisEnum()){
    3874                 found=inputs->Recover("dt",&dt);
    3875                 if(!found)throw ErrorException(__FUNCT__," could not find dt in inputs!");
    3876 
     3872        found=inputs->Recover("dt",&dt);
     3873        if(!found)throw ErrorException(__FUNCT__," could not find dt in inputs!");
     3874
     3875        if(dt){
    38773876                found=inputs->Recover("temperature",&temperature_list[0],1,dofs1,numgrids,(void**)nodes);
    38783877                if(!found)throw ErrorException(__FUNCT__," could not find temperature in inputs!");
     
    39203919
    39213920                        /*Build pe_gaussian */
    3922                         if(sub_analysis_type==SteadyAnalysisEnum()){
    3923                                 scalar_def=phi/(rho_ice*heatcapacity)*Jdet*gauss_weight;
    3924                         }
    3925                         else{
    3926                                 scalar_def=dt*phi/(rho_ice*heatcapacity)*Jdet*gauss_weight;
     3921                        scalar_def=phi/(rho_ice*heatcapacity)*Jdet*gauss_weight;
     3922                        if(dt){
     3923                                scalar_def=scalar_def*dt;
    39273924                        }
    39283925
     
    39323929
    39333930                        /* Build transient now */
    3934                         if(sub_analysis_type==TransientAnalysisEnum()){
     3931                        if(dt){
    39353932                                GetParameterValue(&temperature, &temperature_list[0],gauss_coord);
    39363933                                scalar_transient=temperature*Jdet*gauss_weight;
  • issm/trunk/src/c/objects/Tria.cpp

    r1632 r1901  
    33593359                /*Calculate DL on gauss point */
    33603360                D_scalar=gauss_weight*Jdet*rho_water*mixed_layer_capacity*thermal_exchange_velocity/(heatcapacity*rho_ice);
    3361                 if(sub_analysis_type!=SteadyAnalysisEnum()){
     3361                if(dt){
    33623362                        D_scalar=dt*D_scalar;
    33633363                }
     
    35373537        /*recover extra inputs from users, dt and velocity: */
    35383538        found=inputs->Recover("dt",&dt);
    3539         if((!found) && (sub_analysis_type==TransientAnalysisEnum()))throw ErrorException(__FUNCT__," could not find dt in inputs!");
    3540        
     3539        if(!found)throw ErrorException(__FUNCT__," could not find dt in inputs!");
    35413540        found=inputs->Recover("pressure",&pressure_list[0],1,dofs1,numgrids,(void**)nodes);
    35423541        if(!found)throw ErrorException(__FUNCT__," could not find pressure in inputs!");
     
    35653564                /*Calculate scalar parameter*/
    35663565                scalar_ocean=gauss_weight*Jdet*rho_water*mixed_layer_capacity*thermal_exchange_velocity*t_pmp/(heatcapacity*rho_ice);
    3567                 if(sub_analysis_type==TransientAnalysisEnum()){
     3566                if(dt){
    35683567                        scalar_ocean=dt*scalar_ocean;
    35693568                }
     
    36463645        /*recover extra inputs from users, dt and velocity: */
    36473646        found=inputs->Recover("dt",&dt);
    3648         if((!found) && (sub_analysis_type==TransientAnalysisEnum()))throw ErrorException(__FUNCT__," could not find dt in inputs!");
     3647        if(!found)throw ErrorException(__FUNCT__," could not find dt in inputs!");
    36493648       
    36503649        found=inputs->Recover("velocity",&vxvyvz_list[0][0],3,dofs,numgrids,(void**)nodes);
     
    37083707                /*Calculate scalar parameter*/
    37093708                scalar=gauss_weight*Jdet*(basalfriction+geothermalflux_value)/(heatcapacity*rho_ice);
    3710                 if(sub_analysis_type==TransientAnalysisEnum()){
     3709                if(dt){
    37113710                        scalar=dt*scalar;
    37123711                }
  • issm/trunk/src/c/parallel/steadystate.cpp

    r1887 r1901  
    8585
    8686        _printf_("\n   read and create thermal finite element model:\n");
    87         model->AddFormulation(fid,ThermalAnalysisEnum(),SteadyAnalysisEnum());
     87        model->AddFormulation(fid,ThermalAnalysisEnum());
    8888        _printf_("\n   read and create melting finite element model:\n");
    89         model->AddFormulation(fid,MeltingAnalysisEnum(),SteadyAnalysisEnum());
     89        model->AddFormulation(fid,MeltingAnalysisEnum());
    9090
    9191        /*recover parameters: */
  • issm/trunk/src/c/parallel/thermal_core.cpp

    r1881 r1901  
    5656        fem_t->FindParam((void*)&ndt,"ndt");
    5757
    58         if(sub_analysis_type==SteadyAnalysisEnum()){
     58        if(ndt==0){
    5959
    6060                time=(double*)xmalloc(sizeof(double));
     
    6666
    6767                if(debug)_printf_("computing temperatures:\n");
    68                 thermal_core_nonlinear(&t_g[0],&melting_offset,fem_t,inputs,ThermalAnalysisEnum(),SteadyAnalysisEnum());
     68                thermal_core_nonlinear(&t_g[0],&melting_offset,fem_t,inputs,ThermalAnalysisEnum(),NoneAnalysisEnum());
    6969                inputs->Add("temperature",t_g[0],1,numberofnodes);
    7070                inputs->Add("melting_offset",melting_offset);
    7171               
    7272                if(debug)_printf_("computing melting:\n");
    73                 diagnostic_core_linear(&m_g[0],fem_m,inputs,MeltingAnalysisEnum(),SteadyAnalysisEnum());
     73                diagnostic_core_linear(&m_g[0],fem_m,inputs,MeltingAnalysisEnum(),NoneAnalysisEnum());
    7474        }
    7575        else{
     
    9797                        if(debug)_printf_("computing temperatures:\n");
    9898                        inputs->Add("temperature",t_g[i],1,numberofnodes);
    99                         thermal_core_nonlinear(&t_g[i+1],&melting_offset,fem_t,inputs,ThermalAnalysisEnum(),TransientAnalysisEnum());
     99                        thermal_core_nonlinear(&t_g[i+1],&melting_offset,fem_t,inputs,ThermalAnalysisEnum(),NoneAnalysisEnum());
    100100                       
    101101                        if(debug)_printf_("computing melting:\n");
    102102                        inputs->Add("temperature",t_g[i+1],1,numberofnodes);
    103103                        inputs->Add("melting_offset",melting_offset);
    104                         diagnostic_core_linear(&m_g[i+1],fem_m,inputs,MeltingAnalysisEnum(),TransientAnalysisEnum());
     104                        diagnostic_core_linear(&m_g[i+1],fem_m,inputs,MeltingAnalysisEnum(),NoneAnalysisEnum());
    105105                }
    106106        }
    107107       
    108108        /*Plug results into output dataset: */
    109         if(sub_analysis_type==SteadyAnalysisEnum()){
     109        if(ndt==0){
    110110                result=new Result(results->Size()+1,0,1,"t_g",t_g[0]);
    111111                results->AddObject(result);
  • issm/trunk/src/m/classes/public/ismodelselfconsistent.m

    r1867 r1901  
    233233%STEADYSTATE
    234234if md.analysis_type==SteadystateAnalysisEnum,
     235        %NDT
     236        if md.dt~=0,
     237                disp(['For a steadystate computation, ndt must be zero.']);
     238                bool=0;return;
     239        end
    235240        %PRESSURE
    236241        if isnans(md.pressure),
     
    250255                bool=0;return;
    251256        end
    252 
    253 
    254 
    255257end
    256258
     
    276278
    277279%THERMAL TRANSIENT
    278 if md.analysis_type==ThermalAnalysisEnum & md.sub_analysis_type==TransientAnalysisEnum,
     280if md.analysis_type==ThermalAnalysisEnum & md.dt~=0
    279281
    280282        %DT and NDT
  • issm/trunk/src/m/classes/public/process_solve_options.m

    r1862 r1901  
    5151                disp('recover_solve_options info message: no ''sub_analysis_type'' was provided, defaulting to ''inverse''');
    5252                sub_analysis_type='inverse';
    53         elseif strcmpi(analysis_type,'thermal'),
    54                 disp('recover_solve_options info message: no ''sub_analysis_type'' was provided, defaulting to ''steady''');
    55                 sub_analysis_type='steady';
    5653        else
    5754                sub_analysis_type='none';
     
    7976        analysis_type=eval([upper(analysis_type(1)) lower(analysis_type(2:end)) 'AnalysisEnum']);
    8077end
    81 if ~ismemberi(sub_analysis_type,{'none','steady','horiz','adjoint','gradient','inverse','vert','','transient'}),
     78if ~ismemberi(sub_analysis_type,{'none','horiz','adjoint','gradient','inverse','vert',''}),
    8279        error(['process_solve_options error message: sub_analysis_type ' sub_analysis_type ' not supported yet!']);
    8380else
  • issm/trunk/src/m/enum/AnalysisTypeFromEnum.m

    r1865 r1901  
    5757end
    5858
    59 if enum==SteadyAnalysisEnum(),
    60         string='steady';
    61 end
    62 
    6359if enum==TransientAnalysisEnum(),
    6460        string='transient';
  • issm/trunk/src/m/enum/TransientAnalysisEnum.m

    r1714 r1901  
    77%      macro=TransientAnalysisEnum()
    88
    9 macro=232;
     9macro=231;
  • issm/trunk/src/m/solutions/cielo/control.m

    r1850 r1901  
    2828
    2929        displaystring(md.debug,'\n%s',['reading thermal model data']);
    30         md.analysis_type=ThermalAnalysisEnum(); md.sub_analysis_type=SteadyAnalysisEnum(); models.t=CreateFemModel(md);
     30        md.analysis_type=ThermalAnalysisEnum(); md.sub_analysis_type=NoneAnalysisEnum(); models.t=CreateFemModel(md);
    3131
    3232        displaystring(md.debug,'\n%s',['reading melting model data']);
    33         md.analysis_type=MeltingAnalysisEnum(); md.sub_analysis_type=SteadyAnalysisEnum(); models.m=CreateFemModel(md);
     33        md.analysis_type=MeltingAnalysisEnum(); md.sub_analysis_type=NoneAnalysisEnum(); models.m=CreateFemModel(md);
    3434
    3535
  • issm/trunk/src/m/solutions/cielo/steadystate.m

    r1889 r1901  
    2929        %Build all models requested for thermal simulation
    3030        displaystring(md.debug,'%s',['reading thermal model data']);
    31         md.analysis_type=ThermalAnalysisEnum(); md.sub_analysis_type=SteadyAnalysisEnum(); models.t=CreateFemModel(md);
     31        md.analysis_type=ThermalAnalysisEnum(); md.sub_analysis_type=NoneAnalysisEnum(); models.t=CreateFemModel(md);
    3232
    3333        displaystring(md.debug,'%s',['reading melting model data']);
    34         md.analysis_type=MeltingAnalysisEnum(); md.sub_analysis_type=SteadyAnalysisEnum(); models.m=CreateFemModel(md);
     34        md.analysis_type=MeltingAnalysisEnum(); md.sub_analysis_type=NoneAnalysisEnum(); models.m=CreateFemModel(md);
    3535
    3636        % figure out number of dof: just for information purposes.
  • issm/trunk/src/m/solutions/cielo/thermal_core.m

    r1647 r1901  
    99m_m=models.m;
    1010
    11 if m_t.parameters.sub_analysis_type==SteadyAnalysisEnum(),
     11if m_t.parameters.dt==0,
    1212
    1313        results.time=0;
     
    1515
    1616        displaystring(m_t.parameters.debug,'\n%s',['computing temperatures...']);
    17         [results.t_g m_t.loads melting_offset]=thermal_core_nonlinear(m_t,inputs,ThermalAnalysisEnum(),SteadyAnalysisEnum());
     17        [results.t_g m_t.loads melting_offset]=thermal_core_nonlinear(m_t,inputs,ThermalAnalysisEnum(),NoneAnalysisEnum());
    1818
    1919        displaystring(m_t.parameters.debug,'\n%s',['computing melting...']);
    2020        inputs=add(inputs,'melting_offset',melting_offset,'double');
    2121        inputs=add(inputs,'temperature',results.t_g,'doublevec',1,m_t.parameters.numberofnodes);
    22         results.m_g=diagnostic_core_linear(m_m,inputs,MeltingAnalysisEnum(),SteadyAnalysisEnum());
     22        results.m_g=diagnostic_core_linear(m_m,inputs,MeltingAnalysisEnum(),NoneAnalysisEnum());
    2323
    2424else
     
    4343                displaystring(m_t.parameters.debug,'\n%s',['    computing temperatures...']);
    4444                inputs=add(inputs,'temperature',results(n).t_g,'doublevec',1,m_t.parameters.numberofnodes);
    45                 [results(n+1).t_g m_t.loads melting_offset]=thermal_core_nonlinear(m_t,inputs,ThermalAnalysisEnum(),TransientAnalysisEnum());
     45                [results(n+1).t_g m_t.loads melting_offset]=thermal_core_nonlinear(m_t,inputs,ThermalAnalysisEnum(),NoneAnalysisEnum());
    4646
    4747                displaystring(m_t.parameters.debug,'\n%s',['    computing melting...']);
    4848                inputs=add(inputs,'temperature',results(n+1).t_g,'doublevec',1,m_t.parameters.numberofnodes);
    4949                inputs=add(inputs,'melting_offset',melting_offset,'double');
    50                 results(n+1).m_g=diagnostic_core_linear(m_m,inputs,MeltingAnalysisEnum(),TransientAnalysisEnum());
     50                results(n+1).m_g=diagnostic_core_linear(m_m,inputs,MeltingAnalysisEnum(),NoneAnalysisEnum());
    5151
    5252        end
  • issm/trunk/src/m/utils/Nightly/testsgetanalysis.m

    r1863 r1901  
    2323elseif strcmpi(string,'thermalsteady'),
    2424        analysis_type='thermal';
    25         sub_analysis_type='steady';
     25        sub_analysis_type='none';
    2626
    2727elseif strcmpi(string,'thermaltransient'),
    2828        analysis_type='thermal';
    29         sub_analysis_type='transient';
     29        sub_analysis_type='none';
    3030
    3131elseif strcmpi(string,'transient'),
Note: See TracChangeset for help on using the changeset viewer.