Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix mapping cartesian update inverse jacobian #5313

Merged
merged 1 commit into from Oct 24, 2017

Conversation

gassmoeller
Copy link
Member

Apparently, nobody tried to compute the inverse jacobian for a MappingCartesian at least since 2015. This bug now comes up, because VectorTools::interpolate since a recent pull request does this for every mapping. This PR fixes a part of geodynamics/aspect#1936, namely the following error:

--------------------------------------------------------
An error occurred in line <965> of file </raid/gassmoel/software/dealii/include/deal.II/base/tensor.h> in function
    dealii::Tensor<rank, dim, T>& dealii::Tensor<rank_, dim, Number>::operator=(const Number&) [with int rank_ = 1; int dim = 2; Number = double]
The violated condition was: 
    d == internal::NumberType<Number>::value(0.0)
Additional information: 
    Only assignment with zero is allowed

Stacktrace:
-----------
#0  /raid/gassmoel/software/deal.II-dev/lib/libdeal_II.g.so.9.0.0-pre: dealii::MappingCartesian<2, 2>::fill_fe_values(dealii::TriaIterator<dealii::CellAccessor<2, 2> > const&, dealii::CellSimilarity::Similarity, dealii::Quadrature<2> const&, dealii::Mapping<2, 2>::InternalDataBase const&, dealii::internal::FEValues::MappingRelatedData<2, 2>&) const
#1  /raid/gassmoel/software/deal.II-dev/lib/libdeal_II.g.so.9.0.0-pre: dealii::FEValues<2, 2>::do_reinit()
#2  /raid/gassmoel/software/deal.II-dev/lib/libdeal_II.g.so.9.0.0-pre: void dealii::FEValues<2, 2>::reinit<dealii::DoFHandler, false>(dealii::TriaIterator<dealii::DoFCellAccessor<dealii::DoFHandler<2, 2>, false> > const&)
#3  /raid/gassmoel/software/deal.II-dev/lib/libdeal_II.g.so.9.0.0-pre: void dealii::hp::FEValues<2, 2>::reinit<dealii::DoFHandler<2, 2>, false>(dealii::TriaIterator<dealii::DoFCellAccessor<dealii::DoFHandler<2, 2>, false> >, unsigned int, unsigned int, unsigned int)
#4  /raid/gassmoel/software/deal.II-dev/lib/libdeal_II.g.so.9.0.0-pre: 
#5  /raid/gassmoel/software/deal.II-dev/lib/libdeal_II.g.so.9.0.0-pre: void dealii::VectorTools::interpolate<2, 2, dealii::TrilinosWrappers::MPI::BlockVector, dealii::DoFHandler>(dealii::Mapping<2, 2> const&, dealii::DoFHandler<2, 2> const&, dealii::Function<2, dealii::TrilinosWrappers::MPI::BlockVector::value_type> const&, dealii::TrilinosWrappers::MPI::BlockVector&, dealii::ComponentMask const&)
#6  ../aspect: aspect::Simulator<2>::set_initial_temperature_and_compositional_fields()
#7  ../aspect: aspect::Simulator<2>::run()
#8  ../aspect: main
--------------------------------------------------------

The other errors in geodynamics/aspect#1936 seem to be caused by a different issue, I will keep looking for those.

@bangerth
Copy link
Member

Oy :-( Can you add a changelog entry?

@bangerth
Copy link
Member

You'll also have to reindent the tests.

/run-tests

@gassmoeller
Copy link
Member Author

Done.

@bangerth
Copy link
Member

OK to merge once the tester is happy.

@kronbichler kronbichler merged commit 0b1e860 into dealii:master Oct 24, 2017
@gassmoeller gassmoeller deleted the fix_mapping_cartesian branch October 24, 2017 19:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants