Conversation
… a state advancer.
…physics interface.
…boundary conditions.
…l the mechanics weak forms.
…ltiblock situations.
|
Does |
|
|
ebchin
left a comment
There was a problem hiding this comment.
Very elegant, very flexible; a lot of good stuff here.
I know the focus here is coupled PDEs, but it seems like a lot of this can be used for solving constraints too. Excited to try it out for contact!
| @@ -1,3 +1,4 @@ | |||
|
|
|||
| * @brief Enum for different types of time derivatives. | ||
| */ | ||
| enum class TimeDerivative | ||
| { |
There was a problem hiding this comment.
Does it make sense to add an integral time derivative type? I'm thinking of places where the independent field might already be a time derivative.
| } | ||
|
|
||
| return {new_states, reactions}; | ||
| } |
There was a problem hiding this comment.
Maybe I haven't gotten there yet, but is there something that works with multi-stage time integration schemes like RK4?
| /// @param exact_staggered_steps If true, always perform exactly @p max_staggered_iterations | ||
| /// sweeps with no early-exit convergence check. Useful when a fixed number of | ||
| /// partitioned-stagger steps is required regardless of residual level. | ||
| CoupledSystemSolver(int max_staggered_iterations, bool exact_staggered_steps = false); |
There was a problem hiding this comment.
It seems like you can set this up to do Uzawa iterations to solve for constraints?
| tangent_weights[field_index_to_diff] = 0.0; | ||
| if (field_index_to_diff != invalid_block_index) { | ||
| tangent_weights[field_index_to_diff] = 1.0; | ||
| auto jac_ij = residual_evals[row_i]->jacobian(time_info, shape_disp_ptr.get(), |
There was a problem hiding this comment.
Should we refactor WeakForm::jacobian() to only take the derivative w.r.t. a single field? If you had a thermomechanical system or a constrained system, the size of the blocks would be different anyway.
Uh oh!
There was an error while loading. Please reload this page.