I'm using a FEMSystem with a NewtonSolver. I realized that in the FEMSystem, in the assembly routines, DofMap::constrain_element_matrix_and_vector is called with asymmetric_constraint_rows = false. Also, because it's a nonlinear solver. DofMap::enforce_constraints_exactly(system) is called as well. Would this ensure me a symmetric matrix even for the refinement case?
Miguel On Thu, Sep 4, 2014 at 1:58 PM, Miguel Angel Salazar de Troya < [email protected]> wrote: > 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] > > -- *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
