[1860] | 1 | function md=steadystate(md);
|
---|
| 2 | %STEADYSTATE - compute the velocity and temperature field of a model in steady state.
|
---|
| 3 | %
|
---|
| 4 | % Usage:
|
---|
| 5 | % md=steadystate(md)
|
---|
| 6 | %
|
---|
| 7 |
|
---|
| 8 | %timing
|
---|
| 9 | t1=clock;
|
---|
| 10 |
|
---|
[4102] | 11 | analysis_types=[DiagnosticHorizAnalysisEnum,DiagnosticVertAnalysisEnum,DiagnosticStokesAnalysisEnum,DiagnosticHutterAnalysisEnum,SlopeAnalysisEnum,ThermalAnalysisEnum,MeltingAnalysisEnum];
|
---|
| 12 | solution_type=SteadyStateAnalysisEnum;
|
---|
[1860] | 13 |
|
---|
[4102] | 14 | displaystring(md.verbose,'%s',['create finite element model']);
|
---|
[4119] | 15 | femmodel=NewFemModel(md,solution_type,analysis_types,7);
|
---|
[1860] | 16 |
|
---|
[4102] | 17 | %retrieve parameters
|
---|
| 18 | verbose=femmodel.parameters.Verbose;
|
---|
| 19 | qmu_analysis=femmodel.parameters.QmuAnalysis;
|
---|
| 20 | control_analysis=femmodel.parameters.ControlAnalysis;
|
---|
[1860] | 21 |
|
---|
| 22 | %compute solution
|
---|
[4102] | 23 | if ~qmu_analysis,
|
---|
| 24 | if ~control_analysis,
|
---|
| 25 |
|
---|
| 26 | displaystring(verbose,'%s',['call computational core']);
|
---|
[4120] | 27 | femmodel=steadystate_core(femmodel);
|
---|
[1999] | 28 |
|
---|
| 29 | else,
|
---|
[4102] | 30 |
|
---|
| 31 | displaystring(verbose,'%s',['call computational core']);
|
---|
[4120] | 32 | femmodel=control_core(femmodel);
|
---|
[4102] | 33 |
|
---|
[1999] | 34 | end
|
---|
[4135] | 35 |
|
---|
| 36 | displaystring(verbose,'%s',['write results']);
|
---|
[4182] | 37 | md.results.steadystate=OutputResults(femmodel.elements, femmodel.loads, femmodel.nodes, femmodel.vertices, femmodel.materials, femmodel.parameters);
|
---|
[4135] | 38 |
|
---|
[1860] | 39 | else
|
---|
[4102] | 40 | %launch dakota driver for diagnostic core solution
|
---|
| 41 | Qmu(femmodel);
|
---|
[1860] | 42 | end
|
---|
| 43 |
|
---|
| 44 | %stop timing
|
---|
| 45 | t2=clock;
|
---|
[2330] | 46 | displaystring(md.verbose,'\n%s\n',['solution converged in ' num2str(etime(t2,t1)) ' seconds']);
|
---|