Hi,
I am trying to assemble a matrix for a 1-D problem. Based on previous threads
about 1-D problems, I have avoided using the MeshWorker routines and coded
the assembly. I would like to make use of a set of functions that I already
have for assembling coefficients on a local matrix which takes a FullMatrix
object and an FEValuesBase object to extract the local FE data, but for a
single component.
Since my problem is nonlinear and multi-component, I access the block data and
set up the assembly as such:
Initialize an FEValues object with my system of finite elements and quadrature
formula, loop over all the cells with the dof_handler object (which reflects
the dofs for the whole system), reinitialize the fe_values object with the
cell data, get the local solution values from the last iteration (nonlinear
problem) and finally, call a function to assemble the cell matrix by
component (i.e. using a FullMatrix and FEvaluesBase that have a size of one
block)
The relevant code is below.
FEValues<dim> fe_values (fe_sys, quadrature_formula,
update_values | update_gradients |
update_quadrature_points |
update_JxW_values);
typename DoFHandler<dim>::active_cell_iterator
cell = dof_handler.begin_active(),
endc = dof_handler.end();
for (; cell!=endc; ++cell)
{
fe_values.reinit(cell);
fe_values.get_function_values(solution,local_solution_values);
fe_values.get_function_gradients (solution,local_solution_gradients);
// assemble cell matrix component-wise
// assemble_cell_matrix (local_solution_values,
local_solution_gradients,
fe_values);
// assemble global matrix
}
Now for my question. Is there any way to extract FEValuesBase objects for
each individual component (to get the dofs_per_cell, shape function data,
etc.), like MeshWorker::IntegrationInfo but without using the FEValuesViews
method (step-20) or do I need to code a new assembly procedure for the
problem?
I have tried quick fixes like declaring new FEvalues objects with a
one-component FiniteElement, but this doesn't match the iterator when I call
reinit(cell).
Any ideas? Thanks in advance for your help.
Peter
_______________________________________________
dealii mailing list http://poisson.dealii.org/mailman/listinfo/dealii