Dear Jie,
     In your conclusion here the point 2 may be ambiguous,
>  Apply nonzero_constraints at the first Newton iteration in every time 
step.
Is that means:
    use nonzero_constraints to distribute newton update or solution or both?
In my thought, in moving nonzero constraints case:
    In the first Newton iteration in every time step:
        use zero_constraints to distribute newton update(increment)
        use nonzero_constraints to distribute solution after solution add 
the newton update
    In the follow Newton iteration in every time step:
        use zero_constraints to distribute newton update
        not need to use nonzero_constraints to distribute solution
Or, in the invariant nonzero_constraints case: 
    In the first Newton iteration in first time step:
        use zero_constraints to distribute newton update(increment)
        use nonzero_constraints to distribute solution after solution 
adding the newton update
    otherwise:
        use zero_constraints to distribute newton update(increment)
in that way, the solution will keep the correct nonzero value in boundary.

If use the nonzero_constraints to distribute the newton update in the first 
newton iteration in every timestep, then the solution (after adding the 
newton update) will has the
nonzero boundary value added again while your solution is not zero in 
boundary
(but in your case maybe any time step your start with a zero solution that 
wouldn't cause any error).

It's that right? 
    
在 2018年4月5日星期四 UTC+8下午10:42:55,Jie Cheng写道:
>
> Dear Wolfgang
>
> Problem solved, thank you! For other people's references, here is what I 
> did: 1. when setting the nonzero_constraints, always query the current 
> value first and then substract it from the target value so that the 
> solution delta is constrained correctly. 2. Apply nonzero_constraints at 
> the first Newton iteration in every time step. 3. By not eliminating 
> constrained dofs from the sparsity pattern, no need to recreate it when the 
> constraints change, thus no need to reinitialize the matrices and vectors.
>
> Jie
>

-- 
The deal.II project is located at http://www.dealii.org/
For mailing list/forum options, see 
https://groups.google.com/d/forum/dealii?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"deal.II User Group" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/dealii/1833e7b4-1ae4-49fd-91b1-d25388e1747a%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to