Could you please tell me how to set up the conditioner like you mention? AMG on each processor wins on problems where it works, ILU (usually with ~4 levels) wins otherwise, tweaking Block Jacobi vs Additive Schwarz to tie it together can speed things up slightly.
What are the command line options and packages necessary with the petsc installation? For AMG and ILU I assume it's hypre? Miguel On Thu, Sep 4, 2014 at 12:13 PM, Roy Stogner <[email protected]> wrote: > > > On Thu, 4 Sep 2014, Miguel Angel Salazar de Troya wrote: > > Thanks. Could you answer the last question please? Basically I want to >> know if I still can use cg once I use mesh refinement? I did quick >> calculations with equation (7) and I see the matrix is not symmetric so I >> think I cannot use it. >> > > Sorry, I was kind of oblique: > > > "Depending on the constraint options you select we fill in those > zero blocks with the constraint equations themselves or with ones > on the diagonal." > > C^T K C is obviously symmetric, but if we add constraint equations > to the empty rows then we get something asymmetric; if you want to use > CG you need to make sure you're setting > asymmetric_constraint_rows=false (and then using > enforce_constraints_exactly() or something to fix up your hanging dofs > after each solve). > > > I would like to double check with you. Which preconditioner would >> you recommend for adaptive mesh refinement in elasticity? >> > > I'm not the one to ask about preconditioners. My experience could > probably be summed up as: > > AMG on each processor wins on problems where it works, ILU (usually > with ~4 levels) wins otherwise, tweaking Block Jacobi vs Additive > Schwarz to tie it together can speed things up slightly. > > > Also, I had a question about the load balancing in the adaptive mesh >> refinement. Is this automatic? >> > > Yes > > When is it done? >> > > Inside EquationSystems::reinit() > > > The vectors associated with a system are balanced as well? >> > > Yes. But they're either projected to the new grid or zeroed depending > on the option you gave to add_vector() or afterwards. > > > What if we had created additional vectors that we initialize after each >> refinement with the function init (const >> NumericVector<T> other), i.e. >> http://libmesh.sourceforge.net/doxygen/classlibMesh_1_1PetscVector.php# >> a1a9ed9f54cab101da906d976e0b7bea1 >> > > If you didn't use System::add_vector() to create it then the system > doesn't know about it and it doesn't get touched upon refinement. > --- > Roy > -- *Miguel Angel Salazar de Troya* Graduate Research Assistant Department of Mechanical Science and Engineering University of Illinois at Urbana-Champaign (217) 550-2360 [email protected] ------------------------------------------------------------------------------ Slashdot TV. Video for Nerds. Stuff that matters. http://tv.slashdot.org/ _______________________________________________ Libmesh-users mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/libmesh-users
