Changeset 3892


Ignore:
Timestamp:
05/21/10 16:01:20 (15 years ago)
Author:
seroussi
Message:

thermal steady running

Location:
issm/trunk/src/m/solutions/jpl
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk/src/m/solutions/jpl/diagnostic_core_nonlinear.m

    r3850 r3892  
    5757                       
    5858                %add convergence status into
    59                 m.elements=UpdateInputsFromConstant(m.elements,m.nodes,m.vertices,loads,m.materials,m.parameters,converged,analysis_type,sub_analysis_type);
     59                [m.elements m.loads]=UpdateInputsFromConstant(m.elements,m.nodes,m.vertices,loads,m.materials,m.parameters,converged,ConvergedEnum);
    6060
    6161                %rift convergence criterion
  • issm/trunk/src/m/solutions/jpl/thermal.m

    r3839 r3892  
    88        t1=clock;
    99       
     10        %Build all models requested for thermal simulation
    1011        models.analysis_type=ThermalAnalysisEnum(); %needed for processresults
    1112
    12         %Build all models requested for diagnostic simulation
    1313        displaystring(md.verbose,'%s',['reading thermal model data']);
    1414        md.analysis_type=ThermalAnalysisEnum(); models.t=CreateFemModel(md);
     
    1919        % figure out number of dof: just for information purposes.
    2020        md.dof=modelsize(models);
    21 
    22         %initialize inputs
    23         displaystring(md.verbose,'\n%s',['setup inputs...']);
    24         inputs=inputlist;
    25         inputs=add(inputs,'velocity',models.t.parameters.u_g,'doublevec',3,models.t.parameters.NumberOfNodes);
    26         inputs=add(inputs,'pressure',models.t.parameters.p_g,'doublevec',1,models.t.parameters.NumberOfNodes);
    27         inputs=add(inputs,'dt',models.t.parameters.Dt*models.t.parameters.Yts,'double');
    2821
    2922        %compute solution
  • issm/trunk/src/m/solutions/jpl/thermal_core.m

    r3839 r3892  
    55%      solution=thermal_core(models)
    66
    7 %get FE model
    8 m_t=models.t;
    9 m_m=models.m;
     7%recover parameters common to all solutions
     8verbose=models.t.parameters.Verbose;
    109
    11 if m_t.parameters.Dt==0,
     10if models.t.parameters.Dt==0,
    1211
    1312        results.time=0;
    1413        results.step=1;
    1514
    16         displaystring(m_t.parameters.Verbose,'\n%s',['computing temperatures...']);
    17         [results.t_g m_t.loads melting_offset]=thermal_core_nonlinear(m_t,,ThermalAnalysisEnum(),NoneAnalysisEnum());
     15        displaystring(verbose,'\n%s',['computing temperatures...']);
     16        [t_g models.t.loads melting_offset]=thermal_core_nonlinear(models.t,ThermalAnalysisEnum(),NoneAnalysisEnum());
    1817
    19         displaystring(m_t.parameters.Verbose,'\n%s',['computing melting...']);
    20         inputs=add(inputs,'melting_offset',melting_offset,'double');
    21         inputs=add(inputs,'temperature',results.t_g,'doublevec',1,m_t.parameters.NumberOfNodes);
    22         results.m_g=diagnostic_core_linear(m_m,MeltingAnalysisEnum(),NoneAnalysisEnum());
     18        displaystring(verbose,'\n%s',['computing melting...']);
     19        models=ModelUpdateInputsFromVector(models,t_g,TemperatureEnum,VertexEnum);
     20        [models.m.elements models.m.loads]=UpdateInputsFromConstant(models.m.elements,models.m.nodes,models.m.vertices,models.m.loads,models.m.materials,models.m.parameters,melting_offset,MeltingOffsetEnum);
     21        m_g=diagnostic_core_linear(models.m,MeltingAnalysisEnum(),NoneAnalysisEnum());
     22
     23        %NEED TO BE CLEANED
     24        results.t_g=t_g;
     25        results.m_g=m_g;
    2326
    2427else
    2528
    2629        %initialize temperature and melting
    27         t_g=m_t.parameters.t_g;
    28         m_g=m_m.parameters.m_g;
    29         nsteps=m_t.parameters.Ndt/m_t.parameters.Dt;
     30        t_g=models.t.parameters.t_g;
     31        m_g=models.m.parameters.m_g;
     32        nsteps=models.t.parameters.Ndt/models.t.parameters.Dt;
    3033
    3134        %initialize temperature and melting
     
    3740        for n=1:nsteps,
    3841
    39                 displaystring(m_t.parameters.Verbose,'\n%s%i/%i\n','time step: ',n,nsteps);
     42                displaystring(verbose,'\n%s%i/%i\n','time step: ',n,nsteps);
    4043                results(n+1).step=n+1;
    41                 results(n+1).time=n*m_t.parameters.Dt;
     44                results(n+1).time=n*models.t.parameters.Dt;
    4245
    43                 displaystring(m_t.parameters.Verbose,'\n%s',['    computing temperatures...']);
    44                 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,ThermalAnalysisEnum(),NoneAnalysisEnum());
     46                displaystring(verbose,'\n%s',['    computing temperatures...']);
     47                inputs=add(inputs,'temperature',results(n).t_g,'doublevec',1,models.t.parameters.NumberOfNodes);
     48                [results(n+1).t_g models.t.loads melting_offset]=thermal_core_nonlinear(models.t,ThermalAnalysisEnum(),NoneAnalysisEnum());
    4649
    47                 displaystring(m_t.parameters.Verbose,'\n%s',['    computing melting...']);
    48                 inputs=add(inputs,'temperature',results(n+1).t_g,'doublevec',1,m_t.parameters.NumberOfNodes);
     50                displaystring(verbose,'\n%s',['    computing melting...']);
     51                inputs=add(inputs,'temperature',results(n+1).t_g,'doublevec',1,models.t.parameters.NumberOfNodes);
    4952                inputs=add(inputs,'melting_offset',melting_offset,'double');
    50                 results(n+1).m_g=diagnostic_core_linear(m_m,MeltingAnalysisEnum(),NoneAnalysisEnum());
     53                results(n+1).m_g=diagnostic_core_linear(models.m,MeltingAnalysisEnum(),NoneAnalysisEnum());
    5154
    5255        end
  • issm/trunk/src/m/solutions/jpl/thermal_core_nonlinear.m

    r3839 r3892  
    2020
    2121                %Update inputs in datasets
    22                 [m.elements,m.nodes,m.vertices,loads,m.materials,m.parameters]=UpdateFromInputs(m.elements,m.nodes,m.vertices, loads,m.materials,m.parameters);
     22                if count==1 reset_penalties=0; else reset_penalties=1; end
     23                [m.elements m.loads]=UpdateInputsFromConstant(m.elements,m.nodes,m.vertices,loads,m.materials,m.parameters,reset_penalties,ResetPenaltiesEnum);
    2324
    2425                %system matrices
     
    3132                        [K_gg , p_g, melting_offset]=PenaltySystemMatrices(K_gg_nopenalty,p_g_nopenalty,m.elements,m.nodes,m.vertices,loads,m.materials,m.parameters,analysis_type,sub_analysis_type);
    3233                else
     34                                m.parameters.Verbose
    3335                        displaystring(m.parameters.Verbose,'%s',['   system matrices']);
    3436                        [K_gg , p_g]=SystemMatrices(m.elements,m.nodes,m.vertices,loads,m.materials,m.parameters,analysis_type,sub_analysis_type);
     
    5254
    5355                %Update inputs in datasets
    54                 inputs=add(inputs,'temperature',t_g,'doublevec',m.parameters.NumberOfDofsPerNode,m.parameters.NumberOfNodes);
    5556                displaystring(m.parameters.Verbose,'%s',['   update inputs']);
    56                 [m.elements,m.nodes,m.vertices, loads,m.materials,m.parameters]=UpdateFromInputs(m.elements,m.nodes,m.vertices, loads,m.materials,m.parameters);
     57                [m.elements,m.nodes,m.vertices,loads,m.materials,m.parameters] = UpdateInputsFromVector(m.elements,m.nodes,m.vertices,loads,m.materials,m.parameters,t_g,TemperatureEnum, VertexEnum);
    5758       
    5859                %penalty constraints
Note: See TracChangeset for help on using the changeset viewer.