> I apologise if the question's too simplistic, but does this give the
> correct behaviour:
> 
>    MatrixCreator::create_mass_matrix (dof_handler, QGauss<dim>(3),
> mass_matrix);
> 
> MatrixCreator::create_laplace_matrix (dof_handler, QGauss<dim>(3),
> laplace_matrix);
> 
> 
>       system_matrix.copy_from (mass_matrix);
> 
>    system_matrix.add (theta * time_step * tensor_coefficient,
> laplace_matrix);

This isn't going to work: you can't multiply a matrix after assembly by a 
coefficient unless the coefficient is scalar and constant throughout the 
domain.

The equivalent function to create_*_matrix you are looking for for tensor 
coefficients does not currently exist. You can either take the existing 
functions and create versions that do what you, or you can simply adjust the 
assembly functions from step-6 to include a tensor valued coefficient. The 
latter is probably the simpler avenue, the former would yield a function that 
could be integrated into the library if you wanted.

Best
 W.

-------------------------------------------------------------------------
Wolfgang Bangerth                email:            [email protected]
                                 www: http://www.math.tamu.edu/~bangerth/
_______________________________________________
dealii mailing list http://poisson.dealii.org/mailman/listinfo/dealii

Reply via email to