source: issm/trunk/src/m/solutions/jpl/NewFemModel.m@ 4119

Last change on this file since 4119 was 4119, checked in by seroussi, 15 years ago

argument nummodels missing in NewFemModel

File size: 2.7 KB
Line 
1function femmodel=NewFemModel(md,solution_type,analysis_types,nummodels);
2%NEWFEMMODEL - create a finite element model out of the matlab base \@model md.
3% For each analysis_type contained in analysis_types, create a set of nodes, constraints
4% and loads. All analyses rely on the same elements, vertices and parameters. See
5% FemModel.cpp in src/c/objects for more information on the FemModel implementation in c++
6%
7% Usage:
8% femmodel=NewFemModel(md,solution_type,analysis_types,nummodels)
9%
10
11
12 femmodel.solution_type=solution_type;
13 femmodel.analysis_counter=nummodels; %point to last analysis_type carried out
14
15 %Dynamically allocate whatever is a list of length nummodels: */
16 femmodel.analysis_type_list=analysis_types;
17
18 displaystring(md.verbose,'\n reading data from model %s...',md.name);
19 [femmodel.elements,femmodel.nodes,femmodel.vertices,femmodel.constraints,femmodel.loads,femmodel.materials,femmodel.parameters]=ModelProcessor(md,solution_type,femmodel.analysis_type_list);
20
21 %now, go through all analyses types and post-process datasets
22 for i=1:length(analysis_types),
23
24 analysis_type=femmodel.analysis_type_list(i);
25 displaystring(md.verbose,'%s%s',' dealing with analysis type: ',EnumAsString(analysis_type));
26
27 displaystring(md.verbose,'%s',' generating degrees of freedofemmodel...');
28 if ~isfield(femmodel,'part') [femmodel.vertices,femmodel.part,femmodel.tpart]=VerticesDof(vertices, femmodel.parameters); %do not create partition vector twice! we only have one set of vertices!
29
30 [femmodel.nodes]=NodesDof(femmodel.nodes,femmodel.parameters);
31
32 displaystring(md.verbose,'%s',' generating single point constraints...');
33 [femmodel.nodes,femmodel.m_yg(i)]=SpcNodes(femmodel.nodes,femmodel.constraints,analysis_type);
34
35 displaystring(md.verbose,'%s',' generating rigid body constraints...');
36 [femmodel.m_Rmg(i),femmodel.nodes]=MpcNodes(femmodel.nodes,femmodel.constraints,analysis_types);
37
38 displaystring(md.verbose,'%s',' generating node sets...');
39 femmodel.m_nodesets(i)=BuildNodeSets(femmodel.nodes,analysis_type);
40
41 displaystring(md.verbose,'%s',' reducing single point constraints vector...');
42 femmodel.m_ys(i)=Reducevectorgtos(femmodel.m_yg(i).vector,femmodel.m_nodesets(i));
43
44 displaystring(md.verbose,'%s',' normalizing rigid body constraints matrix...');
45 femmodel.m_Gmn(i)= NormalizeConstraints(femmodel.m_Rmg(i),femmodel.m_nodesets(i));
46
47 displaystring(md.verbose,'%s',' configuring element and loads...');
48 [femmodel.elements,femmodel.loads,femmodel.nodes,femmodel.parameters] = ConfigureObjects( femmodel.elements, femmodel.loads, femmodel.nodes, femmodel.vertices,femmodel.materials,femmodel.parameters);
49 end
50 end
Note: See TracBrowser for help on using the repository browser.