On Sat, 21 Apr 2018, Manav Bhatia wrote:
I am trying to identify the best approach to handle time-varying Dirichlet conditions with libMesh. It appears that DirichletConstraints is used to create a set of DofConstraintRow that is used after the nonlinear solves through DofMap::enforce_constraints_exactly().
After the nonlinear solves, but also during the solve process when you apply constraints to your system matrix and rhs at each linearized step.
So, if time-varying DirichletConstraints are required, then the dof constraints will have to be reinitialized at each time-step with the DirichletCondition object returning the function values for that time?
That's correct.
Is there another way to do this without have to reinit the constraints?
Weakly enforce penalty or Nitsche boundary conditions? But for strong BCs in libMesh, reinitializing the constraint equations is the way to go.
Presently I am not using AMR. Would reinit of constraints at each time-step be the best approach if AMR is used?
Right. We split out a reinit_constraints() option recently to make it possible to do this without unnecessarily reinitializing other parts of the problem at the same time. Be careful about the time setting of your system when you reinit time-varying constraints! Often users will keep their System time set to the time at the beginning of a time step, but constraining a solution for that time step should be done with the constraint values at the *end* of the time step. --- Roy ------------------------------------------------------------------------------ Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot _______________________________________________ Libmesh-users mailing list Libmesh-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/libmesh-users