> mu*du/dt  - d/dx(k*du/dx)  + beta*u = f                                 
>       0 < x < 100
>
> subject to the following BCs:
>
> u(x,0) = 20
> q(0) = 0.1 and
> T(100) = 0

This is not a complete description of the problem. What are your boundary 
conditions? Are the functions mu and k always strictly positive? What 
exactly is your time stepping strategy?


>   total_laplace_matrix.add(1, mass_matrix_zero);

What does this do?


>   VectorTools::project (dof_handler, constraints, QGauss<dim>(3),
> InitialValuesU<dim>(), old_solution_u);

Does the result of this look correct?

>         MatrixTools::apply_boundary_values (boundary_values,
>                         system_matrix,
>                         solution_u,
>                         system_rhs);

This function modifies system_matrix, so it may be correct only in the 
first time step. What happens if you re-generate the system_matrix in each 
time step (using copy_from and add)?

Apart from these comments, there are a million things that can go wrong. 
Your time step may be too large. You may have forgotten a factor of 
time_step or theta in one of your formulas. I'm afraid you'll just have to 
debug things...

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