icemelting_core

PURPOSE ^

ICEMELTING_CORE - core solution of melting computation

SYNOPSIS ^

function melting_g=icemelting_core(m,analysis_type,varargin);

DESCRIPTION ^

ICEMELTING_CORE - core solution of melting computation

   Usage:
      melting_g=icemelting_core(m,analysis_type,varargin)

CROSS-REFERENCE INFORMATION ^

This function calls: This function is called by:

SOURCE CODE ^

0001 function melting_g=icemelting_core(m,analysis_type,varargin);
0002 %ICEMELTING_CORE - core solution of melting computation
0003 %
0004 %   Usage:
0005 %      melting_g=icemelting_core(m,analysis_type,varargin)
0006 
0007 %global variables
0008 global cluster gridset
0009 
0010 %recover fem model fields
0011 elements=m.elements;
0012 grids=m.grids;
0013 materials=m.materials;
0014 loads=m.loads;
0015 ys=m.ys;
0016 gridset=m.gridset;
0017 G_mn=m.Gmn;
0018 params=m.params;
0019 
0020 %recover parameters
0021 sparsity=params.sparsity;
0022 solver_type=params.solver_type;
0023 
0024 %recover extra inputs and initialize solution
0025 if nargin==3,
0026     inputs=varargin{1};
0027 else    
0028     inputs=struct();
0029 end
0030 
0031 %initialize solution vector
0032 melting_g=[];
0033 
0034 disp(sprintf('%s','   solving'));
0035 
0036 % Generate system matrices (stiffness and load)
0037 %stiffness is computed at each step, not the loads.
0038 kflag=1;pflag=1;
0039 
0040 %generate stiffness and loads
0041 [K_gg,p_g]=SystemMatrices(elements,grids,loads,materials,kflag, pflag, params.sparsity,inputs,'melting');
0042 [K_gg,p_g]=PenaltySystemMatrices(grids,loads,materials,kflag, pflag, params.sparsity,inputs,'melting',K_gg,p_g);
0043 
0044 % Reduce stiffness matrix from g set to f set (effectively rooting out the single point constraints),
0045 % and compute modifications to loads from single point constraints.
0046 [K_ff K_fs]=IceReducematrixfromgtof(K_gg,G_mn); 
0047 
0048 % Reduce load from g set to f set
0049 p_f=IceReducerightside(p_g,G_mn,K_fs,ys);
0050 
0051 % Solve
0052 melting_f=Solver(K_ff,p_f,params.solver_type);
0053 
0054 % Add single point constraints back, ie increase f-set by s-set into the global g-set.
0055 melting_g= Mergesolution_g(melting_f,G_mn,ys);

Generated on Sun 29-Mar-2009 20:22:55 by m2html © 2003