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
RevLine 
[4119]1function femmodel=NewFemModel(md,solution_type,analysis_types,nummodels);
[4063]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:
[4119]8% femmodel=NewFemModel(md,solution_type,analysis_types,nummodels)
[4063]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);
[4119]25 displaystring(md.verbose,'%s%s',' dealing with analysis type: ',EnumAsString(analysis_type));
[4063]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...');
[4114]33 [femmodel.nodes,femmodel.m_yg(i)]=SpcNodes(femmodel.nodes,femmodel.constraints,analysis_type);
[4063]34
35 displaystring(md.verbose,'%s',' generating rigid body constraints...');
[4114]36 [femmodel.m_Rmg(i),femmodel.nodes]=MpcNodes(femmodel.nodes,femmodel.constraints,analysis_types);
[4063]37
38 displaystring(md.verbose,'%s',' generating node sets...');
[4114]39 femmodel.m_nodesets(i)=BuildNodeSets(femmodel.nodes,analysis_type);
[4063]40
41 displaystring(md.verbose,'%s',' reducing single point constraints vector...');
[4114]42 femmodel.m_ys(i)=Reducevectorgtos(femmodel.m_yg(i).vector,femmodel.m_nodesets(i));
[4063]43
44 displaystring(md.verbose,'%s',' normalizing rigid body constraints matrix...');
[4114]45 femmodel.m_Gmn(i)= NormalizeConstraints(femmodel.m_Rmg(i),femmodel.m_nodesets(i));
[4063]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.