Changeset 9571
- Timestamp:
- 09/01/11 19:58:19 (14 years ago)
- Location:
- issm/trunk
- Files:
-
- 25 added
- 3 deleted
- 56 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk/externalpackages/dakota/install.sh
r5034 r9571 29 29 patch src/src/NonDLocalReliability.C ./NonDLocalReliability.C.patch 30 30 patch src/src/NonDUnilevelRBDO.C ./NonDUnilevelRBDO.C.patch # source not even used? 31 patch -R src/packages/Pecos/src/LHSDriver.cpp ./LHSDriver.cpp.patch31 #patch -R src/packages/Pecos/src/LHSDriver.cpp ./LHSDriver.cpp.patch 32 32 33 33 #Configure dakota -
issm/trunk/externalpackages/export_fig/export_fig.m
r7182 r9571 379 379 print2eps(tmp_nam, fig, p2eArgs{:}); 380 380 % Generate a pdf 381 options.quality 381 382 eps2pdf(tmp_nam, pdf_nam, 1, options.append, options.colourspace==2, options.quality); 382 383 catch -
issm/trunk/externalpackages/gdal/install.sh
r6285 r9571 25 25 cd src 26 26 ./configure --prefix="$ISSM_TIER/externalpackages/gdal/install" --without-python --with-netcdf=no --with-jasper=no --without-ld-shared --with-unix-stdio-64=no --with-expat-lib=/usr/lib64/libexpat.so 27 #./configure --prefix="$ISSM_TIER/externalpackages/gdal/install" --with-python --with-netcdf=no --with-jasper=no --without-ld-shared --with-unix-stdio-64=no --with-expat-lib=/usr/lib64/libexpat.so 27 28 28 29 #Patch GDALmake.opt -
issm/trunk/externalpackages/matlab/install.sh
r8348 r9571 1 1 #!/bin/bash 2 3 #Matlab version: used by Petsc to detect some weird behaviour starting at version 7.6/R2008a (all blas and lapack prototypes changed! damn them!) 4 MATLAB_VERSION=R2010b 2 5 3 6 #Erase symlink … … 5 8 6 9 #Select or create a new simlink 7 ln -s /usr/local/ pkgs/matlab-7.6/ install10 ln -s /usr/local/matlab711/ install 8 11 #ln -s /usr/local/pkgs/matlab-7.8/ install 9 12 #ln -s /Applications/MATLAB_R2009a.app/ install -
issm/trunk/externalpackages/metis/install.sh
r8570 r9571 6 6 #version of metis 7 7 version=`echo *.tar.gz | sed 's/\.tar\.gz//g' | sed 's/metis-//g'` 8 echo $version9 8 10 9 #Some cleanup -
issm/trunk/m4/issm_options.m4
r9283 r9571 174 174 HAVE_DAKOTA=yes 175 175 DAKOTAINCL=-I$DAKOTA_ROOT/include 176 DAKOTALIB="-L$DAKOTA_ROOT/lib -ldakota -lteuchos -lpecos -lfftw3 -llhs -levidence -lsurfpack -lconmin -lddace -lfsudace -ljega -lcport -lopt -lpsuade -lnewmat -lncsuopt -lgsl -l quadrature -lcoliny -lcolin -lpebbl -lutilib -l3po -lnappspack -lappspack -lconveyor -lshared -lcdd -lamplsolver"176 DAKOTALIB="-L$DAKOTA_ROOT/lib -ldakota -lteuchos -lpecos -lfftw3 -llhs -levidence -lsurfpack -lconmin -lddace -lfsudace -ljega -lcport -lopt -lpsuade -lnewmat -lncsuopt -lgsl -lgslcblas -lquadrature -lcoliny -lcolin -lpebbl -lutilib -l3po -lnappspack -lappspack -lconveyor -lshared -lcdd -lamplsolver" 177 177 178 178 AC_DEFINE([_HAVE_DAKOTA_],[1],[with Dakota in ISSM src]) -
issm/trunk/src/c/EnumDefinitions/EnumDefinitions.h
r9563 r9571 342 342 NumberOfVerticesEnum, 343 343 OutputFilePointerEnum, 344 QmuAnalysisEnum,344 DakotaAnalysisEnum, 345 345 QmuErrNameEnum, 346 346 QmuInNameEnum, … … 474 474 NumberOfEdgesEnum, 475 475 ResultsOnVerticesEnum, 476 /*Automatic Differentiation {{{1*/ 477 AdAnalysisEnum, 478 AdForwardEnum, 479 AdReverseEnum, 480 /*}}}*/ 476 481 MaximumNumberOfEnums 477 482 }; -
issm/trunk/src/c/Makefile.am
r9343 r9571 681 681 ./modules/PropagateFlagsFromConnectivityx/PropagateFlagsFromConnectivityx.cpp\ 682 682 ./modules/PropagateFlagsFromConnectivityx/PropagateFlagsFromConnectivityx.h\ 683 ./modules/ Qmux/Qmux.h\684 ./modules/ Qmux/Qmux.cpp\685 ./modules/ Qmux/SpawnCore.cpp\686 ./modules/ Qmux/SpawnCoreSerial.cpp\683 ./modules/Dakotax/Dakotax.h\ 684 ./modules/Dakotax/Dakotax.cpp\ 685 ./modules/Dakotax/SpawnCore.cpp\ 686 ./modules/Dakotax/SpawnCoreSerial.cpp\ 687 687 ./modules/InputToResultx/InputToResultx.cpp\ 688 688 ./modules/InputToResultx/InputToResultx.h\ … … 1360 1360 ./modules/Mergesolutionfromftogx/Mergesolutionfromftogx.cpp\ 1361 1361 ./modules/Mergesolutionfromftogx/Mergesolutionfromftogx.h\ 1362 ./modules/ Qmux/Qmux.h\1363 ./modules/ Qmux/Qmux.cpp\1364 ./modules/ Qmux/DakotaMPI_Bcast.cpp\1365 ./modules/ Qmux/DakotaFree.cpp\1366 ./modules/ Qmux/SpawnCore.cpp\1367 ./modules/ Qmux/SpawnCoreParallel.cpp\1362 ./modules/Dakotax/Dakotax.h\ 1363 ./modules/Dakotax/Dakotax.cpp\ 1364 ./modules/Dakotax/DakotaMPI_Bcast.cpp\ 1365 ./modules/Dakotax/DakotaFree.cpp\ 1366 ./modules/Dakotax/SpawnCore.cpp\ 1367 ./modules/Dakotax/SpawnCoreParallel.cpp\ 1368 1368 ./modules/InputToResultx/InputToResultx.cpp\ 1369 1369 ./modules/InputToResultx/InputToResultx.h\ … … 1405 1405 ./solutions/steadystateconvergence.cpp\ 1406 1406 ./solutions/ResetBoundaryConditions.cpp\ 1407 ./solutions/ SolutionConfiguration.cpp\1407 ./solutions/AnalysisConfiguration.cpp\ 1408 1408 ./solutions/CorePointerFromSolutionEnum.cpp\ 1409 1409 ./solutions/AdjointCorePointerFromSolutionEnum.cpp\ -
issm/trunk/src/c/modules/EnumToStringx/EnumToStringx.cpp
r9563 r9571 293 293 case NumberOfVerticesEnum : return "NumberOfVertices"; 294 294 case OutputFilePointerEnum : return "OutputFilePointer"; 295 case QmuAnalysisEnum : return "QmuAnalysis";295 case DakotaAnalysisEnum : return "DakotaAnalysis"; 296 296 case QmuErrNameEnum : return "QmuErrName"; 297 297 case QmuInNameEnum : return "QmuInName"; … … 417 417 case NumberOfEdgesEnum : return "NumberOfEdges"; 418 418 case ResultsOnVerticesEnum : return "ResultsOnVertices"; 419 case AdAnalysisEnum : return "AdAnalysis"; 420 case AdForwardEnum : return "AdForward"; 421 case AdReverseEnum : return "AdReverse"; 419 422 default : return "unknown"; 420 423 -
issm/trunk/src/c/modules/ModelProcessorx/DiagnosticHoriz/UpdateElementsDiagnosticHoriz.cpp
r9451 r9571 21 21 bool isstokes; 22 22 bool control_analysis; 23 bool qmu_analysis;23 bool dakota_analysis; 24 24 25 25 /*Fetch constants needed: */ … … 29 29 iomodel->Constant(&numberofelements,NumberOfElementsEnum); 30 30 iomodel->Constant(&control_analysis,ControlAnalysisEnum); 31 iomodel->Constant(& qmu_analysis,QmuAnalysisEnum);31 iomodel->Constant(&dakota_analysis,DakotaAnalysisEnum); 32 32 33 33 /*Now, is the flag macayaealpattyn on? otherwise, do nothing: */ … … 82 82 elements->InputDuplicate(VxEnum,VxPicardEnum); 83 83 elements->InputDuplicate(VxEnum,VxObsEnum); 84 if( qmu_analysis)elements->InputDuplicate(VxEnum,QmuVxEnum);84 if(dakota_analysis)elements->InputDuplicate(VxEnum,QmuVxEnum); 85 85 86 86 elements->InputDuplicate(VyEnum,VyPicardEnum); 87 87 elements->InputDuplicate(VyEnum,VyObsEnum); 88 if( qmu_analysis)elements->InputDuplicate(VyEnum,QmuVyEnum);88 if(dakota_analysis)elements->InputDuplicate(VyEnum,QmuVyEnum); 89 89 90 90 if(dim==3){ 91 91 elements->InputDuplicate(VzEnum,VzPicardEnum); 92 92 elements->InputDuplicate(VzEnum,VzObsEnum); 93 if( qmu_analysis)elements->InputDuplicate(VzEnum,QmuVzEnum);93 if(dakota_analysis)elements->InputDuplicate(VzEnum,QmuVzEnum); 94 94 } 95 95 -
issm/trunk/src/c/modules/ModelProcessorx/Qmu/CreateParametersQmu.cpp
r9493 r9571 52 52 int m,n; 53 53 int count; 54 bool qmu_analysis=false;54 bool dakota_analysis=false; 55 55 char* name=NULL; 56 56 int numberofresponses; … … 63 63 64 64 /*recover parameters: */ 65 iomodel->Constant(& qmu_analysis,QmuAnalysisEnum);66 parameters->AddObject(new BoolParam( QmuAnalysisEnum,qmu_analysis));67 68 if( qmu_analysis){65 iomodel->Constant(&dakota_analysis,DakotaAnalysisEnum); 66 parameters->AddObject(new BoolParam(DakotaAnalysisEnum,dakota_analysis)); 67 68 if(dakota_analysis){ 69 69 70 70 iomodel->Constant(&name,NameEnum); … … 216 216 xfree((void**)&qmuoutname); 217 217 /*}}}*/ 218 } //if( qmu_analysis)218 } //if(dakota_analysis) 219 219 220 220 /*Free data*/ -
issm/trunk/src/c/modules/ModelProcessorx/Thermal/UpdateElementsThermal.cpp
r9451 r9571 18 18 int dim; 19 19 int numberofelements; 20 bool qmu_analysis;20 bool dakota_analysis; 21 21 22 22 /*Fetch parameters: */ 23 23 iomodel->Constant(&dim,DimEnum); 24 24 iomodel->Constant(&numberofelements,NumberOfElementsEnum); 25 iomodel->Constant(& qmu_analysis,QmuAnalysisEnum);25 iomodel->Constant(&dakota_analysis,DakotaAnalysisEnum); 26 26 27 27 /*Now, is the model 3d? otherwise, do nothing: */ … … 61 61 iomodel->FetchDataToInput(elements,VzEnum); 62 62 63 if( qmu_analysis)elements->InputDuplicate(TemperatureEnum,QmuTemperatureEnum);63 if(dakota_analysis)elements->InputDuplicate(TemperatureEnum,QmuTemperatureEnum); 64 64 65 65 /*Free data: */ -
issm/trunk/src/c/modules/OutputResultsx/OutputResultsx.cpp
r9405 r9571 29 29 int solutiontype; 30 30 Results *results = NULL; 31 bool dakota_analysis = false; 32 33 #ifdef _SERIAL_ 34 const char **fnames = NULL; 35 mwSize onebyone[2] = {0,0}; 36 mwSize ndim = 2; 37 int nfields=0; 38 #endif 31 39 32 40 /*recover results dataset: */ 33 41 results=*presults; 42 43 /*retrieve parameters: */ 44 parameters->FindParam(&dakota_analysis,DakotaAnalysisEnum); 45 46 if(dakota_analysis){ 47 //no need to output anything, Dakota analysis has different outputs 48 #ifdef _SERIAL_ 49 *pdataref=mxCreateStructArray( ndim,onebyone,nfields,fnames); 50 #else 51 return; 52 #endif 53 } 34 54 35 55 /*We have results inside our elements, loads, etc ... Get them out of there, into the results dataset: */ -
issm/trunk/src/c/modules/StringToEnumx/StringToEnumx.cpp
r9563 r9571 291 291 else if (strcmp(name,"NumberOfVertices")==0) return NumberOfVerticesEnum; 292 292 else if (strcmp(name,"OutputFilePointer")==0) return OutputFilePointerEnum; 293 else if (strcmp(name," QmuAnalysis")==0) return QmuAnalysisEnum;293 else if (strcmp(name,"DakotaAnalysis")==0) return DakotaAnalysisEnum; 294 294 else if (strcmp(name,"QmuErrName")==0) return QmuErrNameEnum; 295 295 else if (strcmp(name,"QmuInName")==0) return QmuInNameEnum; … … 415 415 else if (strcmp(name,"NumberOfEdges")==0) return NumberOfEdgesEnum; 416 416 else if (strcmp(name,"ResultsOnVertices")==0) return ResultsOnVerticesEnum; 417 else if (strcmp(name,"AdAnalysis")==0) return AdAnalysisEnum; 418 else if (strcmp(name,"AdForward")==0) return AdForwardEnum; 419 else if (strcmp(name,"AdReverse")==0) return AdReverseEnum; 417 420 else _error_("Enum %s not found",name); 418 421 -
issm/trunk/src/c/modules/modules.h
r9341 r9571 88 88 #include "./PointCloudFindNeighborsx/PointCloudFindNeighborsx.h" 89 89 #include "./PropagateFlagsFromConnectivityx/PropagateFlagsFromConnectivityx.h" 90 #include "./ Qmux/Qmux.h"90 #include "./Dakotax/Dakotax.h" 91 91 #include "./Reduceloadx/Reduceloadx.h" 92 92 #include "./Reducevectorgtosx/Reducevectorgtosx.h" -
issm/trunk/src/c/objects/DakotaPlugin.cpp
r9338 r9571 26 26 #include "../include/include.h" 27 27 #include "../objects/objects.h" 28 #include "../modules/ Qmux/Qmux.h"28 #include "../modules/Dakotax/Dakotax.h" 29 29 30 30 /*Standard includes: */ -
issm/trunk/src/c/objects/Elements/Penta.cpp
r9563 r9571 7498 7498 double yts; 7499 7499 int prognostic_DG; 7500 bool qmu_analysis;7500 bool dakota_analysis; 7501 7501 bool isstokes; 7502 7502 double beta,heatcapacity,referencetemperature,meltingpoint,latentheat; … … 7505 7505 iomodel->Constant(&yts,YtsEnum); 7506 7506 iomodel->Constant(&prognostic_DG,PrognosticDGEnum); 7507 iomodel->Constant(& qmu_analysis,QmuAnalysisEnum);7507 iomodel->Constant(&dakota_analysis,DakotaAnalysisEnum); 7508 7508 iomodel->Constant(&isstokes,IsstokesEnum); 7509 7509 iomodel->Constant(&beta,BetaEnum); … … 7557 7557 this->inputs->AddInput(new PentaVertexInput(VxEnum,nodeinputs)); 7558 7558 this->inputs->AddInput(new PentaVertexInput(VxPicardEnum,nodeinputs)); 7559 if( qmu_analysis) this->inputs->AddInput(new PentaVertexInput(QmuVxEnum,nodeinputs));7559 if(dakota_analysis) this->inputs->AddInput(new PentaVertexInput(QmuVxEnum,nodeinputs)); 7560 7560 } 7561 7561 if(!iomodel->Data(VyEnum)){ … … 7564 7564 this->inputs->AddInput(new PentaVertexInput(VyEnum,nodeinputs)); 7565 7565 this->inputs->AddInput(new PentaVertexInput(VyPicardEnum,nodeinputs)); 7566 if( qmu_analysis) this->inputs->AddInput(new PentaVertexInput(QmuVyEnum,nodeinputs));7566 if(dakota_analysis) this->inputs->AddInput(new PentaVertexInput(QmuVyEnum,nodeinputs)); 7567 7567 } 7568 7568 if(!iomodel->Data(VzEnum)){ … … 7571 7571 this->inputs->AddInput(new PentaVertexInput(VzEnum,nodeinputs)); 7572 7572 this->inputs->AddInput(new PentaVertexInput(VzPicardEnum,nodeinputs)); 7573 if( qmu_analysis) this->inputs->AddInput(new PentaVertexInput(QmuVzEnum,nodeinputs));7573 if(dakota_analysis) this->inputs->AddInput(new PentaVertexInput(QmuVzEnum,nodeinputs)); 7574 7574 } 7575 7575 if(!iomodel->Data(PressureEnum)){ 7576 7576 for(i=0;i<6;i++)nodeinputs[i]=0; 7577 if( qmu_analysis){7577 if(dakota_analysis){ 7578 7578 this->inputs->AddInput(new PentaVertexInput(PressureEnum,nodeinputs)); 7579 7579 this->inputs->AddInput(new PentaVertexInput(QmuPressureEnum,nodeinputs)); -
issm/trunk/src/c/objects/Elements/Tria.cpp
r9563 r9571 5210 5210 double yts; 5211 5211 int prognostic_DG; 5212 bool qmu_analysis;5212 bool dakota_analysis; 5213 5213 5214 5214 /*Checks if debuging*/ … … 5220 5220 iomodel->Constant(&yts,YtsEnum); 5221 5221 iomodel->Constant(&prognostic_DG,PrognosticDGEnum); 5222 iomodel->Constant(& qmu_analysis,QmuAnalysisEnum);5222 iomodel->Constant(&dakota_analysis,DakotaAnalysisEnum); 5223 5223 5224 5224 /*Recover element type*/ … … 5269 5269 this->inputs->AddInput(new TriaVertexInput(VxEnum,nodeinputs)); 5270 5270 this->inputs->AddInput(new TriaVertexInput(VxPicardEnum,nodeinputs)); 5271 if( qmu_analysis) this->inputs->AddInput(new TriaVertexInput(QmuVxEnum,nodeinputs));5271 if(dakota_analysis) this->inputs->AddInput(new TriaVertexInput(QmuVxEnum,nodeinputs)); 5272 5272 } 5273 5273 if(!iomodel->Data(VyEnum)){ … … 5276 5276 this->inputs->AddInput(new TriaVertexInput(VyEnum,nodeinputs)); 5277 5277 this->inputs->AddInput(new TriaVertexInput(VyPicardEnum,nodeinputs)); 5278 if( qmu_analysis) this->inputs->AddInput(new TriaVertexInput(QmuVyEnum,nodeinputs));5278 if(dakota_analysis) this->inputs->AddInput(new TriaVertexInput(QmuVyEnum,nodeinputs)); 5279 5279 } 5280 5280 if(!iomodel->Data(VzEnum)){ … … 5283 5283 this->inputs->AddInput(new TriaVertexInput(VzEnum,nodeinputs)); 5284 5284 this->inputs->AddInput(new TriaVertexInput(VzPicardEnum,nodeinputs)); 5285 if( qmu_analysis) this->inputs->AddInput(new TriaVertexInput(QmuVzEnum,nodeinputs));5285 if(dakota_analysis) this->inputs->AddInput(new TriaVertexInput(QmuVzEnum,nodeinputs)); 5286 5286 } 5287 5287 if(!iomodel->Data(PressureEnum)){ 5288 5288 for(i=0;i<3;i++)nodeinputs[i]=0; 5289 if( qmu_analysis){5289 if(dakota_analysis){ 5290 5290 this->inputs->AddInput(new TriaVertexInput(PressureEnum,nodeinputs)); 5291 5291 this->inputs->AddInput(new TriaVertexInput(QmuPressureEnum,nodeinputs)); -
issm/trunk/src/c/solutions/CorePointerFromSolutionEnum.cpp
r9401 r9571 18 18 #include "../solvers/solvers.h" 19 19 20 void CorePointerFromSolutionEnum(void (**psolutioncore)(FemModel*), int solutiontype){20 void CorePointerFromSolutionEnum(void (**psolutioncore)(FemModel*),Parameters* parameters,int solutiontype){ 21 21 22 /*intermediary: */ 23 bool control_analysis=false; 24 bool dakota_analysis=false; 25 22 26 /*output: */ 23 27 void (*solutioncore)(FemModel*)=NULL; 28 29 /*retrieve some parameters: */ 30 parameters->FindParam(&control_analysis,ControlAnalysisEnum); 31 parameters->FindParam(&dakota_analysis,DakotaAnalysisEnum); 24 32 25 33 switch(solutiontype){ … … 63 71 } 64 72 73 /*if control is being run on top of a solution, change core: */ 74 if(control_analysis){ 75 #ifdef _HAVE_TAO_ 76 //solutioncore=&controltao_core; 77 solutioncore=&control_core; 78 #else 79 solutioncore=&control_core; 80 #endif 81 } 82 83 if(dakota_analysis){ 84 #ifndef _HAVE_DAKOTA_ 85 _error_(" Dakota not present, cannot do qmu!"); 86 #endif 87 } 88 65 89 /*Assign output pointer:*/ 66 90 _assert_(psolutioncore); -
issm/trunk/src/c/solutions/control_core.cpp
r9563 r9571 24 24 int solution_type; 25 25 bool isstokes; 26 bool qmu_analysis=false;26 bool dakota_analysis=false; 27 27 28 28 int* control_type = NULL; … … 57 57 femmodel->parameters->FindParam(&solution_type,SolutionTypeEnum); 58 58 femmodel->parameters->FindParam(&isstokes,IsstokesEnum); 59 femmodel->parameters->FindParam(& qmu_analysis,QmuAnalysisEnum);59 femmodel->parameters->FindParam(&dakota_analysis,DakotaAnalysisEnum); 60 60 61 61 /*out of solution_type, figure out solution core and adjoint function pointer*/ 62 CorePointerFromSolutionEnum(&solutioncore, solution_type);62 CorePointerFromSolutionEnum(&solutioncore,femmodel->parameters,solution_type); 63 63 AdjointCorePointerFromSolutionEnum(&adjointcore,solution_type); 64 64 … … 118 118 119 119 /*some results not computed by steadystate_core or diagnostic_core: */ 120 if(! qmu_analysis){ //do not save this if we are running the control core from a qmu run!120 if(!dakota_analysis){ //do not save this if we are running the control core from a qmu run! 121 121 for(i=0;i<num_controls;i++) InputToResultx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,control_type[i]); 122 122 femmodel->results->AddObject(new DoubleVecExternalResult(femmodel->results->Size()+1,JEnum,J,nsteps,1,0)); -
issm/trunk/src/c/solutions/controlrestart.cpp
r9356 r9571 12 12 int* control_type = NULL; 13 13 int nsteps; 14 bool qmu_analysis=true;14 bool dakota_analysis=true; 15 15 16 16 /*retrieve output file name: */ … … 18 18 femmodel->parameters->FindParam(&control_type,NULL,ControlTypeEnum); 19 19 femmodel->parameters->FindParam(&nsteps,NstepsEnum); 20 femmodel->parameters->FindParam(& qmu_analysis,QmuAnalysisEnum);20 femmodel->parameters->FindParam(&dakota_analysis,DakotaAnalysisEnum); 21 21 22 22 /*only save if we are not running qmu analysis. We certainly don't want to save control results each time we 23 23 * run on control core!: */ 24 if(! qmu_analysis){24 if(!dakota_analysis){ 25 25 /*we essentially want J and the parameter: */ 26 26 for(int i=0;i<num_controls;i++) InputToResultx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,control_type[i]); -
issm/trunk/src/c/solutions/diagnostic_core.cpp
r9406 r9571 15 15 16 16 /*parameters: */ 17 bool qmu_analysis = false;17 bool dakota_analysis = false; 18 18 int dim = -1; 19 19 bool ishutter = false; … … 30 30 femmodel->parameters->FindParam(&ismacayealpattyn,IsmacayealpattynEnum); 31 31 femmodel->parameters->FindParam(&isstokes,IsstokesEnum); 32 femmodel->parameters->FindParam(& qmu_analysis,QmuAnalysisEnum);32 femmodel->parameters->FindParam(&dakota_analysis,DakotaAnalysisEnum); 33 33 femmodel->parameters->FindParam(&control_analysis,ControlAnalysisEnum); 34 34 femmodel->parameters->FindParam(&solution_type,SolutionTypeEnum); 35 35 36 36 /*for qmu analysis, reinitialize velocity so that fake sensitivities do not show up as a result of a different restart of the convergence at each trial.*/ 37 if( qmu_analysis){37 if(dakota_analysis){ 38 38 InputDuplicatex(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,QmuVxEnum,VxEnum); 39 39 InputDuplicatex(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,QmuVyEnum,VyEnum); -
issm/trunk/src/c/solutions/issm.cpp
r9561 r9571 14 14 FILE *output_fid = NULL; 15 15 FILE *petscoptionsfid = NULL; 16 bool qmu_analysis = false;17 bool control_analysis = false;18 16 bool waitonlock = false; 17 bool dakota_analysis = false; 19 18 20 19 /*FemModel: */ … … 67 66 MPI_Barrier(MPI_COMM_WORLD); start_init=MPI_Wtime(); 68 67 69 /*out of solution_type, figure out solution core function pointer, 70 *and types of analyses needed: */ 71 SolutionConfiguration(&analyses,&numanalyses,&solutioncore,solution_type); 72 68 /*out of solution_type, figure out types of analyses needed in the femmodel: */ 69 AnalysisConfiguration(&analyses,&numanalyses,solution_type); 70 73 71 /*Create femmodel, using input file: */ 74 72 femmodel=new FemModel(binfilename,outbinfilename,solution_type,analyses,numanalyses); 73 74 /*get type of solution we are going to run: */ 75 CorePointerFromSolutionEnum(&solutioncore,femmodel->parameters,solution_type); 75 76 76 77 /*Open output file once for all*/ … … 84 85 85 86 /*get parameters: */ 86 femmodel->parameters->FindParam(&qmu_analysis,QmuAnalysisEnum);87 femmodel->parameters->FindParam(&control_analysis,ControlAnalysisEnum);88 87 femmodel->parameters->FindParam(&waitonlock,WaitonlockEnum); 88 femmodel->parameters->FindParam(&dakota_analysis,DakotaAnalysisEnum); 89 89 90 90 MPI_Barrier(MPI_COMM_WORLD); finish_init=MPI_Wtime(); 91 91 92 /*if control is being run on top of a solution, change core: */ 93 if(control_analysis){ 94 #ifdef _HAVE_TAO_ 95 //solutioncore=&controltao_core; 96 solutioncore=&control_core; 97 #else 98 solutioncore=&control_core; 99 #endif 100 } 92 /*are we running the solution sequence, or a qmu wrapper around it? : */ 101 93 102 /*are we running the solution sequence, or a qmu wrapper around it? : */ 103 if(!qmu_analysis){ 104 105 _printf_(true,"call computational core:\n"); 106 MPI_Barrier(MPI_COMM_WORLD); start_core=MPI_Wtime( ); 107 solutioncore(femmodel); 108 MPI_Barrier(MPI_COMM_WORLD); finish_core=MPI_Wtime( ); 94 _printf_(true,"call computational core:\n"); 95 MPI_Barrier(MPI_COMM_WORLD); start_core=MPI_Wtime( ); 96 if(dakota_analysis) Dakotax(femmodel); 97 else solutioncore(femmodel); 98 MPI_Barrier(MPI_COMM_WORLD); finish_core=MPI_Wtime( ); 109 99 110 _printf_(true,"write results to disk:\n"); 111 OutputResultsx(femmodel->elements, femmodel->nodes, femmodel->vertices, femmodel->loads, femmodel->materials, femmodel->parameters,&femmodel->results); 112 } 113 else{ 114 /*run qmu analysis: */ 115 _printf_(true,"calling qmu analysis on diagnostic core:\n"); 116 117 #ifdef _HAVE_DAKOTA_ 118 MPI_Barrier(MPI_COMM_WORLD); start_core=MPI_Wtime( ); 119 Qmux(femmodel,femmodel->parameters); 120 MPI_Barrier(MPI_COMM_WORLD); finish_core=MPI_Wtime( ); 121 #else 122 _error_(" Dakota not present, cannot do qmu!"); 123 #endif 124 } 100 _printf_(true,"write results to disk:\n"); 101 OutputResultsx(femmodel->elements, femmodel->nodes, femmodel->vertices, femmodel->loads, femmodel->materials, femmodel->parameters,&femmodel->results); 125 102 126 103 /*Close output and petsc options file and write lock file if requested*/ -
issm/trunk/src/c/solutions/solutions.h
r9563 r9571 48 48 49 49 //solution configuration 50 void SolutionConfiguration(int** panalyses,int* pnumanalyses, void (**psolutioncore)(FemModel*),int solutiontype);51 void CorePointerFromSolutionEnum(void (**psolutioncore)(FemModel*), int solutiontype);50 void AnalysisConfiguration(int** panalyses,int* pnumanalyses, int solutiontype); 51 void CorePointerFromSolutionEnum(void (**psolutioncore)(FemModel*),Parameters* parameters,int solutiontype); 52 52 void AdjointCorePointerFromSolutionEnum(void (**padjointcore)(FemModel*),int solutiontype); 53 53 -
issm/trunk/src/c/solutions/thermal_core.cpp
r9159 r9571 24 24 bool control_analysis; 25 25 int solution_type; 26 bool qmu_analysis = false;26 bool dakota_analysis = false; 27 27 28 28 //first recover parameters common to all solutions … … 31 31 femmodel->parameters->FindParam(&control_analysis,ControlAnalysisEnum); 32 32 femmodel->parameters->FindParam(&solution_type,SolutionTypeEnum); 33 femmodel->parameters->FindParam(& qmu_analysis,QmuAnalysisEnum);33 femmodel->parameters->FindParam(&dakota_analysis,DakotaAnalysisEnum); 34 34 35 35 /*Compute number of time steps: */ … … 40 40 else nsteps=(int)(ndt/dt); 41 41 42 if( qmu_analysis){42 if(dakota_analysis){ 43 43 femmodel->SetCurrentConfiguration(ThermalAnalysisEnum); 44 44 ResetConstraintsx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters); -
issm/trunk/src/m/classes/clusters/castor.m
r9565 r9571 94 94 %compress the files into one zip. 95 95 compressstring=['tar -zcf ' md.runtimename '.tar.gz ' md.name '.bin ' md.name '.queue ' md.name '.petsc ']; 96 if md. qmu_analysis,96 if md.dakota_analysis, 97 97 compressstring=[compressstring md.name '.qmu.in']; 98 98 end … … 124 124 %What packages are we picking up from remote cluster 125 125 packages={[md.name '.outlog'],[md.name '.errlog']}; 126 if md. qmu_analysis,126 if md.dakota_analysis, 127 127 packages{end+1}=[md.name '.qmu.err']; 128 128 packages{end+1}=[md.name '.qmu.out']; -
issm/trunk/src/m/classes/clusters/cosmos.m
r9565 r9571 93 93 %compress the files into one zip. 94 94 compressstring=['tar -zcf ' md.runtimename '.tar.gz ' md.name '.bin ' md.name '.queue ' md.name '.petsc ']; 95 if md. qmu_analysis,95 if md.dakota_analysis, 96 96 compressstring=[compressstring md.name '.qmu.in']; 97 97 end … … 123 123 %What packages are we picking up from remote cluster 124 124 packages={[md.name '.outlog'],[md.name '.errlog']}; 125 if md. qmu_analysis,125 if md.dakota_analysis, 126 126 packages{end+1}=[md.name '.qmu.err']; 127 127 packages{end+1}=[md.name '.qmu.out']; -
issm/trunk/src/m/classes/clusters/gemini.m
r9565 r9571 94 94 %compress the files into one zip. 95 95 compressstring=['tar -zcf ' md.runtimename '.tar.gz ' md.name '.bin ' md.name '.queue ' md.name '.petsc ']; 96 if md. qmu_analysis,96 if md.dakota_analysis, 97 97 compressstring=[compressstring md.name '.qmu.in']; 98 98 end … … 124 124 %What packages are we picking up from remote cluster 125 125 packages={[md.name '.outlog'],[md.name '.errlog']}; 126 if md. qmu_analysis,126 if md.dakota_analysis, 127 127 packages{end+1}=[md.name '.qmu.err']; 128 128 packages{end+1}=[md.name '.qmu.out']; -
issm/trunk/src/m/classes/clusters/generic.m
r9565 r9571 123 123 %compress the files into one zip. 124 124 compressstring=['tar -zcf ' md.runtimename '.tar.gz ' md.name '.bin ' md.name '.queue ' md.name '.petsc ']; 125 if md. qmu_analysis,125 if md.dakota_analysis, 126 126 compressstring=[compressstring md.name '.qmu.in']; 127 127 end … … 154 154 %What packages are we picking up from remote cluster 155 155 packages={[md.name '.outlog'],[md.name '.errlog']}; 156 if md. qmu_analysis,156 if md.dakota_analysis, 157 157 packages{end+1}=[md.name '.qmu.err']; 158 158 packages{end+1}=[md.name '.qmu.out']; -
issm/trunk/src/m/classes/clusters/pfe.m
r9565 r9571 182 182 %compress the files into one zip. 183 183 compressstring=['tar -zcf ' md.runtimename '.tar.gz ' md.name '.bin ' md.name '.queue ' md.name '.petsc ']; 184 if md. qmu_analysis,184 if md.dakota_analysis, 185 185 compressstring=[compressstring md.name '.qmu.in ']; 186 186 end … … 234 234 packages={}; 235 235 end 236 if md. qmu_analysis,236 if md.dakota_analysis, 237 237 packages{end+1}=[md.name '.qmu.err']; 238 238 packages{end+1}=[md.name '.qmu.out']; -
issm/trunk/src/m/classes/clusters/pollux.m
r9565 r9571 94 94 %compress the files into one zip. 95 95 compressstring=['tar -zcf ' md.runtimename '.tar.gz ' md.name '.bin ' md.name '.queue ' md.name '.petsc ']; 96 if md. qmu_analysis,96 if md.dakota_analysis, 97 97 compressstring=[compressstring md.name '.qmu.in']; 98 98 end … … 124 124 %What packages are we picking up from remote cluster 125 125 packages={[md.name '.outlog'],[md.name '.errlog']}; 126 if md. qmu_analysis,126 if md.dakota_analysis, 127 127 packages{end+1}=[md.name '.qmu.err']; 128 128 packages{end+1}=[md.name '.qmu.out']; -
issm/trunk/src/m/classes/model/model.m
r9566 r9571 247 247 dakotaout = modelfield('default','','marshall',false); 248 248 dakotadat = modelfield('default','','marshall',false); 249 qmu_analysis = modelfield('default',0,'marshall',true,'format','Boolean');249 dakota_analysis = modelfield('default',0,'marshall',true,'format','Boolean'); 250 250 part = modelfield('default',NaN,'marshall',true,'format','DoubleMat','mattype',2); 251 251 npart = modelfield('default',0,'marshall',true,'format','Integer'); … … 266 266 fm_solution = modelfield('default','','marshall',false); 267 267 fm_quality = modelfield('default',0,'marshall',false); 268 269 %ad: automatic differentiation 270 ad_analysis = modelfield('default',false,'marshall',true,'format','Boolean'); 271 ad_forward = modelfield('default',true,'marshall',true,'format','Boolean'); 272 ad_reverse = modelfield('default',false,'marshall',true,'format','Boolean'); 268 273 269 274 %grounding line migration: … … 433 438 if isfield(structmd,'gridonboundary'), md.nodeonboundary=structmd.gridonboundary; end 434 439 if isfield(structmd,'petscoptions'), md.solver=structmd.petscoptions; end 440 if isfield(structmd,'dakota_analysis'), md.dakota_analysis=structmd.dakota_analysis; end 435 441 436 442 %Field changes -
issm/trunk/src/m/model/display/displayqmu.m
r1249 r9571 11 11 disp(sprintf(' ''%s''','qmu using Dakota')); 12 12 13 if ~md. qmu_analysis,14 disp(sprintf(' %s','no scheduled qmu. activate by doing md. qmu_analysis=1'));13 if ~md.dakota_analysis, 14 disp(sprintf(' %s','no scheduled qmu. activate by doing md.dakota_analysis=1')); 15 15 else 16 16 -
issm/trunk/src/m/model/ismodelselfconsistent.m
r9563 r9571 249 249 %}}} 250 250 %QMU {{{1 251 if md. qmu_analysis,251 if md.dakota_analysis, 252 252 if md.qmu_params.evaluation_concurrency~=1, 253 253 message(['model not consistent: concurrency should be set to 1 when running dakota in library mode']); … … 347 347 %Now check all analyses called for a given solution 348 348 %ANALYSESCHECKS {{{1 349 [analyses,numanalyses ,solutioncore]=SolutionConfiguration(md.solution_type);349 [analyses,numanalyses]=AnalysisConfiguration(md.solution_type); 350 350 for i=1:numanalyses, 351 351 checkforanalysis(md,analyses(i)); -
issm/trunk/src/m/model/isresultconsistent.m
r9451 r9571 21 21 22 22 %do not check results if qmu analysis 23 if md. qmu_analysis,23 if md.dakota_analysis, 24 24 return 25 25 end -
issm/trunk/src/m/model/loadresultsfromcluster.m
r9451 r9571 36 36 37 37 %erase the log and output files 38 if md. qmu_analysis,38 if md.dakota_analysis, 39 39 delete([['qmu' num2str(feature('GetPid')) '/'] md.name '.outlog']); 40 40 delete([['qmu' num2str(feature('GetPid')) '/'] md.name '.errlog']); … … 49 49 hostname=oshostname(); 50 50 if strcmpi(hostname,cluster.name), 51 if md. qmu_analysis,51 if md.dakota_analysis, 52 52 delete([['qmu' num2str(feature('GetPid')) '/'] md.name '.bin']); 53 53 delete([['qmu' num2str(feature('GetPid')) '/'] md.name '.queue']); -
issm/trunk/src/m/model/loadresultsfromdisk.m
r9432 r9571 11 11 end 12 12 13 if ~md. qmu_analysis,13 if ~md.dakota_analysis, 14 14 15 15 %initialize md.results if not a structure yet -
issm/trunk/src/m/model/solve.m
r9564 r9571 40 40 %if running qmu analysis, some preprocessing of dakota files using 41 41 %models fields needs to be carried out. 42 if md. qmu_analysis,42 if md.dakota_analysis, 43 43 md=preqmu(md,options); 44 44 end … … 74 74 75 75 %post processes qmu results if necessary 76 if md. qmu_analysis,76 if md.dakota_analysis, 77 77 md=postqmu(md); 78 78 cd .. -
issm/trunk/src/m/model/solveparallel.m
r9423 r9571 39 39 40 40 %post processes qmu results if necessary 41 if md. qmu_analysis,41 if md.dakota_analysis, 42 42 if ~strncmpi(options.keep,'y',1) 43 43 system(['rm -rf qmu' num2str(feature('GetPid'))]); -
issm/trunk/src/m/qmu/examples/lrel_mmf.m
r6309 r9571 68 68 md.qmu_params.fd_gradient_step_size=0.01; 69 69 70 md. qmu_analysis=1;70 md.dakota_analysis=1; 71 71 md.npart=10; 72 72 if isempty(md.adjacency) -
issm/trunk/src/m/qmu/postqmu.m
r6860 r9571 56 56 57 57 % move all the individual function evalutations into zip files 58 if ~md. qmu_analysis,58 if ~md.dakota_analysis, 59 59 system('zip -mq params.in.zip params.in.[1-9]*'); 60 60 system('zip -mq results.out.zip results.out.[1-9]*'); -
issm/trunk/src/m/solutions/CorePointerFromSolutionEnum.m
r9401 r9571 1 function [solutioncore]=CorePointerFromSolutionEnum( solutiontype),1 function [solutioncore]=CorePointerFromSolutionEnum(parameters,solutiontype), 2 2 %COREPOINTERFROMSOLUTIONENUM - returns solution_core function 3 3 % 4 4 % Usage: 5 % [solutioncore]=CorePointerFromSolutionEnum(solutiontype); 5 % [solutioncore]=CorePointerFromSolutionEnum(parameters,solutiontype); 6 7 control_analysis=parameters.ControlAnalysis; 8 dakota_analysis=parameters.DakotaAnalysis; 6 9 7 10 switch solutiontype, … … 22 25 23 26 end 27 28 %if control being run on top of solution, change core 29 if(control_analysis)solutioncore='control_core';end -
issm/trunk/src/m/solutions/diagnostic_core.m
r8926 r9571 15 15 ismacayealpattyn=femmodel.parameters.Ismacayealpattyn; 16 16 isstokes=femmodel.parameters.Isstokes; 17 qmu_analysis=femmodel.parameters.QmuAnalysis;17 dakota_analysis=femmodel.parameters.QmuAnalysis; 18 18 control_analysis=femmodel.parameters.ControlAnalysis; 19 19 solution_type=femmodel.parameters.SolutionType; 20 20 21 21 %for qmu analysis, be sure the velocity input we are starting from is the one in the parameters: 22 if qmu_analysis,22 if dakota_analysis, 23 23 femmodel.elements=InputDuplicate(femmodel.elements,femmodel.nodes,femmodel.vertices,femmodel.loads,femmodel.materials,femmodel.parameters,QmuVxEnum,VxEnum); 24 24 femmodel.elements=InputDuplicate(femmodel.elements,femmodel.nodes,femmodel.vertices,femmodel.loads,femmodel.materials,femmodel.parameters,QmuVyEnum,VyEnum); -
issm/trunk/src/m/solutions/issm.m
r9422 r9571 9 9 disp('launching solution sequence'); 10 10 11 %out of solution_type, figure out solution core function pointer, andtypes of analyses needed:12 [analyses,numanalyses ,solutioncore]=SolutionConfiguration(solution_type);11 %out of solution_type, figure types of analyses needed: 12 [analyses,numanalyses]=AnalysisConfiguration(solution_type); 13 13 14 14 %create finite element model 15 15 femmodel=NewFemModel(md,solution_type,analyses,numanalyses); 16 17 %out of solution_type, figure out solution core function pointer 18 [solutioncore]=CorePointerFromSolutionEnum(femmodel.parameters,solution_type); 16 19 17 20 %process petsc options: … … 19 22 20 23 %retrieve parameters 21 qmu_analysis=femmodel.parameters.QmuAnalysis; 22 control_analysis=femmodel.parameters.ControlAnalysis; 23 24 %if control being run on top of solution, change core 25 if(control_analysis)solutioncore='control_core';end 24 dakota_analysis=femmodel.parameters.DakotaAnalysis; 26 25 27 26 %compute solution 28 if ~qmu_analysis, 29 30 issmprintf(VerboseSolution,'%s',['call computational core']); 27 28 issmprintf(VerboseSolution,'%s',['call computational core']); 29 if dakota_analysis, 30 Dakota(femmodel); 31 else 31 32 eval(['femmodel=' solutioncore '(femmodel);']); 33 end 32 34 33 issmprintf(VerboseSolution,'%s',['write results']) 34 md.results.(EnumToString(solution_type))=OutputResults(femmodel.elements, femmodel.nodes , femmodel.vertices , femmodel.loads , femmodel.materials, femmodel.parameters, femmodel.results); 35 else 36 %launch dakota driver for diagnostic core solution 37 Qmu(femmodel,femmodel.parameters); 38 end 35 issmprintf(VerboseSolution,'%s',['write results']) 36 md.results.(EnumToString(solution_type))=OutputResults(femmodel.elements, femmodel.nodes , femmodel.vertices , femmodel.loads , femmodel.materials, femmodel.parameters, femmodel.results); 39 37 40 38 %stop timing -
issm/trunk/src/mex/Dakota/Dakota.cpp
r9570 r9571 31 31 femmodel=FEMMODEL; 32 32 33 /*Get parameters out of femmodel, to feed to Dakotax: */34 FetchMatlabData((DataSet**)¶meters,mxGetField(FEMMODEL,0,"parameters"));35 36 33 /*!Generate internal degree of freedom numbers: */ 37 Dakotax(femmodel ,parameters);34 Dakotax(femmodel); 38 35 39 36 /*end module: */ -
issm/trunk/test/NightlyRun/test235.m
r9463 r9571 78 78 %imperative! 79 79 md.eps_rel=10^-10; %tighten for qmu analysese 80 md. qmu_analysis=1;80 md.dakota_analysis=1; 81 81 82 82 %solve -
issm/trunk/test/NightlyRun/test236.m
r9463 r9571 78 78 %imperative! 79 79 md.eps_rel=10^-10; %tighten for qmu analysese 80 md. qmu_analysis=1;80 md.dakota_analysis=1; 81 81 82 82 %solve -
issm/trunk/test/NightlyRun/test423.m
r8304 r9571 9 9 md=partitioner(md,'package','linear','npart',md.npart); 10 10 md.part=md.part-1; 11 md. qmu_analysis=1;11 md.dakota_analysis=1; 12 12 13 13 %Dakota options -
issm/trunk/test/NightlyRun/test424.m
r8589 r9571 9 9 md=partitioner(md,'package','linear','npart',md.npart); 10 10 md.part=md.part-1; 11 md. qmu_analysis=1;11 md.dakota_analysis=1; 12 12 13 13 -
issm/trunk/test/NightlyRun/test425.m
r8295 r9571 31 31 %imperative! 32 32 md.eps_rel=10^-5; %tighten for qmu analyses 33 md. qmu_analysis=1;33 md.dakota_analysis=1; 34 34 35 35 %solve -
issm/trunk/test/NightlyRun/test426.m
r8589 r9571 31 31 %imperative! 32 32 md.eps_rel=10^-5; %tighten for qmu analyses 33 md. qmu_analysis=1;33 md.dakota_analysis=1; 34 34 35 35 %solve -
issm/trunk/test/NightlyRun/test427.m
r8824 r9571 43 43 md.qmu_params.evaluation_concurrency=1; 44 44 md.qmu_params.interval_type='forward'; 45 md. qmu_analysis=1;45 md.dakota_analysis=1; 46 46 md.eps_rel=10^-5; %tighten for qmu analyses 47 47 -
issm/trunk/test/NightlyRun/test428.m
r8824 r9571 43 43 md.qmu_params.evaluation_concurrency=1; 44 44 md.qmu_params.interval_type='forward'; 45 md. qmu_analysis=1;45 md.dakota_analysis=1; 46 46 md.eps_rel=10^-5; %tighten for qmu analyses 47 47 -
issm/trunk/test/NightlyRun/test434.m
r8824 r9571 45 45 md=partitioner(md,'package','chaco','npart',md.npart,'weighting','on'); 46 46 md.part=md.part-1; 47 md. qmu_analysis=1;47 md.dakota_analysis=1; 48 48 49 49 md.eps_rel=10^-5; %tighten for qmu analyses -
issm/trunk/test/NightlyRun/test439.m
r8295 r9571 9 9 md=partitioner(md,'package','chaco','npart',md.npart); 10 10 md.part=md.part-1; 11 md. qmu_analysis=1;11 md.dakota_analysis=1; 12 12 13 13 %Dakota options -
issm/trunk/test/NightlyRun/test440.m
r8589 r9571 9 9 md=partitioner(md,'package','chaco','npart',md.npart); 10 10 md.part=md.part-1; 11 md. qmu_analysis=1;11 md.dakota_analysis=1; 12 12 13 13 %Dakota options
Note:
See TracChangeset
for help on using the changeset viewer.