Changeset 16967
- Timestamp:
- 11/27/13 14:02:26 (11 years ago)
- Location:
- issm/trunk-jpl/src
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/src/c/bamg/BamgOpts.cpp
r15066 r16967 20 20 this->omega=0; 21 21 this->power=0; 22 this->random=0; 22 23 this->verbose=0; 23 24 -
issm/trunk-jpl/src/c/bamg/BamgOpts.h
r12821 r16967 25 25 double omega; 26 26 double power; 27 bool random; 27 28 int verbose; 28 29 -
issm/trunk-jpl/src/c/bamg/Mesh.cpp
r16521 r16967 2775 2775 /*}}}*/ 2776 2776 /*FUNCTION Mesh::Insert{{{*/ 2777 void Mesh::Insert( ) {2777 void Mesh::Insert(bool random) { 2778 2778 /*Original code from Frederic Hecht <hecht@ann.jussieu.fr> (BAMG v1.01, Mesh2.cpp/Insert)*/ 2779 2779 … … 2822 2822 //Get Prime number 2823 2823 const long PrimeNumber= BigPrimeNumber(nbv); 2824 int k0=rand()%nbv; 2824 int temp = rand(); if(random) temp = 756804110; 2825 int k0=temp%nbv; 2825 2826 2826 2827 //Build orderedvertices … … 2904 2905 _printf_(" NbSwap/nbv: " << NbSwap/nbv << "\n"); 2905 2906 } 2906 2907 #ifdef NBLOOPOPTIM2908 2909 k0 = rand()%nbv ;2910 for (int is4=0; is4<nbv; is4++)2911 orderedvertices[is4]= &vertices[k0 = (k0 + PrimeNumber)% nbv];2912 2913 for(int Nbloop=0;Nbloop<NBLOOPOPTIM;Nbloop++){2914 long NbSwap = 0;2915 for (int is1=0; is1<nbv; is1++)2916 NbSwap += orderedvertices[is1]->Optim(0,0);2917 if (verbose>3) {2918 _printf_(" Optim Loop: " << Nbloop << "\n");2919 _printf_(" NbSwap/nbv: " << NbSwap/nbv << "\n");2920 }2921 if(!NbSwap) break;2922 }2923 CreateSingleVertexToTriangleConnectivity();2924 // because we break the TriangleContainingTheVertex2925 #endif2926 2907 } 2927 2908 /*}}}*/ 2928 2909 /*FUNCTION Mesh::InsertNewPoints{{{*/ 2929 long Mesh::InsertNewPoints(long nbvold,long & NbTSwap ) {2910 long Mesh::InsertNewPoints(long nbvold,long & NbTSwap,bool random) { 2930 2911 /*Original code from Frederic Hecht <hecht@ann.jussieu.fr> (BAMG v1.01, Mesh2.cpp/InsertNewPoints)*/ 2931 2912 … … 2948 2929 const long PrimeNumber= BigPrimeNumber(nbv) ; 2949 2930 //remainder of the division of rand() by nbvnew 2950 long k3 = rand()%nbvnew; 2931 int temp = rand(); if(!random) temp = 1098566905; 2932 long k3 = temp%nbvnew; 2951 2933 //loop over the new points 2952 2934 for (int is3=0; is3<nbvnew; is3++){ … … 3212 3194 } 3213 3195 Bh.CreateSingleVertexToTriangleConnectivity(); 3214 InsertNewPoints(nbvold,NbTSwap ) ;3196 InsertNewPoints(nbvold,NbTSwap,bamgopts->random); 3215 3197 } 3216 3198 else Bh.CreateSingleVertexToTriangleConnectivity(); … … 3270 3252 }// for triangle 3271 3253 3272 if (!InsertNewPoints(nbvold,NbTSwap )) break;3254 if (!InsertNewPoints(nbvold,NbTSwap,bamgopts->random)) break; 3273 3255 for (i=nbtold;i<nbt;i++) first_np_or_next_t[i]=iter; 3274 3256 Headt = nbt; // empty list … … 4231 4213 4232 4214 /*Insert Vertices*/ 4233 Insert( );4215 Insert(true); 4234 4216 } 4235 4217 /*}}}*/ … … 4534 4516 if (verbose>3) _printf_(" Creating initial Constrained Delaunay Triangulation...\n"); 4535 4517 if (verbose>3) _printf_(" Inserting boundary points\n"); 4536 Insert( );4518 Insert(bamgopts->random); 4537 4519 4538 4520 //Force the boundary … … 4862 4844 if (verbose>3) _printf_(" Creating initial Constrained Delaunay Triangulation...\n"); 4863 4845 if (verbose>3) _printf_(" Inserting boundary points\n"); 4864 Insert( );4846 Insert(bamgopts->random); 4865 4847 4866 4848 //Force the boundary -
issm/trunk-jpl/src/c/bamg/Mesh.h
r16231 r16967 77 77 R2 I2ToR2(const I2 & P) const; 78 78 void AddVertex(BamgVertex & s,Triangle * t,Icoor2 * =0) ; 79 void Insert( );79 void Insert(bool random); 80 80 void Echo(void); 81 81 void ForceBoundary(); … … 92 92 void MakeBamgQuadtree(); 93 93 void NewPoints(Mesh &,BamgOpts* bamgopts,int KeepVertices=1); 94 long InsertNewPoints(long nbvold,long & NbTSwap );94 long InsertNewPoints(long nbvold,long & NbTSwap,bool random); 95 95 void TrianglesRenumberBySubDomain(bool justcompress=false); 96 96 void SmoothingVertex(int =3,double=0.3); -
issm/trunk-jpl/src/m/mesh/bamg.m
r16379 r16967 325 325 bamg_options.splitcorners=getfieldvalue(options,'splitcorners',1); 326 326 bamg_options.geometricalmetric=getfieldvalue(options,'geometricalmetric',0); 327 bamg_options.random=getfieldvalue(options,'rand',true); 327 328 bamg_options.verbose=getfieldvalue(options,'verbose',1); 328 329 %}}} -
issm/trunk-jpl/src/m/mesh/bamg.py
r16962 r16967 309 309 bamg_options['splitcorners']=options.getfieldvalue('splitcorners',1) 310 310 bamg_options['geometricalmetric']=options.getfieldvalue('geometricalmetric',0) 311 bamg_options['random']=options.getfieldvalue('rand',True) 311 312 bamg_options['verbose']=options.getfieldvalue('verbose',1) 312 313 #}}}
Note:
See TracChangeset
for help on using the changeset viewer.