Dear all,
I want to solve an 1D Poisson equation with the inhomogeneous boundary
condition on the gradient (velocity) using the mixed FEM. The equation reads
I used step-20 to implement the mixed FEM.
Since this step cannot deal with the inhomogeneous boundary condtion on the
gradient, I added some code of step-22.
The changes are:
(1) adding
system_matrix.clear ();
dof_handler.distribute_dofs (fe);
DoFRenumbering::Cuthill_McKee (dof_handler);
std::vector<unsigned int> block_component (dim+1,0);
block_component[dim] = 1;
DoFRenumbering::component_wise (dof_handler, block_component);
{
constraints.clear ();
FEValuesExtractors::Vector velocities(0);
DoFTools::make_hanging_node_constraints (dof_handler,
constraints);
VectorTools::interpolate_boundary_values (dof_handler,
1,
GradientBoundary<dim>(),
constraints,
fe.component_mask(velocities)
);
}
constraints.close ();
of step-22 in
> void MixedLaplaceProblem<dim>::make_grid_and_dofs ()
>
of step-20;
(2) adding
for (unsigned int i=0; i<dofs_per_cell; ++i)
for (unsigned int j=i+1; j<dofs_per_cell; ++j)
local_matrix(i,j) = local_matrix(j,i);
cell->get_dof_indices (local_dof_indices);
constraints.condense (system_matrix, system_rhs);
of step-22 in
void MixedLaplaceProblem<dim>::assemble_system ()
of step-20.
Pn elements are used for the solution and Pn+1 elements are used for the
gradient.
fe (FE_Q<dim>(degree+1), 1,
FE_Q<dim>(degree), 1),
Setting 'a' equal or not equal to zero, it works when 'b' is equal to zero
(homogeneous Dirichlet boundary condition on the gradient).
Specifically, the convergence order of the solution is one order higher
than the element degree of the solution, and the convergence order of the
gradient is equal to or one order lower than the element degree of the
gradient.
However, when 'b' is not equal to zero ( inhomogeneous Dirichlet boundary
condition on the gradient), it does not work for the gradient, i.e. the
convergence order of the solution is still one order higher than the
element degree, but the convergence order of the gradient keeps 0.5 for
different elements.
Could anyone explain this? Thank you.
Kind regards,
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].
For more options, visit https://groups.google.com/d/optout.