0001 function melting_g=icemelting_core(m,analysis_type,varargin);
0002
0003
0004
0005
0006
0007
0008 global cluster gridset
0009
0010
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
0021 sparsity=params.sparsity;
0022 solver_type=params.solver_type;
0023
0024
0025 if nargin==3,
0026 inputs=varargin{1};
0027 else
0028 inputs=struct();
0029 end
0030
0031
0032 melting_g=[];
0033
0034 disp(sprintf('%s',' solving'));
0035
0036
0037
0038 kflag=1;pflag=1;
0039
0040
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
0045
0046 [K_ff K_fs]=IceReducematrixfromgtof(K_gg,G_mn);
0047
0048
0049 p_f=IceReducerightside(p_g,G_mn,K_fs,ys);
0050
0051
0052 melting_f=Solver(K_ff,p_f,params.solver_type);
0053
0054
0055 melting_g= Mergesolution_g(melting_f,G_mn,ys);