0001
0002
0003
0004
0005
0006 function m=CreateFEMModel(md,analysis_type )
0007
0008 global ParameterDefaults
0009
0010
0011
0012 disp(sprintf('\n reading data from model %s...',md.name));
0013 [m.ncase, m.dynamic, m.ept, m.geom1, m.geom1b, m.geom2, m.part, m.tpart, m.geom3, ...
0014 m.geom4, m.mpt, m.pvt, m.sets, m.dit] = Imp( md ,analysis_type);
0015
0016
0017
0018 disp(' generating states...');
0019 [m.states] = GenerateStates( m.ncase, m.dynamic);
0020
0021
0022 m=rmfield(m,'ncase');
0023
0024
0025
0026
0027 disp(' generating gpdt...');
0028 [m.gpdt,m.gpdtb] = Gp1( m.geom1, m.geom1b);
0029
0030
0031
0032
0033
0034 disp(' generating updated gpdt...');
0035 [m.cstm, m.bgpdt, m.bgpdtb] = Gp1b( m.geom1, m.geom1b, m.gpdt, m.gpdtb);
0036
0037 m=rmfield(m,'gpdt');
0038 if ~isempty(m.gpdtb), m=rmfield(md,'gpdtb');end;
0039
0040
0041 m=rmfield(m,'geom1');
0042 if ~isempty(m.geom1b), m=rmfield(m,'geom1b'); end;
0043
0044
0045 [m.est,m.lst] = Gp2( m.bgpdt, m.bgpdtb, m.ept, m.geom2, m.mpt, m.geom3);
0046
0047
0048 m=rmfield(m,'geom2');
0049
0050
0051
0052
0053
0054 current_state = {};
0055 [next_state] = NextState( m.states, current_state);
0056 m.current_state = next_state;
0057 clear next_state current_state;
0058
0059 [m.params] = Pvt( m.current_state, m.pvt);
0060
0061
0062
0063
0064 disp(' generating uset data and constraints...');
0065
0066 [m.updated_bgpdt, m.updated_bgpdtb, m.y_g, m.R_mg] = Gp4( m.states, m.geom4, m.bgpdt, m.bgpdtb,analysis_type);
0067
0068
0069
0070 if ~isempty(m.geom4), m=rmfield(m,'geom4');end;
0071
0072
0073 m.bgpdt = m.updated_bgpdt;m=rmfield(m,'updated_bgpdt');
0074 if ~isempty(m.updated_bgpdtb),
0075 m.bgpdtb = m.updated_bgpdtb;
0076 m=rmfield(m,'updated_bgpdtb');
0077 end;
0078
0079
0080 m.uset=Builduset(m.bgpdt,m.bgpdtb,analysis_type);
0081
0082
0083
0084
0085
0086
0087
0088
0089
0090
0091
0092 [m.G_mn] = Normalizeconstraints( m.R_mg, m.uset);
0093
0094
0095 [m.y_s] = Reducevectorg( m.y_g ,m.uset);
0096
0097
0098 if isempty(m.y_s),
0099 flag_y_s= 0;
0100 else
0101 flag_y_s= 1;
0102 end
0103 end