idaholab / moose

Multiphysics Object Oriented Simulation Environment
https://www.mooseframework.org
GNU Lesser General Public License v2.1
1.76k stars 1.05k forks source link

Segfault occurs for `interpolate_transfers = true` #25656

Open joshuahansel opened 1 year ago

joshuahansel commented 1 year ago

Bug Description

A seg fault occurs when using interpolate_transfers = true in TransientMultiApp. Here is the stack trace:

Assertion `_sys' failed
We should have a system, did you forget to specify any variable in vars?
at /Users/hansje/projects/blue_crab/moose/framework/src/loops/AllLocalDofIndicesThread.C, line 73
Stack frames: 14
0: 0   libmesh_devel.0.dylib               0x000000011aab22a3 libMesh::print_trace(std::__1::basic_ostream<char, std::__1::char_traits<char>>&) + 1091
1: 1   libmoose-devel.0.dylib              0x0000000111ee3ee2 AllLocalDofIndicesThread::operator()(libMesh::StoredRange<libMesh::MeshBase::const_element_iterator, libMesh::Elem const*> const&) + 1394
2: 2   libmoose-devel.0.dylib              0x00000001112f1f7f void libMesh::Threads::parallel_reduce<libMesh::StoredRange<libMesh::MeshBase::const_element_iterator, libMesh::Elem const*>, AllLocalDofIndicesThread>(libMesh::StoredRange<libMesh::MeshBase::const_element_iterator, libMesh::Elem const*> const&, AllLocalDofIndicesThread&) + 79
3: 3   libmoose-devel.0.dylib              0x0000000111cf7078 TransientMultiApp::solveStep(double, double, bool) + 1704
4: 4   libmoose-devel.0.dylib              0x000000011193bd72 FEProblemBase::execMultiApps(MooseEnumItem, bool) + 2050
5: 5   libmoose-devel.0.dylib              0x00000001112f359a FixedPointSolve::solveStep(double&, double&, std::__1::set<unsigned long long, std::__1::less<unsigned long long>, std::__1::allocator<unsigned long long>> const&) + 2538
6: 6   libmoose-devel.0.dylib              0x00000001112f0b8d FixedPointSolve::solve() + 4189
7: 7   libmoose-devel.0.dylib              0x0000000111dd40ab SolutionTimeAdaptiveDT::step() + 43
8: 8   libmoose-devel.0.dylib              0x00000001112f65fb Transient::takeStep(double) + 171
9: 9   libmoose-devel.0.dylib              0x00000001113022a8 Transient::execute() + 104
10: 10  libmoose-devel.0.dylib              0x00000001124dd88c MooseApp::executeExecutioner() + 1388
11: 11  libmoose-devel.0.dylib              0x00000001124d3f5e MooseApp::run() + 3822
12: 12  blue_crab-devel                     0x0000000100012bdb main + 139
13: 13  dyld    

Steps to Reproduce

I need to make a minimum example - I will update this when I do.

Impact

Inability to use this option for some cases.

GiudGiud commented 1 year ago

We should have a system, did you forget to specify any variable in vars?

are you using the user object transfer? This seems to be relying on the variables, so you cant interpolate that