[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 |
|
---|
[4296] | 11 | numanalyses=7;
|
---|
[4294] | 12 | analyses=[DiagnosticHorizAnalysisEnum;DiagnosticVertAnalysisEnum;DiagnosticStokesAnalysisEnum;DiagnosticHutterAnalysisEnum;SlopeAnalysisEnum;ThermalAnalysisEnum;MeltingAnalysisEnum];
|
---|
| 13 | solution_type=SteadyStateSolutionEnum;
|
---|
[1860] | 14 |
|
---|
[4102] | 15 | displaystring(md.verbose,'%s',['create finite element model']);
|
---|
[4296] | 16 | femmodel=NewFemModel(md,solution_type,analyses,numanalyses);
|
---|
[1860] | 17 |
|
---|
[4102] | 18 | %retrieve parameters
|
---|
| 19 | verbose=femmodel.parameters.Verbose;
|
---|
| 20 | qmu_analysis=femmodel.parameters.QmuAnalysis;
|
---|
| 21 | control_analysis=femmodel.parameters.ControlAnalysis;
|
---|
[1860] | 22 |
|
---|
| 23 | %compute solution
|
---|
[4102] | 24 | if ~qmu_analysis,
|
---|
| 25 | if ~control_analysis,
|
---|
| 26 |
|
---|
| 27 | displaystring(verbose,'%s',['call computational core']);
|
---|
[4120] | 28 | femmodel=steadystate_core(femmodel);
|
---|
[1999] | 29 |
|
---|
| 30 | else,
|
---|
[4102] | 31 |
|
---|
| 32 | displaystring(verbose,'%s',['call computational core']);
|
---|
[4120] | 33 | femmodel=control_core(femmodel);
|
---|
[4102] | 34 |
|
---|
[1999] | 35 | end
|
---|
[4135] | 36 |
|
---|
| 37 | displaystring(verbose,'%s',['write results']);
|
---|
[4184] | 38 | md.results.steadystate=OutputResults(femmodel.elements, femmodel.nodes , femmodel.vertices , femmodel.loads , femmodel.materials, femmodel.parameters, femmodel.results);
|
---|
[4135] | 39 |
|
---|
[1860] | 40 | else
|
---|
[4102] | 41 | %launch dakota driver for diagnostic core solution
|
---|
| 42 | Qmu(femmodel);
|
---|
[1860] | 43 | end
|
---|
| 44 |
|
---|
| 45 | %stop timing
|
---|
| 46 | t2=clock;
|
---|
[2330] | 47 | displaystring(md.verbose,'\n%s\n',['solution converged in ' num2str(etime(t2,t1)) ' seconds']);
|
---|