Ignore:
Timestamp:
05/27/09 15:15:26 (16 years ago)
Author:
Mathieu Morlighem
Message:

initial temperature and melting not needed for thermalsteady

File:
1 edited

Legend:

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

    r597 r613  
    5656        int     numberofnodes;
    5757        int     analysis_type;
     58        int     sub_analysis_type;
    5859        int     count;
    5960
    6061        parameters->FindParam((void*)&analysis_type,"analysis_type");
     62        parameters->FindParam((void*)&sub_analysis_type,"sub_analysis_type");
    6163        count=parameters->Size();
    6264               
     
    8486                                }
    8587                        }
    86 
    8788                        if(vy){
    8889                                for(i=0;i<numberofnodes;i++){
     
    9697                        }
    9798
    98 
    9999                        /*Now, create new parameters: */
    100100                        count++;
     
    113113                        parameters->DeleteObject((Object*)param);
    114114                }
    115 
    116         }
    117 
     115        }
    118116
    119117        if(analysis_type==ControlAnalysisEnum()){
     
    154152                param=(Param*)parameters->FindParamObject("control_parameter");
    155153                parameters->DeleteObject((Object*)param);
    156 
    157154        }
    158155
    159156        if(analysis_type==ThermalAnalysisEnum()){
    160157
    161                 parameters->FindParam((void*)&temperature,"temperature");
    162                 parameters->FindParam((void*)&melting,"melting");
    163158                parameters->FindParam((void*)&pressure,"pressure");
    164159
    165160                /*Now, from temperature and melting, build t_g and m_g, correctly partitioned: */
    166                 t_g=(double*)xcalloc(numberofnodes,sizeof(double));
    167                 m_g=(double*)xcalloc(numberofnodes,sizeof(double));
    168161                p_g=(double*)xcalloc(numberofnodes,sizeof(double));
    169162
    170163                for(i=0;i<numberofnodes;i++){
    171                         t_g[(int)(partition[i])]=temperature[i];
    172                         m_g[(int)(partition[i])]=melting[i];
    173164                        p_g[(int)(partition[i])]= pressure[i]; 
    174165                }
    175166
    176167                /*Now, create new parameter: */
    177                 count++;
    178                 param= new Param(count,"t_g",DOUBLEVEC);
    179                 param->SetDoubleVec(t_g,numberofnodes);
    180                 parameters->AddObject(param);
    181 
    182                 count++;
    183                 param= new Param(count,"m_g",DOUBLEVEC);
    184                 param->SetDoubleVec(m_g,numberofnodes);
    185                 parameters->AddObject(param);
    186 
    187168                count++;
    188169                param= new Param(count,"p_g",DOUBLEVEC);
     
    191172
    192173                /*erase old parameter: */
    193                 param=(Param*)parameters->FindParamObject("temperature");
    194                 parameters->DeleteObject((Object*)param);
    195 
    196                 param=(Param*)parameters->FindParamObject("melting");
    197                 parameters->DeleteObject((Object*)param);
    198 
    199174                param=(Param*)parameters->FindParamObject("pressure");
    200175                parameters->DeleteObject((Object*)param);
     176
     177                if (sub_analysis_type==TransientAnalysisEnum()){
     178
     179                        parameters->FindParam((void*)&temperature,"temperature");
     180                        parameters->FindParam((void*)&melting,"melting");
     181
     182                        /*Now, from temperature and melting, build t_g and m_g, correctly partitioned: */
     183                        t_g=(double*)xcalloc(numberofnodes,sizeof(double));
     184                        m_g=(double*)xcalloc(numberofnodes,sizeof(double));
     185
     186                        for(i=0;i<numberofnodes;i++){
     187                                t_g[(int)(partition[i])]=temperature[i];
     188                                m_g[(int)(partition[i])]=melting[i];
     189                        }
     190
     191                        /*Now, create new parameter: */
     192                        count++;
     193                        param= new Param(count,"t_g",DOUBLEVEC);
     194                        param->SetDoubleVec(t_g,numberofnodes);
     195                        parameters->AddObject(param);
     196
     197                        count++;
     198                        param= new Param(count,"m_g",DOUBLEVEC);
     199                        param->SetDoubleVec(m_g,numberofnodes);
     200                        parameters->AddObject(param);
     201
     202                        /*erase old parameter: */
     203                        param=(Param*)parameters->FindParamObject("temperature");
     204                        parameters->DeleteObject((Object*)param);
     205
     206                        param=(Param*)parameters->FindParamObject("melting");
     207                        parameters->DeleteObject((Object*)param);
     208                }
    201209        }
    202210
     
    260268        xfree((void**)&h_g);
    261269        xfree((void**)&m_g);
    262 
    263270}
Note: See TracChangeset for help on using the changeset viewer.