Changeset 727
- Timestamp:
- 06/02/09 15:13:44 (16 years ago)
- Location:
- issm/trunk/src/m/solutions/cielo
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk/src/m/solutions/cielo/prognostic.m
r677 r727 12 12 md.analysis_type='prognostic'; m_p=CreateFemModel(md); 13 13 14 %Take only the first two dofs of m_p.parameters.u_g15 u_g=m_p.parameters.u_g(dofsetgen([1,2],3,m_p.parameters.numberofnodes*3));16 displaystring(md.debug,'\n%s',['depth averaging velocity...']);17 u_g=VelocityDepthAverage(m_p.elements,m_p.nodes,m_p.loads,m_p.materials,u_g);18 19 14 % figure out number of dof: just for information purposes. 20 15 md.dof=m_p.nodesets.fsize; … … 23 18 displaystring(md.debug,'\n%s',['setup inputs...']); 24 19 inputs=inputlist; 25 inputs=add(inputs,'velocity _average',u_g,'doublevec',2,m_p.parameters.numberofnodes);20 inputs=add(inputs,'velocity',m_p.parameters.u_g,'doublevec',3,m_p.parameters.numberofnodes); 26 21 inputs=add(inputs,'thickness',m_p.parameters.h_g,'doublevec',1,m_p.parameters.numberofnodes); 27 22 inputs=add(inputs,'melting',m_p.parameters.m_g,'doublevec',1,m_p.parameters.numberofnodes); … … 29 24 inputs=add(inputs,'dt',m_p.parameters.dt,'double'); 30 25 31 displaystring(md.debug,'\n%s',['c omputing new thickness...']);26 displaystring(md.debug,'\n%s',['call computational core:']); 32 27 h_g=prognostic_core(m_p,inputs,'prognostic',''); 33 34 displaystring(md.debug,'\n%s',['extrude new thickness...']); 35 h_g=ThicknessExtrude(m_p.elements,m_p.nodes,m_p.loads,m_p.materials,h_g); 36 28 37 29 displaystring(md.debug,'\n%s',['load results...']); 38 30 md.results.prognostic.step=1; -
issm/trunk/src/m/solutions/cielo/prognostic_core.m
r603 r727 1 function u_g=prognostic_core(m,inputs,analysis_type,sub_analysis_type)1 function h_g=prognostic_core(m,inputs,analysis_type,sub_analysis_type) 2 2 %PROGNOSTIC_CORE - linear solution sequence 3 3 % 4 4 % Usage: 5 % u_g=prognostic_core(m,inputs,analysis_type,sub_analysis_type)5 % h_g=prognostic_core(m,inputs,analysis_type,sub_analysis_type) 6 6 7 %stiffness and load generation only: 8 m.parameters.kflag=1; m.parameters.pflag=1; 7 displaystring(m.parameters.debug,'\n%s',['depth averaging velocity...']); 8 %Take only the first two dofs of m.parameters.u_g 9 u_g=get(inputs,'velocity',[1 1 0 0]); 10 u_g=VelocityDepthAverage(m.elements,m.nodes,m.loads,m.materials,u_g); 11 inputs=add(inputs,'velocity_average',u_g,'doublevec',2,m.parameters.numberofnodes); 9 12 10 %Update inputs in datasets 11 [m.elements,m.nodes, m.loads,m.materials]=UpdateFromInputs(m.elements,m.nodes, m.loads,m.materials,inputs); 12 13 %system matrices 14 [K_gg, p_g]=SystemMatrices(m.elements,m.nodes,m.loads,m.materials,m.parameters,inputs,analysis_type,sub_analysis_type); 15 [K_gg, p_g,kmax]=PenaltySystemMatrices(K_gg,p_g,m.elements,m.nodes,m.loads,m.materials,m.parameters,inputs,analysis_type,sub_analysis_type); 16 17 %Reduce tangent matrix from g size to f size 18 [K_ff, K_fs] = Reducematrixfromgtof( K_gg, m.Gmn, m.nodesets); 19 20 %Reduce load from g size to f size 21 [p_f] = Reduceloadfromgtof( p_g, m.Gmn, K_fs, m.ys, m.nodesets); 22 23 %Solve 24 [u_f]=Solver(K_ff,p_f,[],m.parameters); 25 26 %Merge back to g set 27 [u_g]= Mergesolutionfromftog( u_f, m.Gmn, m.ys, m.nodesets ); 13 displaystring(m.parameters.debug,'\n%s',['call computational core:']); 14 h_g=diagnostic_core_linear(m,inputs,analysis_type,sub_analysis_type); 15 16 displaystring(m.parameters.debug,'\n%s',['extrude computed thickness on all layers:']); 17 h_g=ThicknessExtrude(m.elements,m.nodes,m.loads,m.materials,h_g); 28 18 29 19 end %end function -
issm/trunk/src/m/solutions/cielo/thermal.m
r719 r727 36 36 37 37 displaystring(md.debug,'\n%s',['load results...']); 38 md.results.thermal.step=1; 39 md.results.thermal.time=0; 40 md.results.thermal.temperature=t_g; 41 md.results.thermal.melting=m_g*md.yts; %from m/s to m/a 38 solution=struct('step',[],'time',[],'temperature',[],'melting',[]); 39 solution.step=1; 40 solution.time=0; 41 solution.temperature=t_g; 42 solution.melting=m_g*md.yts; %from m/s to m/a; 43 md.results.thermal=solution; 42 44 43 45 else … … 70 72 71 73 %Wrap up 72 solution=struct(' time',{},'temperature',{},'melting',{});74 solution=struct('step',{},'time',{},'temperature',{},'melting',{}); 73 75 for n=1:nsteps+1, 74 76 solution(n).temperature=soln(n).t_g;
Note:
See TracChangeset
for help on using the changeset viewer.