-
Notifications
You must be signed in to change notification settings - Fork 97
Description
Describe the bug
Any input deck attempting to import referencePorosity doesn't work after #1311 .
I haven't checked, but suspect that VTK output of referencePorosity will be invalid for the same reason.
To Reproduce
Steps to reproduce the behavior:
- Run
src/coreComponents/physicsSolvers/fluidFlow/benchmarks/SPE10/dead_oil_spe10_layers_83_84_85.xml - See error
Importing field data from mesh dataset
***** ERROR
***** LOCATION: /home/klevtsov/work/GEOSX-develop/src/coreComponents/common/TypeDispatch.hpp:280
***** Controlling expression (should be false): true
***** Rank 0: Type LvArray::Array<double, 1, camp::int_seq<long, 0l>, long, LvArray::ChaiBuffer> was not dispatched.
Check the stack trace below and revise the type list passed to dispatch().
If you are unsure about this error, please report it to GEOSX issue tracker.
** StackTrace of 5 frames **
Frame 0: geosx::ProblemManager::importFields()
Frame 1: geosx::ProblemManager::problemSetup()
Frame 2: geosx::GeosxState::initializeDataRepository()
Frame 3: main
Frame 4: __libc_start_main
Frame 5: _start
=====
Expected behavior
Should run.
Platform (please complete the following information):
- Machine: any
- Compiler: any
- GEOSX Version:
develop(as ofa23824a6)
Additional context
The problem is due to the fact that external field import assumes every field coming from a material has a quadrature dimension, which holds for all fields except referencePorosity. A simple fix is to make referencePorosity a 2D array but make its second dimension equal to 1. Otherwise, we need to have a conversation about how physics-agnostic code (input/output mainly) is supposed to handle a variety of fields some of which may or may not have the extra dimension.