Dear all,
I am currently intenting to solve the heat equation on a geometry varying with time (to simulate the additive manufacturing of a part).
My simulations also include a local moving heat source responsible of sharp gradients requiring local mesh refinement.
To simulate the additions of the material, I am using an "element birth" technique, which in deal.II translates to :
- Deactivate the cells affecting them a FE_Nothing element
- Activate them using a user-defined function affecting them FE_Q elements
Since my problem involves time dependent hp-refinement since the FE evolves throughout the simulation, I adapted and mixed methods from both step 26 and 27.
The problem that I currently encounter lies in the "refine_mesh" method.
Here is the error message that I get :
--------------------------------------------------------
An error occurred in line <199> of file </home/claire/dealii/include/deal.II/lac/full_matrix.templates.h> in function
void dealii::FullMatrix<number>::vmult(dealii::Vector<OtherNumber>&, const dealii::Vector<OtherNumber>&, bool) const [with number2 = double; number = double]
The violated condition was:
!this->empty()
The name and call sequence of the exception was:
ExcEmptyMatrix()
Additional Information:
(none)
Stacktrace:
-----------
#0 /home/claire/FEM/dealii_update/lib/libdeal_II.g.so.8.4.pre: void dealii::FullMatrix<double>::vmult<double>(dealii::Vector<double>&, dealii::Vector<double> const&, bool) const
#1 /home/claire/FEM/dealii_update/lib/libdeal_II.g.so.8.4.pre: void dealii::DoFCellAccessor<dealii::hp::DoFHandler<2, 2>, false>::get_interpolated_dof_values<dealii::Vector<double>, double>(dealii::Vector<double> const&, dealii::Vector<double>&, unsigned int) const
#2 /home/claire/FEM/dealii_update/lib/libdeal_II.g.so.8.4.pre: void dealii::DoFCellAccessor<dealii::hp::DoFHandler<2, 2>, false>::get_interpolated_dof_values<dealii::Vector<double>, double>(dealii::Vector<double> const&, dealii::Vector<double>&, unsigned int) const
#3 /home/claire/FEM/dealii_update/lib/libdeal_II.g.so.8.4.pre: dealii::SolutionTransfer<2, dealii::Vector<double>, dealii::hp::DoFHandler<2, 2> >::prepare_for_coarsening_and_refinement(std::vector<dealii::Vector<double>, std::allocator<dealii::Vector<double> > > const&)
#4 /home/claire/FEM/dealii_update/lib/libdeal_II.g.so.8.4.pre: dealii::SolutionTransfer<2, dealii::Vector<double>, dealii::hp::DoFHandler<2, 2> >::prepare_for_coarsening_and_refinement(dealii::Vector<double> const&)
#5 /home/claire/FEM/dealii_update/project_apsc/v7/apsc_v7: apsc_v7::HeatEquation<2>::refine_mesh(unsigned int, unsigned int)
#6 /home/claire/FEM/dealii_update/project_apsc/v7/apsc_v7: apsc_v7::HeatEquation<2>::run()
#7 /home/claire/FEM/dealii_update/project_apsc/v7/apsc_v7: main
--------------------------------------------------------
I am using the latest version of deal.II from the git repository.
This error message appears at the first time step where some cells have been tagged for coarsening.
(The first three steps run fine but only involve refinement)
I think that the problem comes from the fact that I use FE_Nothing elements, because when I use only FE_Q (of different orders) elements the simulations run normally.
However I got from this mailing list that the issue has been dealt with before :
https://groups.google.com/forum/#!topic/dealii/pCj05PmL4Z0Actually the test case proposed by K. Bzowski is running just fine.
That is why I feel a little bit clueless about the origin of this error message.
Thank you very much by advance for all the help, clues, suggestions that I may receive.
Regards,
Claire