Changeset 2938
- Timestamp:
- 01/29/10 16:31:16 (15 years ago)
- Location:
- issm/trunk/src
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk/src/c/Bamgx/objects/Triangles.cpp
r2937 r2938 912 912 /*Get and process fields*/ 913 913 s=bamgopts->field; 914 nbsol= 1; //for now, only one field914 nbsol=bamgopts->numfields; 915 915 typsols=(int*)xmalloc(1*sizeof(int)); 916 916 typsols[0]=0; // only one dof per node … … 1246 1246 /*Get and process fields*/ 1247 1247 s=bamgopts->field; 1248 nbsol= 1; //for now, only one field1248 nbsol=bamgopts->numfields; 1249 1249 typsols=(int*)xmalloc(1*sizeof(int)); 1250 1250 typsols[0]=0; // only one dof per node … … 1650 1650 /*Get and process fields*/ 1651 1651 s=bamgopts->field; 1652 nbsol= 1; //for now, only one field1652 nbsol=bamgopts->numfields; 1653 1653 typsols=(int*)xmalloc(1*sizeof(int)); 1654 1654 typsols[0]=0; // only one dof per node -
issm/trunk/src/c/Bamgx/objects/Vertex.cpp
r2937 r2938 139 139 double coef=bamgopts->coef; 140 140 int Metrictype=(bamgopts->Metrictype); 141 int Rescaling=(bamgopts->Rescaling);142 141 143 142 /*Intermediary*/ … … 153 152 */ 154 153 if (Metrictype==0){ 155 if (Rescaling){ 156 ci= 1/(bamgopts->err*coef*coef) * 1/(smax-smin); 157 } 158 else{ 159 ci=1/(bamgopts->err*coef*coef); 160 } 154 ci= 2.0/9.0 * 1/(bamgopts->err*coef*coef); 161 155 } 162 156 … … 169 163 */ 170 164 else if (Metrictype==1){ 171 ci= 1/(bamgopts->err*coef*coef) * 1/Max( Abs(s), CutOff*(Max(Abs(smin),Abs(smax))));172 } 173 174 // Interpolation Error165 ci= 2.0/9.0 * 1/(bamgopts->err*coef*coef) * 1/Max( Abs(s), CutOff*(Max(Abs(smin),Abs(smax)))); 166 } 167 168 //Rescaled absolute error 175 169 /* 176 * 2 1 177 *Metric M = --- ------------ Abs(Hessian)178 * 9 err * coeff^2 170 * 2 1 Abs(Hessian) 171 *Metric M = --- ------------ ---------------------- 172 * 9 err * coeff^2 (smax-smin) 179 173 */ 180 174 else if (Metrictype==2){ 181 ci= (2.0/9.0)*(1.0/(bamgopts->err));175 ci= 2.0/9.0 * 1/(bamgopts->err*coef*coef) * 1/(smax-smin); 182 176 } 183 177 else{ -
issm/trunk/src/c/objects/BamgOpts.h
r2937 r2938 15 15 double anisomax; 16 16 int NbSmooth; 17 int Rescaling;18 17 int Metrictype; 19 18 int nbjacobi; … … 31 30 double* metric; 32 31 double* field; 32 int numfields; 33 33 34 34 }; -
issm/trunk/src/m/classes/public/bamg.m
r2937 r2938 81 81 bamg_options.coef=getfieldvalue(options,'coef',1); 82 82 bamg_options.power=getfieldvalue(options,'power',1); 83 bamg_options.Rescaling=getfieldvalue(options,'Rescaling',1);84 83 bamg_options.nbjacobi=getfieldvalue(options,'nbjacobi',1); 85 84 bamg_options.AbsError=getfieldvalue(options,'AbsError',0); 86 85 bamg_options.Hessiantype=getfieldvalue(options,'Hessiantype',2); 87 bamg_options.Metrictype=getfieldvalue(options,'Metrictype', 2);86 bamg_options.Metrictype=getfieldvalue(options,'Metrictype',0); 88 87 bamg_options.NbSmooth=getfieldvalue(options,'NbSmooth',3); 89 88 bamg_options.omega=getfieldvalue(options,'omega',1.8); -
issm/trunk/src/mex/Bamg/Bamg.cpp
r2937 r2938 37 37 double power; 38 38 int Hessiantype,Metrictype,NbSmooth; 39 int Rescaling,nbjacobi,AbsError;39 int nbjacobi,AbsError; 40 40 double omega; 41 41 double gradation; … … 43 43 double* metric=NULL; 44 44 double* field=NULL; 45 int numfields=0; 45 46 46 47 /*Boot module: */ … … 121 122 FetchData(&power,mxGetField(BAMGOPTIONS,0,"power")); 122 123 bamgopts.power=power; 123 FetchData(&Rescaling,mxGetField(BAMGOPTIONS,0,"Rescaling"));124 bamgopts.Rescaling=Rescaling;125 124 FetchData(&nbjacobi,mxGetField(BAMGOPTIONS,0,"nbjacobi")); 126 125 bamgopts.nbjacobi=nbjacobi; … … 151 150 FetchData(&metric,NULL,NULL,mxGetField(BAMGOPTIONS,0,"metric")); 152 151 bamgopts.metric=metric; 153 FetchData(&field,NULL,NULL,mxGetField(BAMGOPTIONS,0,"field")); 152 FetchData(&field,NULL,&numfields,mxGetField(BAMGOPTIONS,0,"field")); 153 bamgopts.numfields=numfields; 154 printf("numfields = %i\n",numfields); 154 155 bamgopts.field=field; 155 156
Note:
See TracChangeset
for help on using the changeset viewer.