Re: [Libmesh-users] Elasticity nullspace

2014-07-24 Thread Ataollah Mesgarnejad
Just wanted to let everyone know that the snippet for getting the coordinates works just fine and can be used with a PetscVector coords to get the coordinates of all the nodes and then passed to MatNullSpaceCreateRigidBody to build the correct rigid body nullspace for a first order Lagrange basis.

Re: [Libmesh-users] Elasticity nullspace

2014-07-19 Thread Ataollah Mesgarnejad
Thank Dmitry, I've seen the implementation in the NonlinearImplicitSystem. I've also made my own copy of your implementation in PETScNonlinearSolver::build_mat_null_space inside my own code to do the same thing for LinearImplicitSystems. I suspect there is something wrong with the BlockSize since

Re: [Libmesh-users] Elasticity nullspace

2014-07-19 Thread Dmitry Karpeyev
Ata, Note that you can attach a NearNullSpace calculation routine or an equivalent callable object to your NonlinearSolver (currently supported only for PetscNonlinearSolver, I believe). The solver will detect the NearNullSpace calculator, evaluate it and attach the resulting NearNullSpace to the

[Libmesh-users] Elasticity nullspace

2014-07-19 Thread Ataollah Mesgarnejad
Dear all, I was wondering if there is a way to create the coordinates vector for MatNullSpaceCreateRigidBody? I tried traversing all the nodes in the mesh by doing something like: coords->init (no_nodes*dim, no_local_nodes*dim, false, PARALLEL); coords->zero(); MeshBase::const_node_iterator n