Changeset 17895
- Timestamp:
- 04/30/14 14:18:08 (11 years ago)
- Location:
- issm/trunk-jpl
- Files:
-
- 3 added
- 1 deleted
- 14 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/m4/issm_options.m4
r17775 r17895 940 940 fi 941 941 dnl }}} 942 dnl m1qn3{{{ 943 AC_ARG_WITH([m1qn3-dir], 944 AS_HELP_STRING([--with-m1qn3-dir=DIR], [m1qn3 root directory.]), 945 [M1QN3_ROOT=$withval],[M1QN3_ROOT="no"]) 946 947 dnl Check whether m1qn3 is enabled 948 AC_MSG_CHECKING([for m1qn3]) 949 if test "x$M1QN3_ROOT" = "xno" ; then 950 HAVE_M1QN3=no 951 else 952 HAVE_M1QN3=yes 953 if ! test -d "$M1QN3_ROOT"; then 954 AC_MSG_ERROR([m1qn3 directory provided ($M1QN3_ROOT) does not exist]); 955 fi 956 fi 957 AC_MSG_RESULT($HAVE_M1QN3) 958 959 dnl m1qn3 headers and libraries 960 if test "x$HAVE_M1QN3" == "xyes"; then 961 M1QN3LIB="$M1QN3_ROOT/libm1qn3.a $M1QN3_ROOT//libddot.a" 962 AC_DEFINE([_HAVE_M1QN3_],[1],[with M1QN3I in ISSM src]) 963 AC_SUBST([M1QN3LIB]) 964 fi 965 dnl }}} 942 966 dnl slepc{{{ 943 967 AC_ARG_WITH([slepc-dir], -
issm/trunk-jpl/src/c/Makefile.am
r17862 r17895 423 423 ./cores/control_core.cpp\ 424 424 ./cores/controltao_core.cpp\ 425 ./cores/controlm1qn3_core.cpp\ 425 426 ./cores/objectivefunction.cpp\ 426 427 ./cores/gradient_core.cpp\ … … 874 875 875 876 libISSMCore_la_SOURCES = $(issm_sources) 876 libISSMCore_la_LIBADD = $(PETSCLIB) $(TAOLIB) $( PLAPACKLIB) $(MUMPSLIB) $(SUPERLULIB) $(SPOOLESLIB) $(SCALAPACKLIB) $(BLACSLIB) $(HYPRELIB) $(SPAILIB) $(PROMETHEUSLIB) $(PASTIXLIB) $(MLLIB) $(DAKOTALIB) $(METISLIB) $(CHACOLIB) $(SCOTCHLIB) $(BLASLAPACKLIB) $(MKLLIB) $(MPILIB) $(MATHLIB) $(GRAPHICSLIB) $(MULTITHREADINGLIB) $(OSLIBS) $(GSLLIB) $(ADOLCLIB) $(AMPILIB) $(METEOIOLIB) $(SNOWPACKLIB)877 libISSMCore_la_LIBADD = $(PETSCLIB) $(TAOLIB) $(M1QN3LIB) $(PLAPACKLIB) $(MUMPSLIB) $(SUPERLULIB) $(SPOOLESLIB) $(SCALAPACKLIB) $(BLACSLIB) $(HYPRELIB) $(SPAILIB) $(PROMETHEUSLIB) $(PASTIXLIB) $(MLLIB) $(DAKOTALIB) $(METISLIB) $(CHACOLIB) $(SCOTCHLIB) $(BLASLAPACKLIB) $(MKLLIB) $(MPILIB) $(MATHLIB) $(GRAPHICSLIB) $(MULTITHREADINGLIB) $(OSLIBS) $(GSLLIB) $(ADOLCLIB) $(AMPILIB) $(METEOIOLIB) $(SNOWPACKLIB) 877 878 libISSMCore_la_FFLAGS = $(AM_FFLAGS) 878 879 endif … … 921 922 922 923 #External packages 923 LDADD += $(PETSCLIB) $(TAOLIB) $( PLAPACKLIB) $(MUMPSLIB) $(SUPERLULIB) $(SPOOLESLIB) $(SCALAPACKLIB) $(BLACSLIB) $(HYPRELIB) $(SPAILIB) $(PROMETHEUSLIB) $(PASTIXLIB) $(MLLIB) $(DAKOTALIB) $(METISLIB) $(CHACOLIB) $(SCOTCHLIB) $(BLASLAPACKLIB) $(MKLLIB) $(MPILIB) $(MATHLIB) $(GRAPHICSLIB) $(MULTITHREADINGLIB) $(OSLIBS) $(GSLLIB) $(AMPILIB) $(ADOLCLIB) $(MPILIB) $(METEOIOLIB) $(SNOWPACKLIB)924 LDADD += $(PETSCLIB) $(TAOLIB) $(M1QN3LIB) $(PLAPACKLIB) $(MUMPSLIB) $(SUPERLULIB) $(SPOOLESLIB) $(SCALAPACKLIB) $(BLACSLIB) $(HYPRELIB) $(SPAILIB) $(PROMETHEUSLIB) $(PASTIXLIB) $(MLLIB) $(DAKOTALIB) $(METISLIB) $(CHACOLIB) $(SCOTCHLIB) $(BLASLAPACKLIB) $(MKLLIB) $(MPILIB) $(MATHLIB) $(GRAPHICSLIB) $(MULTITHREADINGLIB) $(OSLIBS) $(GSLLIB) $(AMPILIB) $(ADOLCLIB) $(MPILIB) $(METEOIOLIB) $(SNOWPACKLIB) 924 925 925 926 if FORTRAN -
issm/trunk-jpl/src/c/cores/WrapperCorePointerFromSolutionEnum.cpp
r17236 r17895 21 21 22 22 /*parameters: */ 23 bool control_analysis =false;24 bool tao_analysis=false;25 bool dakota_analysis=false;23 bool control_analysis; 24 bool dakota_analysis; 25 int inversiontype; 26 26 27 27 /* retrieve some parameters that tell us whether wrappers are allowed, or whether we return … … 30 30 parameters->FindParam(&dakota_analysis,QmuIsdakotaEnum); 31 31 parameters->FindParam(&control_analysis,InversionIscontrolEnum); 32 parameters->FindParam(& tao_analysis,InversionTaoEnum);32 parameters->FindParam(&inversiontype,InversionTypeEnum); 33 33 34 34 if(nodakotacore)dakota_analysis=false; … … 42 42 } 43 43 else if(control_analysis){ 44 if(tao_analysis) solutioncore=controltao_core; 45 else solutioncore=control_core; 44 switch(inversiontype){ 45 case 0: solutioncore=control_core; break; 46 case 1: solutioncore=controltao_core; break; 47 case 2: solutioncore=controlm1qn3_core; break; 48 default: _error_("control type not supported"); 49 } 46 50 } 47 51 else CorePointerFromSolutionEnum(&solutioncore,parameters,solutiontype); /*This means we retrieve a core solution that is not a wrapper*/ -
issm/trunk-jpl/src/c/cores/cores.h
r17831 r17895 29 29 void control_core(FemModel* femmodel); 30 30 void controltao_core(FemModel* femmodel); 31 void controlm1qn3_core(FemModel* femmodel); 31 32 void masstransport_core(FemModel* femmodel); 32 33 void depthaverage_core(FemModel* femmodel); -
issm/trunk-jpl/src/c/modules/ModelProcessorx/Control/CreateParametersControl.cpp
r16542 r17895 10 10 void CreateParametersControl(Parameters* parameters,IoModel* iomodel,int solution_type){ 11 11 12 bool control_analysis,tao_analysis; 12 bool control_analysis; 13 int inversiontype; 13 14 int nsteps; 14 15 int num_control_type; … … 22 23 /*retrieve some parameters: */ 23 24 iomodel->Constant(&control_analysis,InversionIscontrolEnum); 24 iomodel->Constant(& tao_analysis,InversionTaoEnum);25 iomodel->Constant(&inversiontype,InversionTypeEnum); 25 26 26 27 if(control_analysis){ … … 31 32 parameters->AddObject(iomodel->CopyConstantObject(InversionNstepsEnum)); 32 33 parameters->AddObject(iomodel->CopyConstantObject(InversionIncompleteAdjointEnum)); 33 if( !tao_analysis){34 if(inversiontype==0){ 34 35 parameters->AddObject(iomodel->CopyConstantObject(InversionCostFunctionThresholdEnum)); 35 36 } … … 46 47 iomodel->FetchData(&control_type,NULL,&num_control_type,InversionControlParametersEnum); 47 48 iomodel->FetchData(&cm_responses,NULL,&num_cm_responses,InversionCostFunctionsEnum); 48 if( !tao_analysis){49 if(inversiontype==0){ 49 50 iomodel->FetchData(&cm_jump,&nsteps,NULL,InversionStepThresholdEnum); 50 51 iomodel->FetchData(&optscal,NULL,NULL,InversionGradientScalingEnum); … … 52 53 } 53 54 54 if( tao_analysis){55 if(inversiontype!=0){ 55 56 parameters->AddObject(new IntVecParam(InversionControlParametersEnum,control_type,num_control_type)); 56 57 parameters->AddObject(new IntVecParam(InversionCostFunctionsEnum,cm_responses,num_cm_responses)); -
issm/trunk-jpl/src/c/modules/ModelProcessorx/CreateParameters.cpp
r17850 r17895 76 76 parameters->AddObject(iomodel->CopyConstantObject(QmuIsdakotaEnum)); 77 77 parameters->AddObject(iomodel->CopyConstantObject(InversionIscontrolEnum)); 78 parameters->AddObject(iomodel->CopyConstantObject(InversionT aoEnum));78 parameters->AddObject(iomodel->CopyConstantObject(InversionTypeEnum)); 79 79 parameters->AddObject(iomodel->CopyConstantObject(GiaCrossSectionShapeEnum)); 80 80 -
issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h
r17886 r17895 135 135 InversionGradientScalingEnum, 136 136 InversionIscontrolEnum, 137 InversionT aoEnum,137 InversionTypeEnum, 138 138 InversionIncompleteAdjointEnum, 139 139 InversionMaxParametersEnum, -
issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp
r17886 r17895 143 143 case InversionGradientScalingEnum : return "InversionGradientScaling"; 144 144 case InversionIscontrolEnum : return "InversionIscontrol"; 145 case InversionT aoEnum : return "InversionTao";145 case InversionTypeEnum : return "InversionType"; 146 146 case InversionIncompleteAdjointEnum : return "InversionIncompleteAdjoint"; 147 147 case InversionMaxParametersEnum : return "InversionMaxParameters"; -
issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp
r17886 r17895 146 146 else if (strcmp(name,"InversionGradientScaling")==0) return InversionGradientScalingEnum; 147 147 else if (strcmp(name,"InversionIscontrol")==0) return InversionIscontrolEnum; 148 else if (strcmp(name,"InversionT ao")==0) return InversionTaoEnum;148 else if (strcmp(name,"InversionType")==0) return InversionTypeEnum; 149 149 else if (strcmp(name,"InversionIncompleteAdjoint")==0) return InversionIncompleteAdjointEnum; 150 150 else if (strcmp(name,"InversionMaxParameters")==0) return InversionMaxParametersEnum; -
issm/trunk-jpl/src/m/classes/inversion.m
r17779 r17895 7 7 properties (SetAccess=public) 8 8 iscontrol = 0 9 tao = 010 9 incomplete_adjoint = 0 11 10 control_parameters = NaN … … 80 79 obj=inversion(); 81 80 obj.iscontrol = in.iscontrol; 82 obj.tao = 1;rsion to inve83 81 obj.incomplete_adjoint = in.incomplete_adjoint; 84 82 obj.control_parameters = in.control_parameters; … … 152 150 153 151 md = checkfield(md,'fieldname','inversion.iscontrol','values',[0 1]); 154 md = checkfield(md,'fieldname','inversion.tao','values',[0 1]);155 152 md = checkfield(md,'fieldname','inversion.incomplete_adjoint','values',[0 1]); 156 153 md = checkfield(md,'fieldname','inversion.control_parameters','cell',1,'values',... … … 214 211 yts=365.0*24.0*3600.0; 215 212 213 WriteData(fid,'enum',InversionTypeEnum(),'data',0,'format','Integer'); 216 214 WriteData(fid,'object',obj,'fieldname','iscontrol','format','Boolean'); 217 WriteData(fid,'object',obj,'fieldname','tao','format','Boolean');218 215 WriteData(fid,'object',obj,'fieldname','incomplete_adjoint','format','Boolean'); 219 216 if ~obj.iscontrol, return; end -
issm/trunk-jpl/src/m/classes/inversion.py
r17780 r17895 17 17 def __init__(self): # {{{ 18 18 self.iscontrol = 0 19 self.tao = 020 19 self.incomplete_adjoint = 0 21 20 self.control_parameters = float('NaN') … … 117 116 118 117 md = checkfield(md,'fieldname','inversion.iscontrol','values',[0,1]) 119 md = checkfield(md,'fieldname','inversion.tao','values',[0,1])120 118 md = checkfield(md,'fieldname','inversion.incomplete_adjoint','values',[0,1]) 121 119 md = checkfield(md,'fieldname','inversion.control_parameters','cell',1,'values',['BalancethicknessThickeningRate','FrictionCoefficient','MaterialsRheologyBbar','DamageDbar','Vx','Vy']) … … 146 144 yts=365.0*24.0*3600.0 147 145 146 WriteData(fid,'enum',InversionTypeEnum(),'data',0,'format','Integer') 148 147 WriteData(fid,'object',self,'fieldname','iscontrol','format','Boolean') 149 WriteData(fid,'object',self,'fieldname','tao','format','Boolean')150 148 WriteData(fid,'object',self,'fieldname','incomplete_adjoint','format','Boolean') 151 149 if not self.iscontrol: -
issm/trunk-jpl/src/m/classes/taoinversion.m
r16764 r17895 124 124 125 125 WriteData(fid,'object',obj,'class','inversion','fieldname','iscontrol','format','Boolean'); 126 WriteData(fid,'enum',InversionT aoEnum(),'data',true,'format','Boolean');126 WriteData(fid,'enum',InversionTypeEnum(),'data',1,'format','Integer'); 127 127 if ~obj.iscontrol, return; end 128 128 WriteData(fid,'object',obj,'class','inversion','fieldname','incomplete_adjoint','format','Boolean'); -
issm/trunk-jpl/src/m/contrib/dassflow/importgmsh.m
r17831 r17895 98 98 end 99 99 case 15, %point 100 A=fscanf(fid,'%i',1); 100 101 continue; 101 102 otherwise, … … 126 127 127 128 %Create model 128 if 0, %2d triangles129 if dim==2, %2d triangles 129 130 md=meshconvert(model,index,x,y); 130 131 md.mesh=mesh2dvertical(md.mesh); -
issm/trunk-jpl/src/m/enum/EnumDefinitions.py
r17886 r17895 135 135 def InversionGradientScalingEnum(): return StringToEnum("InversionGradientScaling")[0] 136 136 def InversionIscontrolEnum(): return StringToEnum("InversionIscontrol")[0] 137 def InversionT aoEnum(): return StringToEnum("InversionTao")[0]137 def InversionTypeEnum(): return StringToEnum("InversionType")[0] 138 138 def InversionIncompleteAdjointEnum(): return StringToEnum("InversionIncompleteAdjoint")[0] 139 139 def InversionMaxParametersEnum(): return StringToEnum("InversionMaxParameters")[0]
Note:
See TracChangeset
for help on using the changeset viewer.