[963] | 1 | function md=postqmu(md)
|
---|
[25836] | 2 | %POSTQMU - Deal with Dakota output results in files
|
---|
| 3 | %
|
---|
| 4 | % Usage:
|
---|
| 5 | % md = postqmu(md)
|
---|
[963] | 6 |
|
---|
| 7 | % check to see if dakota returned errors in the err file
|
---|
[9625] | 8 | qmuerrfile=[md.miscellaneous.name '.qmu.err'];
|
---|
[963] | 9 |
|
---|
| 10 | if exist(qmuerrfile,'file')
|
---|
| 11 | fide=fopen(qmuerrfile,'r');
|
---|
| 12 | fline=fgetl(fide);
|
---|
| 13 | if ischar(fline)
|
---|
| 14 | while ischar(fline)
|
---|
| 15 | disp(sprintf('%s',fline));
|
---|
| 16 | fline=fgetl(fide);
|
---|
| 17 | end
|
---|
[25836] | 18 | warning(['Dakota returned error in ''' qmuerrfile ''' file. QMU directory retained.'])
|
---|
[24313] | 19 | end
|
---|
| 20 | status=fclose(fide);
|
---|
[963] | 21 | end
|
---|
| 22 |
|
---|
| 23 | %parse inputs and results from dakota
|
---|
[9625] | 24 | qmuinfile=[md.miscellaneous.name '.qmu.in'];
|
---|
| 25 | qmuoutfile=[md.miscellaneous.name '.qmu.out'];
|
---|
[963] | 26 | [method,dresp_out,scm,pcm,srcm,prcm]=dakota_out_parse(qmuoutfile);
|
---|
[2051] | 27 | dakotaresults.dresp_out=dresp_out;
|
---|
| 28 | dakotaresults.scm =scm;
|
---|
| 29 | dakotaresults.pcm =pcm;
|
---|
| 30 | dakotaresults.srcm =srcm;
|
---|
| 31 | dakotaresults.prcm =prcm;
|
---|
[963] | 32 |
|
---|
| 33 | if exist('dakota_tabular.dat','file')
|
---|
| 34 | [method,dresp_dat ]=dakota_out_parse('dakota_tabular.dat');
|
---|
[2051] | 35 | dakotaresults.dresp_dat=dresp_dat;
|
---|
[963] | 36 | end
|
---|
| 37 |
|
---|
[25836] | 38 | if md.qmu.output & strcmpi(md.qmu.statistics.method(1).name,'None'),
|
---|
[24686] | 39 | if strcmpi(md.qmu.method.method,'nond_sampling'),
|
---|
| 40 | dakotaresults.modelresults={};
|
---|
[25836] | 41 | md2=md;
|
---|
| 42 | md2.qmu.isdakota=0;
|
---|
[24686] | 43 | for i=1:md2.qmu.method.params.samples,
|
---|
[25836] | 44 | disp(['Reading qmu file ' md2.miscellaneous.name '.outbin.' num2str(i)]);
|
---|
[24686] | 45 | md2=loadresultsfromdisk(md2,[md2.miscellaneous.name '.outbin.' num2str(i)]);
|
---|
| 46 | dakotaresults.modelresults{end+1}=md2.results;
|
---|
| 47 | end
|
---|
| 48 | end
|
---|
| 49 | end
|
---|
[25836] | 50 | if ~strcmpi(md.qmu.statistics.method(1).name,'None'),
|
---|
| 51 | md.qmu.isdakota=0;
|
---|
| 52 | md=loadresultsfromdisk(md,[md.miscellaneous.name,'.stats']);
|
---|
| 53 | md.qmu.isdakota=1;
|
---|
| 54 | end
|
---|
[24686] | 55 |
|
---|
[2051] | 56 | %put dakotaresults in their right location.
|
---|
[3038] | 57 | md.results.dakota=dakotaresults;
|
---|
[2051] | 58 |
|
---|
[963] | 59 | % move all the individual function evalutations into zip files
|
---|
[9650] | 60 | if ~md.qmu.isdakota,
|
---|
[963] | 61 | system('zip -mq params.in.zip params.in.[1-9]*');
|
---|
| 62 | system('zip -mq results.out.zip results.out.[1-9]*');
|
---|
| 63 | system('zip -mq matlab.out.zip matlab*.out.[1-9]*');
|
---|
| 64 | end
|
---|