function md=diagnostic(md); %DIAGNOSTIC - compute the velocity field of a model % % Usage: % md=diagnostic(md) % %timing t1=clock; analysis_types=[DiagnosticHorizAnalysisEnum,DiagnosticVertAnalysisEnum,DiagnosticStokesAnalysisEnum,DiagnosticHutterAnalysisEnum,SlopeAnalysisEnum]; solution_type=DiagnosticAnalysisEnum; displaystring(md.verbose,'%s',['create finite element model']); femmodel=NewFemModel(md,solution_type,analysis_types,5); %retrieve parameters verbose=femmodel.parameters.Verbose; qmu_analysis=femmodel.parameters.QmuAnalysis; control_analysis=femmodel.parameters.ControlAnalysis; %compute solution if ~qmu_analysis, if ~control_analysis, displaystring(verbose,'%s',['call computational core']); femmodel=diagnostic_core(femmodel); else, displaystring(verbose,'%s',['call computational core']); femmodel=control_core(femmodel); end displaystring(verbose,'%s',['write results']); OutputResults(femmodel.elements, femmodel.loads, femmodel.nodes, femmodel.vertices, femmodel.materials, femmodel.parameters); else %launch dakota driver for diagnostic core solution Qmu(femmodel); end %stop timing t2=clock; displaystring(md.verbose,'\n%s\n',['solution converged in ' num2str(etime(t2,t1)) ' seconds']);