From: David X. <dx...@my...> - 2006-03-09 20:42:18
|
Roy, Thanks so much for your quick reponse! I really appreciate it. > > I looked > > at ex15 which uses uniform refinement. I have questions about the > > parameters for the uniform refinement: max_r_steps, max_r_level, > > refine_percentage, coarsen_percentage > > These are all "junk DNA" left over from whichever example (I think 14) > I mutated into ex15. I do have a private version of ex15 which > handles 3D problems and adaptive refinement using these options. I'd > like to test it a bit more before committing to CVS, but if you're > interested I can send you a copy now. > > Are you sure you don't want to be looking at ex14 instead? It's a > second-order problem and was chosen so that adaptivity makes more > sense than the smooth biharmonic benchmark. Please send me your private version of 3D ex15. I'd love to read it. I just read ex14, one question here: const unsigned int max_r_steps =3D input_file("max_r_steps", 3)= ; const unsigned int max_r_level =3D input_file("max_r_level", 3)= ; const Real refine_percentage =3D input_file("refine_percentage", 0.5); const Real coarsen_percentage =3D input_file("coarsen_percentage", 0.5); const unsigned int uniform_refine =3D input_file("uniform_refin= e",0); const std::string approx_order =3D input_file("approx_order", "FIRST"); It looks like the code overwrites the values assigned to the above refinement parameters in "ex14.in"? Why doesn't read them from the file? This kinda defeats the purpose of using input file, doesn't it. I looked lshaped.xda in e14 and I suppose the domain is usually defined in the xda file. I'm still very confused with the xda format even I 've ready the instructions (http://libmesh.sourceforge.net/xda_format/xda_format.pdf) many times. Kirk told me to uniform refine a single one_tet.xda in libmesh/reference_elements/3D. How do I modify the one_tet.xda to fit in the volume {x,y,z|-5<=3Dx,y,z<=3D5}? > > 4. How do I use either adaptive and uniform refinement in a eigenvalue > > problem code? Say if I use Slepc and other external eigenvalue solver, > > do I have to solve the eigenvalues in every refinement loop? > > For uniform refinement, just refine the mesh before you solve, or > better yet avoid expensive interpolations by refining before you even > set up the equation systems. > > For adaptive refinement, you have to have some sort of error indicator > to adapt to, and I don't see how you can get such a thing without a > solve. > > I'm not sure how useful adaptive refinement is when you're looking for > multiple eigenvalues, though. You can adapt the mesh to one solution > if you're just looking for one eigenvalue, but if you adapt to a whole > spectrum of solutions it'll probably start looking pretty uniform. I think you have a good point. If I just want to use adaptive mesh for the smallest eigenvalue (groud state energuy in my problem), how do you think I should implement it in libmesh? I wish there is a libmesh example for this kind of application. Last question, if I compile libmesh with tetgen (--enable-tetgen), is there a similar function call like MeshTools::Generation::build_cube (mesh, 20, 20, 20, -5., 5., -5., 5., -5., 5., HEX27); to simply define and generate tets in domain (-5., 5., -5., 5., -5., 5.) using mesh.tetgen? Thanks! David |