From bcc0f96b1a02a5f72adef11de4981fcf5fa75fdc Mon Sep 17 00:00:00 2001 From: Francois Hamon Date: Mon, 7 Mar 2022 23:52:58 -0800 Subject: [PATCH 1/3] refactored compflow unit tests --- ...mpositionalMultiphaseBaseExtrinsicData.hpp | 24 + .../fluidFlowTests/testCompFlowUtils.hpp | 575 ++++++++++++++++++ .../fluidFlowTests/testCompMultiphaseFlow.cpp | 453 +------------- .../testCompMultiphaseFlowHybrid.cpp | 102 +--- 4 files changed, 622 insertions(+), 532 deletions(-) diff --git a/src/coreComponents/physicsSolvers/fluidFlow/CompositionalMultiphaseBaseExtrinsicData.hpp b/src/coreComponents/physicsSolvers/fluidFlow/CompositionalMultiphaseBaseExtrinsicData.hpp index 3ef09f864d4..bf9518930b4 100644 --- a/src/coreComponents/physicsSolvers/fluidFlow/CompositionalMultiphaseBaseExtrinsicData.hpp +++ b/src/coreComponents/physicsSolvers/fluidFlow/CompositionalMultiphaseBaseExtrinsicData.hpp @@ -47,6 +47,14 @@ EXTRINSIC_MESH_DATA_TRAIT( temperature, WRITE_AND_READ, "Temperature" ); +EXTRINSIC_MESH_DATA_TRAIT( deltaTemperature, + "deltaTemperature", + array1d< real64 >, + 0, + NOPLOT, + NO_WRITE, + "Accumulated temperature updates" ); + EXTRINSIC_MESH_DATA_TRAIT( globalCompDensity, "globalCompDensity", array2dLayoutComp, @@ -95,6 +103,14 @@ EXTRINSIC_MESH_DATA_TRAIT( dPhaseVolumeFraction_dPressure, NO_WRITE, "Derivative of phase volume fraction with respect to pressure" ); +EXTRINSIC_MESH_DATA_TRAIT( dPhaseVolumeFraction_dTemperature, + "dPhaseVolumeFraction_dTemperature", + array2dLayoutPhase, + 0, + NOPLOT, + NO_WRITE, + "Derivative of phase volume fraction with respect to temperature" ); + EXTRINSIC_MESH_DATA_TRAIT( dPhaseVolumeFraction_dGlobalCompDensity, "dPhaseVolumeFraction_dGlobalCompDensity", array3dLayoutPhase_dC, @@ -119,6 +135,14 @@ EXTRINSIC_MESH_DATA_TRAIT( dPhaseMobility_dPressure, NO_WRITE, "Derivative of phase mobility with respect to pressure" ); +EXTRINSIC_MESH_DATA_TRAIT( dPhaseMobility_dTemperature, + "dPhaseMobility_dTemperature", + array2dLayoutPhase, + 0, + NOPLOT, + NO_WRITE, + "Derivative of phase mobility with respect to temperature" ); + EXTRINSIC_MESH_DATA_TRAIT( dPhaseMobility_dGlobalCompDensity, "dPhaseMobility_dGlobalCompDensity", array3dLayoutPhase_dC, diff --git a/src/coreComponents/unitTests/fluidFlowTests/testCompFlowUtils.hpp b/src/coreComponents/unitTests/fluidFlowTests/testCompFlowUtils.hpp index 340aff5f658..718c429e00e 100644 --- a/src/coreComponents/unitTests/fluidFlowTests/testCompFlowUtils.hpp +++ b/src/coreComponents/unitTests/fluidFlowTests/testCompFlowUtils.hpp @@ -17,9 +17,13 @@ #include "codingUtilities/UnitTestUtilities.hpp" #include "constitutive/ConstitutiveManager.hpp" +#include "constitutive/fluid/MultiFluidBase.hpp" #include "mesh/MeshManager.hpp" #include "mainInterface/ProblemManager.hpp" #include "physicsSolvers/fluidFlow/CompositionalMultiphaseBase.hpp" +#include "physicsSolvers/fluidFlow/CompositionalMultiphaseBaseExtrinsicData.hpp" +#include "physicsSolvers/fluidFlow/CompositionalMultiphaseFVM.hpp" +#include "physicsSolvers/fluidFlow/FlowSolverBaseExtrinsicData.hpp" namespace geosx { @@ -27,6 +31,9 @@ namespace geosx namespace testing { +using namespace geosx::constitutive; +using namespace geosx::constitutive::multifluid; + void checkDerivative( real64 const valueEps, real64 const value, real64 const deriv, @@ -212,6 +219,574 @@ void setupProblemFromXML( ProblemManager & problemManager, char const * const xm problemManager.applyInitialConditions(); } +void testCompositionNumericalDerivatives( CompositionalMultiphaseFVM & solver, + DomainPartition & domain, + real64 const perturbParameter, + real64 const relTol ) +{ + integer const numComp = solver.numFluidComponents(); + + solver.forMeshTargets( domain.getMeshBodies(), + [&]( string const, + MeshLevel & mesh, + arrayView1d< string const > const & regionNames ) + { + ElementRegionManager & elementRegionManager = mesh.getElemManager(); + elementRegionManager.forElementSubRegions( regionNames, + [&]( localIndex const, + ElementSubRegionBase & subRegion ) + { + SCOPED_TRACE( subRegion.getParent().getParent().getName() + "/" + subRegion.getName() ); + + string const & fluidName = subRegion.getReference< string >( CompositionalMultiphaseBase::viewKeyStruct::fluidNamesString() ); + MultiFluidBase const & fluid = subRegion.getConstitutiveModel< MultiFluidBase >( fluidName ); + arrayView1d< string const > const & components = fluid.componentNames(); + + arrayView2d< real64, compflow::USD_COMP > & compDens = + subRegion.getExtrinsicData< extrinsicMeshData::flow::globalCompDensity >(); + + arrayView2d< real64, compflow::USD_COMP > & dCompDens = + subRegion.getExtrinsicData< extrinsicMeshData::flow::deltaGlobalCompDensity >(); + + arrayView2d< real64, compflow::USD_COMP > & compFrac = + subRegion.getExtrinsicData< extrinsicMeshData::flow::globalCompFraction >(); + + arrayView3d< real64, compflow::USD_COMP_DC > & dCompFrac_dCompDens = + subRegion.getExtrinsicData< extrinsicMeshData::flow::dGlobalCompFraction_dGlobalCompDensity >(); + + // reset the solver state to zero out variable updates + solver.resetStateToBeginningOfStep( domain ); + + // make a copy of unperturbed values of component fractions + array2d< real64, compflow::LAYOUT_COMP > compFracOrig( subRegion.size(), numComp ); + compFracOrig.setValues< serialPolicy >( compFrac ); + + // update component density and check derivatives + for( integer jc = 0; jc < numComp; ++jc ) + { + // reset the solver state to zero out variable updates (resetting the whole domain is overkill...) + solver.resetStateToBeginningOfStep( domain ); + + // perturb a single component density in each cell + forAll< serialPolicy >( subRegion.size(), [=] ( localIndex const ei ) + { + real64 const dRho = perturbParameter * ( compDens[ei][jc] + perturbParameter ); + dCompDens[ei][jc] = dRho; + } ); + + // recompute component fractions + solver.updateComponentFraction( subRegion ); + + // check values in each cell + forAll< serialPolicy >( subRegion.size(), [=] ( localIndex const ei ) + { + SCOPED_TRACE( "Element " + std::to_string( ei ) ); + + auto dZ_dRho = invertLayout( dCompFrac_dCompDens[ei].toSliceConst(), numComp, numComp ); + string var = "compDens[" + components[jc] + "]"; + + checkDerivative( compFrac[ei].toSliceConst(), + compFracOrig[ei].toSliceConst(), + dZ_dRho[jc].toSliceConst(), + dCompDens[ei][jc], + relTol, + "compFrac", + var, + components ); + } ); + } + } ); + } ); +} + +void testPhaseVolumeFractionNumericalDerivatives( CompositionalMultiphaseFVM & solver, + DomainPartition & domain, + bool const isThermal, + real64 const perturbParameter, + real64 const relTol ) +{ + integer const numComp = solver.numFluidComponents(); + integer const numPhase = solver.numFluidPhases(); + + solver.forMeshTargets( domain.getMeshBodies(), + [&]( string const, + MeshLevel & mesh, + arrayView1d< string const > const & regionNames ) + { + ElementRegionManager & elementRegionManager = mesh.getElemManager(); + elementRegionManager.forElementSubRegions( regionNames, + [&]( localIndex const, + ElementSubRegionBase & subRegion ) + { + SCOPED_TRACE( subRegion.getParent().getParent().getName() + "/" + subRegion.getName() ); + + string const & fluidName = subRegion.getReference< string >( CompositionalMultiphaseFVM::viewKeyStruct::fluidNamesString() ); + MultiFluidBase const & fluid = subRegion.getConstitutiveModel< MultiFluidBase >( fluidName ); + arrayView1d< string const > const & components = fluid.componentNames(); + arrayView1d< string const > const & phases = fluid.phaseNames(); + + arrayView1d< real64 > & pres = + subRegion.getExtrinsicData< extrinsicMeshData::flow::pressure >(); + + arrayView1d< real64 > & dPres = + subRegion.getExtrinsicData< extrinsicMeshData::flow::deltaPressure >(); + + arrayView2d< real64, compflow::USD_COMP > & compDens = + subRegion.getExtrinsicData< extrinsicMeshData::flow::globalCompDensity >(); + + arrayView2d< real64, compflow::USD_COMP > & dCompDens = + subRegion.getExtrinsicData< extrinsicMeshData::flow::deltaGlobalCompDensity >(); + + arrayView2d< real64, compflow::USD_PHASE > & phaseVolFrac = + subRegion.getExtrinsicData< extrinsicMeshData::flow::phaseVolumeFraction >(); + + arrayView2d< real64, compflow::USD_PHASE > & dPhaseVolFrac_dPres = + subRegion.getExtrinsicData< extrinsicMeshData::flow::dPhaseVolumeFraction_dPressure >(); + + arrayView3d< real64, compflow::USD_PHASE_DC > & dPhaseVolFrac_dCompDens = + subRegion.getExtrinsicData< extrinsicMeshData::flow::dPhaseVolumeFraction_dGlobalCompDensity >(); + + // reset the solver state to zero out variable updates + solver.resetStateToBeginningOfStep( domain ); + + // make a copy of unperturbed values of component fractions + array2d< real64, compflow::LAYOUT_PHASE > phaseVolFracOrig( subRegion.size(), numPhase ); + phaseVolFracOrig.setValues< serialPolicy >( phaseVolFrac ); + + // Step 1: update pressure and check derivatives + + { + // perturb pressure in each cell + forAll< serialPolicy >( subRegion.size(), [=] ( localIndex const ei ) + { + real64 const dP = perturbParameter * ( pres[ei] + perturbParameter ); + dPres[ei] = dP; + } ); + + // recompute component fractions + solver.updateFluidState( subRegion ); + + // check values in each cell + forAll< serialPolicy >( subRegion.size(), [=, &phaseVolFracOrig] ( localIndex const ei ) + { + SCOPED_TRACE( "Element " + std::to_string( ei ) ); + + checkDerivative( phaseVolFrac[ei].toSliceConst(), + phaseVolFracOrig[ei].toSliceConst(), + dPhaseVolFrac_dPres[ei].toSliceConst(), + dPres[ei], + relTol, + "phaseVolFrac", + "Pres", + phases ); + } ); + } + + // Step 2: update component density and check derivatives + + for( integer jc = 0; jc < numComp; ++jc ) + { + // reset the solver state to zero out variable updates (resetting the whole domain is overkill...) + solver.resetStateToBeginningOfStep( domain ); + + // perturb a single component density in each cell + forAll< serialPolicy >( subRegion.size(), [=] ( localIndex const ei ) + { + real64 const dRho = perturbParameter * ( compDens[ei][jc] + perturbParameter ); + dCompDens[ei][jc] = dRho; + } ); + + // recompute component fractions + solver.updateFluidState( subRegion ); + + // check values in each cell + forAll< serialPolicy >( subRegion.size(), [=, &phaseVolFracOrig] ( localIndex const ei ) + { + SCOPED_TRACE( "Element " + std::to_string( ei ) ); + + auto dS_dRho = invertLayout( dPhaseVolFrac_dCompDens[ei].toSliceConst(), numPhase, numComp ); + string var = "compDens[" + components[jc] + "]"; + + checkDerivative( phaseVolFrac[ei].toSliceConst(), + phaseVolFracOrig[ei].toSliceConst(), + dS_dRho[jc].toSliceConst(), + dCompDens[ei][jc], + relTol, + "phaseVolFrac", + var, + phases ); + } ); + } + + // Step 3: update temperature and check derivatives + + if( isThermal ) + { + arrayView1d< real64 > & temp = + subRegion.getExtrinsicData< extrinsicMeshData::flow::temperature >(); + + arrayView1d< real64 > & dTemp = + subRegion.getExtrinsicData< extrinsicMeshData::flow::deltaTemperature >(); + + arrayView2d< real64, compflow::USD_PHASE > & dPhaseVolFrac_dTemp = + subRegion.getExtrinsicData< extrinsicMeshData::flow::dPhaseVolumeFraction_dTemperature >(); + + // perturb pressure in each cell + forAll< serialPolicy >( subRegion.size(), [=] ( localIndex const ei ) + { + real64 const dT = perturbParameter * ( temp[ei] + perturbParameter ); + dTemp[ei] = dT; + } ); + + // recompute component fractions + solver.updateFluidState( subRegion ); + + // check values in each cell + forAll< serialPolicy >( subRegion.size(), [=, &phaseVolFracOrig] ( localIndex const ei ) + { + SCOPED_TRACE( "Element " + std::to_string( ei ) ); + + checkDerivative( phaseVolFrac[ei].toSliceConst(), + phaseVolFracOrig[ei].toSliceConst(), + dPhaseVolFrac_dTemp[ei].toSliceConst(), + dTemp[ei], + relTol, + "phaseVolFrac", + "Temp", + phases ); + } ); + } + + } ); + } ); +} + +void testPhaseMobilityNumericalDerivatives( CompositionalMultiphaseFVM & solver, + DomainPartition & domain, + bool const isThermal, + real64 const perturbParameter, + real64 const relTol ) +{ + integer const numComp = solver.numFluidComponents(); + integer const numPhase = solver.numFluidPhases(); + + solver.forMeshTargets( domain.getMeshBodies(), + [&]( string const, + MeshLevel & mesh, + arrayView1d< string const > const & regionNames ) + { + ElementRegionManager & elementRegionManager = mesh.getElemManager(); + elementRegionManager.forElementSubRegions( regionNames, + [&]( localIndex const, + ElementSubRegionBase & subRegion ) + { + SCOPED_TRACE( subRegion.getParent().getParent().getName() + "/" + subRegion.getName() ); + + string const & fluidName = subRegion.getReference< string >( CompositionalMultiphaseFVM::viewKeyStruct::fluidNamesString() ); + MultiFluidBase const & fluid = subRegion.getConstitutiveModel< MultiFluidBase >( fluidName ); + arrayView1d< string const > const & components = fluid.componentNames(); + arrayView1d< string const > const & phases = fluid.phaseNames(); + + arrayView1d< real64 > & pres = + subRegion.getExtrinsicData< extrinsicMeshData::flow::pressure >(); + + arrayView1d< real64 > & dPres = + subRegion.getExtrinsicData< extrinsicMeshData::flow::deltaPressure >(); + + arrayView2d< real64, compflow::USD_COMP > & compDens = + subRegion.getExtrinsicData< extrinsicMeshData::flow::globalCompDensity >(); + + arrayView2d< real64, compflow::USD_COMP > & dCompDens = + subRegion.getExtrinsicData< extrinsicMeshData::flow::deltaGlobalCompDensity >(); + + arrayView2d< real64, compflow::USD_PHASE > & phaseMob = + subRegion.getExtrinsicData< extrinsicMeshData::flow::phaseMobility >(); + + arrayView2d< real64, compflow::USD_PHASE > & dPhaseMob_dPres = + subRegion.getExtrinsicData< extrinsicMeshData::flow::dPhaseMobility_dPressure >(); + + arrayView3d< real64, compflow::USD_PHASE_DC > & dPhaseMob_dCompDens = + subRegion.getExtrinsicData< extrinsicMeshData::flow::dPhaseMobility_dGlobalCompDensity >(); + + // reset the solver state to zero out variable updates + solver.resetStateToBeginningOfStep( domain ); + + // make a copy of unperturbed values of component fractions + array2d< real64, compflow::LAYOUT_PHASE > phaseMobOrig( subRegion.size(), numPhase ); + phaseMobOrig.setValues< serialPolicy >( phaseMob ); + + // Step 1: update pressure and check derivatives + + { + // perturb pressure in each cell + forAll< serialPolicy >( subRegion.size(), [=] ( localIndex const ei ) + { + real64 const dP = perturbParameter * ( pres[ei] + perturbParameter ); + dPres[ei] = dP; + } ); + + // recompute component fractions + solver.updateFluidState( subRegion ); + + // check values in each cell + forAll< serialPolicy >( subRegion.size(), [=, &phaseMobOrig] ( localIndex const ei ) + { + SCOPED_TRACE( "Element " + std::to_string( ei ) ); + + checkDerivative( phaseMob[ei].toSliceConst(), + phaseMobOrig[ei].toSliceConst(), + dPhaseMob_dPres[ei].toSliceConst(), + dPres[ei], + relTol, + "phaseMob", + "Pres", + phases ); + } ); + } + + // Step 2: update component density and check derivatives + + for( integer jc = 0; jc < numComp; ++jc ) + { + // reset the solver state to zero out variable updates (resetting the whole domain is overkill...) + solver.resetStateToBeginningOfStep( domain ); + + // perturb a single component density in each cell + forAll< serialPolicy >( subRegion.size(), [=] ( localIndex const ei ) + { + real64 const dRho = perturbParameter * ( compDens[ei][jc] + perturbParameter ); + dCompDens[ei][jc] = dRho; + } ); + + // recompute component fractions + solver.updateFluidState( subRegion ); + + // check values in each cell + forAll< serialPolicy >( subRegion.size(), [=, &phaseMobOrig] ( localIndex const ei ) + { + SCOPED_TRACE( "Element " + std::to_string( ei ) ); + + auto dS_dRho = invertLayout( dPhaseMob_dCompDens[ei].toSliceConst(), numPhase, numComp ); + string var = "compDens[" + components[jc] + "]"; + + checkDerivative( phaseMob[ei].toSliceConst(), + phaseMobOrig[ei].toSliceConst(), + dS_dRho[jc].toSliceConst(), + dCompDens[ei][jc], + relTol, + "phaseMob", + var, + phases ); + } ); + } + + // Step 3: update temperature and check derivatives + + if( isThermal ) + { + arrayView1d< real64 > & temp = + subRegion.getExtrinsicData< extrinsicMeshData::flow::temperature >(); + + arrayView1d< real64 > & dTemp = + subRegion.getExtrinsicData< extrinsicMeshData::flow::deltaTemperature >(); + + arrayView2d< real64, compflow::USD_PHASE > & dPhaseMob_dTemp = + subRegion.getExtrinsicData< extrinsicMeshData::flow::dPhaseVolumeFraction_dTemperature >(); + + // perturb pressure in each cell + forAll< serialPolicy >( subRegion.size(), [=] ( localIndex const ei ) + { + real64 const dT = perturbParameter * ( temp[ei] + perturbParameter ); + dTemp[ei] = dT; + } ); + + // recompute component fractions + solver.updateFluidState( subRegion ); + + // check values in each cell + forAll< serialPolicy >( subRegion.size(), [=, &phaseMobOrig] ( localIndex const ei ) + { + SCOPED_TRACE( "Element " + std::to_string( ei ) ); + + checkDerivative( phaseMob[ei].toSliceConst(), + phaseMobOrig[ei].toSliceConst(), + dPhaseMob_dTemp[ei].toSliceConst(), + dTemp[ei], + relTol, + "phaseMob", + "Temp", + phases ); + } ); + } + + } ); + } ); +} + +template< typename COMPOSITIONAL_SOLVER, typename LAMBDA > +void fillCellCenteredNumericalJacobian( COMPOSITIONAL_SOLVER & solver, + DomainPartition & domain, + bool const isThermal, + real64 const perturbParameter, + arrayView1d< real64 > residual, + arrayView1d< real64 > residualOrig, + CRSMatrixView< real64, globalIndex > jacobian, + CRSMatrixView< real64, globalIndex > jacobianFD, + LAMBDA assembleFunction ) +{ + integer const numComp = solver.numFluidComponents(); + + DofManager const & dofManager = solver.getDofManager(); + string const elemDofKey = dofManager.getKey( COMPOSITIONAL_SOLVER::viewKeyStruct::elemDofFieldString() ); + + solver.forMeshTargets( domain.getMeshBodies(), [&] ( string const &, + MeshLevel & mesh, + arrayView1d< string const > const & regionNames ) + { + mesh.getElemManager().forElementSubRegions( regionNames, + [&]( localIndex const, + ElementSubRegionBase & subRegion ) + { + arrayView1d< integer const > const & elemGhostRank = subRegion.ghostRank(); + arrayView1d< globalIndex const > const & elemDofNumber = + subRegion.getReference< array1d< globalIndex > >( elemDofKey ); + + arrayView1d< real64 const > const & pres = + subRegion.getExtrinsicData< extrinsicMeshData::flow::pressure >(); + pres.move( LvArray::MemorySpace::host, false ); + + arrayView1d< real64 > const & dPres = + subRegion.getExtrinsicData< extrinsicMeshData::flow::deltaPressure >(); + + arrayView2d< real64 const, compflow::USD_COMP > const & compDens = + subRegion.getExtrinsicData< extrinsicMeshData::flow::globalCompDensity >(); + compDens.move( LvArray::MemorySpace::host, false ); + + arrayView2d< real64, compflow::USD_COMP > const & dCompDens = + subRegion.getExtrinsicData< extrinsicMeshData::flow::deltaGlobalCompDensity >(); + + for( localIndex ei = 0; ei < subRegion.size(); ++ei ) + { + if( elemGhostRank[ei] >= 0 ) + { + continue; + } + + real64 totalDensity = 0.0; + for( integer ic = 0; ic < numComp; ++ic ) + { + totalDensity += compDens[ei][ic]; + } + + // Step 1: compute numerical derivatives wrt pressure + + { + solver.resetStateToBeginningOfStep( domain ); + + real64 const dP = perturbParameter * ( pres[ei] + perturbParameter ); + dPres.move( LvArray::MemorySpace::host, true ); + dPres[ei] = dP; +#if defined(GEOSX_USE_CUDA) + dPres.move( LvArray::MemorySpace::cuda, false ); +#endif + + + mesh.getElemManager().forElementSubRegions( regionNames, + [&]( localIndex const, + ElementSubRegionBase & subRegion2 ) + { + solver.updateFluidState( subRegion2 ); + } ); + + residual.zero(); + jacobian.zero(); + assembleFunction( jacobian.toViewConstSizes(), residual.toView() ); + + fillNumericalJacobian( residual.toViewConst(), + residualOrig.toViewConst(), + elemDofNumber[ei], + dP, + jacobianFD.toViewConstSizes() ); + } + + // Step 2: compute numerical derivatives wrt component densities + + for( integer jc = 0; jc < numComp; ++jc ) + { + solver.resetStateToBeginningOfStep( domain ); + + real64 const dRho = perturbParameter * totalDensity; + dCompDens.move( LvArray::MemorySpace::host, true ); + dCompDens[ei][jc] = dRho; +#if defined(GEOSX_USE_CUDA) + dCompDens.move( LvArray::MemorySpace::cuda, false ); +#endif + + + mesh.getElemManager().forElementSubRegions( regionNames, + [&]( localIndex const, + ElementSubRegionBase & subRegion2 ) + { + solver.updateFluidState( subRegion2 ); + } ); + + residual.zero(); + jacobian.zero(); + assembleFunction( jacobian.toViewConstSizes(), residual.toView() ); + + fillNumericalJacobian( residual.toViewConst(), + residualOrig.toViewConst(), + elemDofNumber[ei] + jc + 1, + dRho, + jacobianFD.toViewConstSizes() ); + } + + // Step 3: compute numerical derivatives wrt temperature + + if( isThermal ) + { + arrayView1d< real64 const > const & temp = + subRegion.getExtrinsicData< extrinsicMeshData::flow::temperature >(); + temp.move( LvArray::MemorySpace::host, false ); + + arrayView1d< real64 > const & dTemp = + subRegion.getExtrinsicData< extrinsicMeshData::flow::deltaTemperature >(); + + solver.resetStateToBeginningOfStep( domain ); + + real64 const dT = perturbParameter * ( temp[ei] + perturbParameter ); + dTemp.move( LvArray::MemorySpace::host, true ); + dTemp[ei] = dT; +#if defined(GEOSX_USE_CUDA) + dTemp.move( LvArray::MemorySpace::cuda, false ); +#endif + + + mesh.getElemManager().forElementSubRegions( regionNames, + [&]( localIndex const, + ElementSubRegionBase & subRegion2 ) + { + solver.updateFluidState( subRegion2 ); + } ); + + residual.zero(); + jacobian.zero(); + assembleFunction( jacobian.toViewConstSizes(), residual.toView() ); + + fillNumericalJacobian( residual.toViewConst(), + residualOrig.toViewConst(), + elemDofNumber[ei] + numComp + 1, + dT, + jacobianFD.toViewConstSizes() ); + + } + + } + } ); + } ); +} + + } // namespace testing } // namespace geosx diff --git a/src/coreComponents/unitTests/fluidFlowTests/testCompMultiphaseFlow.cpp b/src/coreComponents/unitTests/fluidFlowTests/testCompMultiphaseFlow.cpp index 8fa6270022f..13b9d1304b1 100644 --- a/src/coreComponents/unitTests/fluidFlowTests/testCompMultiphaseFlow.cpp +++ b/src/coreComponents/unitTests/fluidFlowTests/testCompMultiphaseFlow.cpp @@ -152,326 +152,6 @@ char const * xmlInput = // Sphinx end before input XML -void testCompositionNumericalDerivatives( CompositionalMultiphaseFVM & solver, - DomainPartition & domain, - real64 const perturbParameter, - real64 const relTol ) -{ - localIndex const NC = solver.numFluidComponents(); - - - solver.forMeshTargets( domain.getMeshBodies(), - [&]( string const, - MeshLevel & mesh, - arrayView1d< string const > const & regionNames ) - { - ElementRegionManager & elementRegionManager = mesh.getElemManager(); - elementRegionManager.forElementSubRegions( regionNames, - [&]( localIndex const, - ElementSubRegionBase & subRegion ) - { - SCOPED_TRACE( subRegion.getParent().getParent().getName() + "/" + subRegion.getName() ); - - string const & fluidName = subRegion.getReference< string >( CompositionalMultiphaseFVM::viewKeyStruct::fluidNamesString() ); - MultiFluidBase const & fluid = subRegion.getConstitutiveModel< MultiFluidBase >( fluidName ); - arrayView1d< string const > const & components = fluid.componentNames(); - - arrayView2d< real64, compflow::USD_COMP > & compDens = - subRegion.getExtrinsicData< extrinsicMeshData::flow::globalCompDensity >(); - - arrayView2d< real64, compflow::USD_COMP > & dCompDens = - subRegion.getExtrinsicData< extrinsicMeshData::flow::deltaGlobalCompDensity >(); - - arrayView2d< real64, compflow::USD_COMP > & compFrac = - subRegion.getExtrinsicData< extrinsicMeshData::flow::globalCompFraction >(); - - arrayView3d< real64, compflow::USD_COMP_DC > & dCompFrac_dCompDens = - subRegion.getExtrinsicData< extrinsicMeshData::flow::dGlobalCompFraction_dGlobalCompDensity >(); - - // reset the solver state to zero out variable updates - solver.resetStateToBeginningOfStep( domain ); - - // make a copy of unperturbed values of component fractions - array2d< real64, compflow::LAYOUT_COMP > compFracOrig( subRegion.size(), NC ); - compFracOrig.setValues< serialPolicy >( compFrac ); - - // update component density and check derivatives - for( localIndex jc = 0; jc < NC; ++jc ) - { - // reset the solver state to zero out variable updates (resetting the whole domain is overkill...) - solver.resetStateToBeginningOfStep( domain ); - - // perturb a single component density in each cell - forAll< serialPolicy >( subRegion.size(), [=] ( localIndex const ei ) - { - real64 const dRho = perturbParameter * ( compDens[ei][jc] + perturbParameter ); - dCompDens[ei][jc] = dRho; - } ); - - // recompute component fractions - solver.updateComponentFraction( subRegion ); - - // check values in each cell - forAll< serialPolicy >( subRegion.size(), [=] ( localIndex const ei ) - { - SCOPED_TRACE( "Element " + std::to_string( ei ) ); - - auto dZ_dRho = invertLayout( dCompFrac_dCompDens[ei].toSliceConst(), NC, NC ); - string var = "compDens[" + components[jc] + "]"; - - checkDerivative( compFrac[ei].toSliceConst(), - compFracOrig[ei].toSliceConst(), - dZ_dRho[jc].toSliceConst(), - dCompDens[ei][jc], - relTol, - "compFrac", - var, - components ); - } ); - } - } ); - } ); -} - - -void testPhaseVolumeFractionNumericalDerivatives( CompositionalMultiphaseFVM & solver, - DomainPartition & domain, - real64 const perturbParameter, - real64 const relTol ) -{ - localIndex const NC = solver.numFluidComponents(); - localIndex const NP = solver.numFluidPhases(); - - solver.forMeshTargets( domain.getMeshBodies(), - [&]( string const, - MeshLevel & mesh, - arrayView1d< string const > const & regionNames ) - { - ElementRegionManager & elementRegionManager = mesh.getElemManager(); - elementRegionManager.forElementSubRegions( regionNames, - [&]( localIndex const, - ElementSubRegionBase & subRegion ) - { - SCOPED_TRACE( subRegion.getParent().getParent().getName() + "/" + subRegion.getName() ); - - string const & fluidName = subRegion.getReference< string >( CompositionalMultiphaseFVM::viewKeyStruct::fluidNamesString() ); - MultiFluidBase const & fluid = subRegion.getConstitutiveModel< MultiFluidBase >( fluidName ); - arrayView1d< string const > const & components = fluid.componentNames(); - arrayView1d< string const > const & phases = fluid.phaseNames(); - - arrayView1d< real64 > & pres = - subRegion.getExtrinsicData< extrinsicMeshData::flow::pressure >(); - - arrayView1d< real64 > & dPres = - subRegion.getExtrinsicData< extrinsicMeshData::flow::deltaPressure >(); - - arrayView2d< real64, compflow::USD_COMP > & compDens = - subRegion.getExtrinsicData< extrinsicMeshData::flow::globalCompDensity >(); - - arrayView2d< real64, compflow::USD_COMP > & dCompDens = - subRegion.getExtrinsicData< extrinsicMeshData::flow::deltaGlobalCompDensity >(); - - arrayView2d< real64, compflow::USD_PHASE > & phaseVolFrac = - subRegion.getExtrinsicData< extrinsicMeshData::flow::phaseVolumeFraction >(); - - arrayView2d< real64, compflow::USD_PHASE > & dPhaseVolFrac_dPres = - subRegion.getExtrinsicData< extrinsicMeshData::flow::dPhaseVolumeFraction_dPressure >(); - - arrayView3d< real64, compflow::USD_PHASE_DC > & dPhaseVolFrac_dCompDens = - subRegion.getExtrinsicData< extrinsicMeshData::flow::dPhaseVolumeFraction_dGlobalCompDensity >(); - - // reset the solver state to zero out variable updates - solver.resetStateToBeginningOfStep( domain ); - - // make a copy of unperturbed values of component fractions - array2d< real64, compflow::LAYOUT_PHASE > phaseVolFracOrig( subRegion.size(), NP ); - phaseVolFracOrig.setValues< serialPolicy >( phaseVolFrac ); - - // update pressure and check derivatives - { - // perturb pressure in each cell - forAll< serialPolicy >( subRegion.size(), [=] ( localIndex const ei ) - { - real64 const dP = perturbParameter * ( pres[ei] + perturbParameter ); - dPres[ei] = dP; - } ); - - // recompute component fractions - solver.updateFluidState( subRegion ); - - // check values in each cell - forAll< serialPolicy >( subRegion.size(), [=, &phaseVolFracOrig] ( localIndex const ei ) - { - SCOPED_TRACE( "Element " + std::to_string( ei ) ); - - checkDerivative( phaseVolFrac[ei].toSliceConst(), - phaseVolFracOrig[ei].toSliceConst(), - dPhaseVolFrac_dPres[ei].toSliceConst(), - dPres[ei], - relTol, - "phaseVolFrac", - "Pres", - phases ); - } ); - } - - // update component density and check derivatives - for( localIndex jc = 0; jc < NC; ++jc ) - { - // reset the solver state to zero out variable updates (resetting the whole domain is overkill...) - solver.resetStateToBeginningOfStep( domain ); - - // perturb a single component density in each cell - forAll< serialPolicy >( subRegion.size(), [=] ( localIndex const ei ) - { - real64 const dRho = perturbParameter * ( compDens[ei][jc] + perturbParameter ); - dCompDens[ei][jc] = dRho; - } ); - - // recompute component fractions - solver.updateFluidState( subRegion ); - - // check values in each cell - forAll< serialPolicy >( subRegion.size(), [=, &phaseVolFracOrig] ( localIndex const ei ) - { - SCOPED_TRACE( "Element " + std::to_string( ei ) ); - - auto dS_dRho = invertLayout( dPhaseVolFrac_dCompDens[ei].toSliceConst(), NP, NC ); - string var = "compDens[" + components[jc] + "]"; - - checkDerivative( phaseVolFrac[ei].toSliceConst(), - phaseVolFracOrig[ei].toSliceConst(), - dS_dRho[jc].toSliceConst(), - dCompDens[ei][jc], - relTol, - "phaseVolFrac", - var, - phases ); - } ); - } - } ); - } ); -} - -void testPhaseMobilityNumericalDerivatives( CompositionalMultiphaseFVM & solver, - DomainPartition & domain, - real64 const perturbParameter, - real64 const relTol ) -{ - localIndex const NC = solver.numFluidComponents(); - localIndex const NP = solver.numFluidPhases(); - - solver.forMeshTargets( domain.getMeshBodies(), - [&]( string const, - MeshLevel & mesh, - arrayView1d< string const > const & regionNames ) - { - ElementRegionManager & elementRegionManager = mesh.getElemManager(); - elementRegionManager.forElementSubRegions( regionNames, - [&]( localIndex const, - ElementSubRegionBase & subRegion ) - { - SCOPED_TRACE( subRegion.getParent().getParent().getName() + "/" + subRegion.getName() ); - - string const & fluidName = subRegion.getReference< string >( CompositionalMultiphaseFVM::viewKeyStruct::fluidNamesString() ); - MultiFluidBase const & fluid = subRegion.getConstitutiveModel< MultiFluidBase >( fluidName ); - arrayView1d< string const > const & components = fluid.componentNames(); - arrayView1d< string const > const & phases = fluid.phaseNames(); - - arrayView1d< real64 > & pres = - subRegion.getExtrinsicData< extrinsicMeshData::flow::pressure >(); - - arrayView1d< real64 > & dPres = - subRegion.getExtrinsicData< extrinsicMeshData::flow::deltaPressure >(); - - arrayView2d< real64, compflow::USD_COMP > & compDens = - subRegion.getExtrinsicData< extrinsicMeshData::flow::globalCompDensity >(); - - arrayView2d< real64, compflow::USD_COMP > & dCompDens = - subRegion.getExtrinsicData< extrinsicMeshData::flow::deltaGlobalCompDensity >(); - - arrayView2d< real64, compflow::USD_PHASE > & phaseMob = - subRegion.getExtrinsicData< extrinsicMeshData::flow::phaseMobility >(); - - arrayView2d< real64, compflow::USD_PHASE > & dPhaseMob_dPres = - subRegion.getExtrinsicData< extrinsicMeshData::flow::dPhaseMobility_dPressure >(); - - arrayView3d< real64, compflow::USD_PHASE_DC > & dPhaseMob_dCompDens = - subRegion.getExtrinsicData< extrinsicMeshData::flow::dPhaseMobility_dGlobalCompDensity >(); - - // reset the solver state to zero out variable updates - solver.resetStateToBeginningOfStep( domain ); - - // make a copy of unperturbed values of component fractions - array2d< real64, compflow::LAYOUT_PHASE > phaseVolFracOrig( subRegion.size(), NP ); - phaseVolFracOrig.setValues< serialPolicy >( phaseMob ); - - // update pressure and check derivatives - { - // perturb pressure in each cell - forAll< serialPolicy >( subRegion.size(), [=] ( localIndex const ei ) - { - real64 const dP = perturbParameter * ( pres[ei] + perturbParameter ); - dPres[ei] = dP; - } ); - - // recompute component fractions - solver.updateFluidState( subRegion ); - - // check values in each cell - forAll< serialPolicy >( subRegion.size(), [=, &phaseVolFracOrig] ( localIndex const ei ) - { - SCOPED_TRACE( "Element " + std::to_string( ei ) ); - - checkDerivative( phaseMob[ei].toSliceConst(), - phaseVolFracOrig[ei].toSliceConst(), - dPhaseMob_dPres[ei].toSliceConst(), - dPres[ei], - relTol, - "phaseVolFrac", - "Pres", - phases ); - } ); - } - - // update component density and check derivatives - for( localIndex jc = 0; jc < NC; ++jc ) - { - // reset the solver state to zero out variable updates (resetting the whole domain is overkill...) - solver.resetStateToBeginningOfStep( domain ); - - // perturb a single component density in each cell - forAll< serialPolicy >( subRegion.size(), [=] ( localIndex const ei ) - { - real64 const dRho = perturbParameter * ( compDens[ei][jc] + perturbParameter ); - dCompDens[ei][jc] = dRho; - } ); - - // recompute component fractions - solver.updateFluidState( subRegion ); - - // check values in each cell - forAll< serialPolicy >( subRegion.size(), [=, &phaseVolFracOrig] ( localIndex const ei ) - { - SCOPED_TRACE( "Element " + std::to_string( ei ) ); - - auto dS_dRho = invertLayout( dPhaseMob_dCompDens[ei].toSliceConst(), NP, NC ); - string var = "compDens[" + components[jc] + "]"; - - checkDerivative( phaseMob[ei].toSliceConst(), - phaseVolFracOrig[ei].toSliceConst(), - dS_dRho[jc].toSliceConst(), - dCompDens[ei][jc], - relTol, - "phaseMob", - var, - phases ); - } ); - } - } ); - } ); -} - template< typename LAMBDA > void testNumericalJacobian( CompositionalMultiphaseFVM & solver, DomainPartition & domain, @@ -479,11 +159,8 @@ void testNumericalJacobian( CompositionalMultiphaseFVM & solver, real64 const relTol, LAMBDA assembleFunction ) { - localIndex const NC = solver.numFluidComponents(); - CRSMatrix< real64, globalIndex > const & jacobian = solver.getLocalMatrix(); array1d< real64 > residual( jacobian.numRows() ); - DofManager const & dofManager = solver.getDofManager(); // assemble the analytical residual solver.resetStateToBeginningOfStep( domain ); @@ -502,121 +179,16 @@ void testNumericalJacobian( CompositionalMultiphaseFVM & solver, CRSMatrix< real64, globalIndex > jacobianFD( jacobian ); jacobianFD.zero(); - string const dofKey = dofManager.getKey( CompositionalMultiphaseFVM::viewKeyStruct::elemDofFieldString() ); - - solver.forMeshTargets( domain.getMeshBodies(), - [&]( string const, - MeshLevel & mesh, - arrayView1d< string const > const & regionNames ) - { - ElementRegionManager & elementRegionManager = mesh.getElemManager(); - elementRegionManager.forElementSubRegions( regionNames, - [&]( localIndex const, - ElementSubRegionBase & subRegion ) - { - arrayView1d< integer const > const & elemGhostRank = subRegion.ghostRank(); - - arrayView1d< globalIndex const > const & dofNumber = - subRegion.getReference< array1d< globalIndex > >( dofKey ); - - arrayView1d< real64 const > const & pres = - subRegion.getExtrinsicData< extrinsicMeshData::flow::pressure >(); - pres.move( LvArray::MemorySpace::host, false ); - - arrayView1d< real64 > const & dPres = - subRegion.getExtrinsicData< extrinsicMeshData::flow::deltaPressure >(); - - arrayView2d< real64 const, compflow::USD_COMP > const & compDens = - subRegion.getExtrinsicData< extrinsicMeshData::flow::globalCompDensity >(); - compDens.move( LvArray::MemorySpace::host, false ); - - arrayView2d< real64, compflow::USD_COMP > const & dCompDens = - subRegion.getExtrinsicData< extrinsicMeshData::flow::deltaGlobalCompDensity >(); - - for( localIndex ei = 0; ei < subRegion.size(); ++ei ) - { - if( elemGhostRank[ei] >= 0 ) - { - continue; - } - - real64 totalDensity = 0.0; - for( localIndex ic = 0; ic < NC; ++ic ) - { - totalDensity += compDens[ei][ic]; - } - - { - solver.resetStateToBeginningOfStep( domain ); - - real64 const dP = perturbParameter * ( pres[ei] + perturbParameter ); - dPres.move( LvArray::MemorySpace::host, true ); - dPres[ei] = dP; -#if defined(GEOSX_USE_CUDA) - dPres.move( LvArray::MemorySpace::cuda, false ); -#endif - - - solver.forMeshTargets( domain.getMeshBodies(), - [&]( string const, - MeshLevel & mesh2, - arrayView1d< string const > const & regionNames2 ) - { - ElementRegionManager & elementRegionManager2 = mesh2.getElemManager(); - elementRegionManager2.forElementSubRegions( regionNames2, - [&]( localIndex const, - ElementSubRegionBase & subRegion2 ) - { - solver.updateFluidState( subRegion2 ); - } ); - } ); - - residual.zero(); - jacobian.zero(); - assembleFunction( jacobian.toViewConstSizes(), residual.toView() ); - - fillNumericalJacobian( residual.toViewConst(), - residualOrig.toViewConst(), - dofNumber[ei], - dP, - jacobianFD.toViewConstSizes() ); - } - - for( localIndex jc = 0; jc < NC; ++jc ) - { - solver.resetStateToBeginningOfStep( domain ); - - real64 const dRho = perturbParameter * totalDensity; - dCompDens.move( LvArray::MemorySpace::host, true ); - dCompDens[ei][jc] = dRho; - - solver.forMeshTargets( domain.getMeshBodies(), - [&]( string const, - MeshLevel & mesh2, - arrayView1d< string const > const & regionNames2 ) - { - ElementRegionManager & elementRegionManager2 = mesh2.getElemManager(); - elementRegionManager2.forElementSubRegions( regionNames2, - [&]( localIndex const, - ElementSubRegionBase & subRegion2 ) - { - solver.updateFluidState( subRegion2 ); - } ); - } ); - - residual.zero(); - jacobian.zero(); - assembleFunction( jacobian.toViewConstSizes(), residual.toView() ); - - fillNumericalJacobian( residual.toViewConst(), - residualOrig.toViewConst(), - dofNumber[ei] + jc + 1, - dRho, - jacobianFD.toViewConstSizes() ); - } - } - } ); - } ); + // fill jacobian FD + fillCellCenteredNumericalJacobian( solver, + domain, + false, + perturbParameter, + residual.toView(), + residualOrig.toView(), + jacobian.toView(), + jacobianFD.toView(), + assembleFunction ); // assemble the analytical jacobian solver.resetStateToBeginningOfStep( domain ); @@ -682,7 +254,7 @@ TEST_F( CompositionalMultiphaseFlowTest, derivativeNumericalCheck_phaseVolumeFra real64 const tol = 5e-2; // 5% error margin DomainPartition & domain = state.getProblemManager().getDomainPartition(); - testPhaseVolumeFractionNumericalDerivatives( *solver, domain, perturb, tol ); + testPhaseVolumeFractionNumericalDerivatives( *solver, domain, false, perturb, tol ); } TEST_F( CompositionalMultiphaseFlowTest, derivativeNumericalCheck_phaseMobility ) @@ -692,7 +264,7 @@ TEST_F( CompositionalMultiphaseFlowTest, derivativeNumericalCheck_phaseMobility DomainPartition & domain = state.getProblemManager().getDomainPartition(); - testPhaseMobilityNumericalDerivatives( *solver, domain, perturb, tol ); + testPhaseMobilityNumericalDerivatives( *solver, domain, false, perturb, tol ); } TEST_F( CompositionalMultiphaseFlowTest, jacobianNumericalCheck_flux ) @@ -736,7 +308,6 @@ int main( int argc, char * * argv ) { ::testing::InitGoogleTest( &argc, argv ); g_commandLineOptions = *geosx::basicSetup( argc, argv ); -// chai::ArrayManager::getInstance()->disableCallbacks(); int const result = RUN_ALL_TESTS(); geosx::basicCleanup(); return result; diff --git a/src/coreComponents/unitTests/fluidFlowTests/testCompMultiphaseFlowHybrid.cpp b/src/coreComponents/unitTests/fluidFlowTests/testCompMultiphaseFlowHybrid.cpp index 1c6c9cae452..90f0521e8f6 100644 --- a/src/coreComponents/unitTests/fluidFlowTests/testCompMultiphaseFlowHybrid.cpp +++ b/src/coreComponents/unitTests/fluidFlowTests/testCompMultiphaseFlowHybrid.cpp @@ -161,8 +161,6 @@ void testNumericalJacobian( CompositionalMultiphaseHybridFVM & solver, real64 const relTol, LAMBDA assembleFunction ) { - localIndex const NC = solver.numFluidComponents(); - CRSMatrix< real64, globalIndex > const & jacobian = solver.getLocalMatrix(); array1d< real64 > residual( jacobian.numRows() ); DofManager const & dofManager = solver.getDofManager(); @@ -184,99 +182,21 @@ void testNumericalJacobian( CompositionalMultiphaseHybridFVM & solver, CRSMatrix< real64, globalIndex > jacobianFD( jacobian ); jacobianFD.zero(); - string const elemDofKey = dofManager.getKey( CompositionalMultiphaseHybridFVM::viewKeyStruct::elemDofFieldString() ); + // fill jacobian FD for cell centered variables + fillCellCenteredNumericalJacobian( solver, + domain, + false, + perturbParameter, + residual.toView(), + residualOrig.toView(), + jacobian.toView(), + jacobianFD.toView(), + assembleFunction ); solver.forMeshTargets( domain.getMeshBodies(), [&] ( string const &, MeshLevel & mesh, - arrayView1d< string const > const & regionNames ) + arrayView1d< string const > const & ) { - mesh.getElemManager().forElementSubRegions( regionNames, - [&]( localIndex const, - ElementSubRegionBase & subRegion ) - { - arrayView1d< integer const > const & elemGhostRank = subRegion.ghostRank(); - arrayView1d< globalIndex const > const & elemDofNumber = - subRegion.getReference< array1d< globalIndex > >( elemDofKey ); - - arrayView1d< real64 const > const & pres = - subRegion.getExtrinsicData< extrinsicMeshData::flow::pressure >(); - pres.move( LvArray::MemorySpace::host, false ); - - arrayView1d< real64 > const & dPres = - subRegion.getExtrinsicData< extrinsicMeshData::flow::deltaPressure >(); - - arrayView2d< real64 const, compflow::USD_COMP > const & compDens = - subRegion.getExtrinsicData< extrinsicMeshData::flow::globalCompDensity >(); - compDens.move( LvArray::MemorySpace::host, false ); - - arrayView2d< real64, compflow::USD_COMP > const & dCompDens = - subRegion.getExtrinsicData< extrinsicMeshData::flow::deltaGlobalCompDensity >(); - - for( localIndex ei = 0; ei < subRegion.size(); ++ei ) - { - if( elemGhostRank[ei] >= 0 ) - { - continue; - } - - real64 totalDensity = 0.0; - for( localIndex ic = 0; ic < NC; ++ic ) - { - totalDensity += compDens[ei][ic]; - } - - { - solver.resetStateToBeginningOfStep( domain ); - - real64 const dP = perturbParameter * ( pres[ei] + perturbParameter ); - dPres.move( LvArray::MemorySpace::host, true ); - dPres[ei] = dP; - - mesh.getElemManager().forElementSubRegions( regionNames, - [&]( localIndex const, - ElementSubRegionBase & subRegion2 ) - { - solver.updateFluidState( subRegion2 ); - } ); - - residual.zero(); - jacobian.zero(); - assembleFunction( jacobian.toViewConstSizes(), residual.toView() ); - - fillNumericalJacobian( residual.toViewConst(), - residualOrig.toViewConst(), - elemDofNumber[ei], - dP, - jacobianFD.toViewConstSizes() ); - } - - for( localIndex jc = 0; jc < NC; ++jc ) - { - solver.resetStateToBeginningOfStep( domain ); - - real64 const dRho = perturbParameter * totalDensity; - dCompDens.move( LvArray::MemorySpace::host, true ); - dCompDens[ei][jc] = dRho; - - mesh.getElemManager().forElementSubRegions( regionNames, - [&]( localIndex const, - ElementSubRegionBase & subRegion2 ) - { - solver.updateFluidState( subRegion2 ); - } ); - - residual.zero(); - jacobian.zero(); - assembleFunction( jacobian.toViewConstSizes(), residual.toView() ); - - fillNumericalJacobian( residual.toViewConst(), - residualOrig.toViewConst(), - elemDofNumber[ei] + jc + 1, - dRho, - jacobianFD.toViewConstSizes() ); - } - } - } ); FaceManager & faceManager = mesh.getFaceManager(); From 9a05d6ea2f0ab4e0095d20bb92fab2e4c76173db Mon Sep 17 00:00:00 2001 From: Francois Hamon Date: Tue, 8 Mar 2022 09:36:16 -0800 Subject: [PATCH 2/3] removed references in testCompFlowUtils.hpp --- .../schema/docs/AcousticSEM_other.rst | 19 ------ .../docs/CompositionalMultiphaseFVM_other.rst | 16 ++--- ...CompositionalMultiphaseHybridFVM_other.rst | 20 +++---- ...CompositionalMultiphaseReservoir_other.rst | 18 +++--- .../CompositionalMultiphaseWell_other.rst | 20 +++---- .../docs/EmbeddedSurfaceGenerator_other.rst | 20 +++---- .../docs/FlowProppantTransport_other.rst | 18 +++--- .../schema/docs/Hydrofracture_other.rst | 16 ++--- .../schema/docs/LagrangianContact_other.rst | 18 +++--- .../schema/docs/LaplaceFEM_other.rst | 16 ++--- .../docs/MultiphasePoromechanics_other.rst | 16 ++--- .../schema/docs/PhaseFieldDamageFEM_other.rst | 16 ++--- .../schema/docs/PhaseFieldFracture_other.rst | 16 ++--- .../schema/docs/ProppantTransport_other.rst | 16 ++--- .../schema/docs/SinglePhaseFVM_other.rst | 16 ++--- .../docs/SinglePhaseHybridFVM_other.rst | 18 +++--- ...sePoromechanicsEmbeddedFractures_other.rst | 18 +++--- .../docs/SinglePhasePoromechanics_other.rst | 16 ++--- .../docs/SinglePhaseProppantFVM_other.rst | 16 ++--- .../docs/SinglePhaseReservoir_other.rst | 18 +++--- .../schema/docs/SinglePhaseWell_other.rst | 20 +++---- .../SolidMechanicsEmbeddedFractures_other.rst | 18 +++--- .../SolidMechanicsLagrangianSSLE_other.rst | 18 +++--- .../SolidMechanics_LagrangianFEM_other.rst | 18 +++--- .../schema/docs/SurfaceGenerator_other.rst | 28 ++++----- .../docs/TwoPointFluxApproximation_other.rst | 22 +++---- src/coreComponents/schema/schema.xsd.other | 52 ++++++++-------- .../fluidFlowTests/testCompFlowUtils.hpp | 60 +++++++++---------- 28 files changed, 282 insertions(+), 301 deletions(-) diff --git a/src/coreComponents/schema/docs/AcousticSEM_other.rst b/src/coreComponents/schema/docs/AcousticSEM_other.rst index 8e86bf30957..d9adbd7cab9 100644 --- a/src/coreComponents/schema/docs/AcousticSEM_other.rst +++ b/src/coreComponents/schema/docs/AcousticSEM_other.rst @@ -1,23 +1,5 @@ -<<<<<<< HEAD -========================= ==================================================================================================================================================== ======================================================================= -Name Type Description -========================= ==================================================================================================================================================== ======================================================================= -indexSeismoTrace localIndex Count for output pressure at receivers -maxStableDt real64 Value of the Maximum Stable Timestep for this solver. -meshTargets geosx_mapBase< std_string, LvArray_Array< std_string, 1, camp_int_seq< long, 0l >, long, LvArray_ChaiBuffer >, std_integral_constant< bool, true > > MeshBody/Region combinations that the solver will be applied to. -pressureNp1AtReceivers real64_array2d Pressure value at each receiver for each timestep -receiverIsLocal localIndex_array Flag that indicates whether the receiver is local to this MPI rank -receiverNodeIds localIndex_array2d Indices of the nodes (in the right order) for each receiver point -sourceConstants real64_array2d Constant part of the receiver for the nodes listed in m_receiverNodeIds -sourceIsLocal localIndex_array Flag that indicates whether the source is local to this MPI rank -sourceNodeIds localIndex_array2d Indices of the nodes (in the right order) for each source point -sourceValue real64_array2d Source Value of the sources -LinearSolverParameters node :ref:`DATASTRUCTURE_LinearSolverParameters` -NonlinearSolverParameters node :ref:`DATASTRUCTURE_NonlinearSolverParameters` -========================= ==================================================================================================================================================== ======================================================================= -======= ========================= ================================================================================================================================================================================================================================================================================================ ======================================================================= Name Type Description ========================= ================================================================================================================================================================================================================================================================================================ ======================================================================= @@ -34,6 +16,5 @@ sourceValue real64_array2d LinearSolverParameters node :ref:`DATASTRUCTURE_LinearSolverParameters` NonlinearSolverParameters node :ref:`DATASTRUCTURE_NonlinearSolverParameters` ========================= ================================================================================================================================================================================================================================================================================================ ======================================================================= ->>>>>>> origin/develop diff --git a/src/coreComponents/schema/docs/CompositionalMultiphaseFVM_other.rst b/src/coreComponents/schema/docs/CompositionalMultiphaseFVM_other.rst index 0bb28c58e3d..b1013a1daef 100644 --- a/src/coreComponents/schema/docs/CompositionalMultiphaseFVM_other.rst +++ b/src/coreComponents/schema/docs/CompositionalMultiphaseFVM_other.rst @@ -1,12 +1,12 @@ -========================= ==================================================================================================================================================== ================================================================ -Name Type Description -========================= ==================================================================================================================================================== ================================================================ -maxStableDt real64 Value of the Maximum Stable Timestep for this solver. -meshTargets geosx_mapBase< std_string, LvArray_Array< std_string, 1, camp_int_seq< long, 0l >, long, LvArray_ChaiBuffer >, std_integral_constant< bool, true > > MeshBody/Region combinations that the solver will be applied to. -LinearSolverParameters node :ref:`DATASTRUCTURE_LinearSolverParameters` -NonlinearSolverParameters node :ref:`DATASTRUCTURE_NonlinearSolverParameters` -========================= ==================================================================================================================================================== ================================================================ +========================= ================================================================================================================================================================================================================================================================================================ ================================================================ +Name Type Description +========================= ================================================================================================================================================================================================================================================================================================ ================================================================ +maxStableDt real64 Value of the Maximum Stable Timestep for this solver. +meshTargets geosx_mapBase< std___cxx11_basic_string< char, std_char_traits< char >, std_allocator< char > >, LvArray_Array< std___cxx11_basic_string< char, std_char_traits< char >, std_allocator< char > >, 1, camp_int_seq< long, 0l >, long, LvArray_ChaiBuffer >, std_integral_constant< bool, true > > MeshBody/Region combinations that the solver will be applied to. +LinearSolverParameters node :ref:`DATASTRUCTURE_LinearSolverParameters` +NonlinearSolverParameters node :ref:`DATASTRUCTURE_NonlinearSolverParameters` +========================= ================================================================================================================================================================================================================================================================================================ ================================================================ diff --git a/src/coreComponents/schema/docs/CompositionalMultiphaseHybridFVM_other.rst b/src/coreComponents/schema/docs/CompositionalMultiphaseHybridFVM_other.rst index f3eb330d55b..ef9d0121261 100644 --- a/src/coreComponents/schema/docs/CompositionalMultiphaseHybridFVM_other.rst +++ b/src/coreComponents/schema/docs/CompositionalMultiphaseHybridFVM_other.rst @@ -1,14 +1,14 @@ -========================= ==================================================================================================================================================== ================================ ================================================================ -Name Type Registered On Description -========================= ==================================================================================================================================================== ================================ ================================================================ -maxStableDt real64 Value of the Maximum Stable Timestep for this solver. -meshTargets geosx_mapBase< std_string, LvArray_Array< std_string, 1, camp_int_seq< long, 0l >, long, LvArray_ChaiBuffer >, std_integral_constant< bool, true > > MeshBody/Region combinations that the solver will be applied to. -deltaFacePressure real64_array :ref:`DATASTRUCTURE_FaceManager` Accumulated face pressure updates -mimGravityCoefficient real64_array :ref:`DATASTRUCTURE_FaceManager` Mimetic gravity coefficient -LinearSolverParameters node :ref:`DATASTRUCTURE_LinearSolverParameters` -NonlinearSolverParameters node :ref:`DATASTRUCTURE_NonlinearSolverParameters` -========================= ==================================================================================================================================================== ================================ ================================================================ +========================= ================================================================================================================================================================================================================================================================================================ ================================ ================================================================ +Name Type Registered On Description +========================= ================================================================================================================================================================================================================================================================================================ ================================ ================================================================ +maxStableDt real64 Value of the Maximum Stable Timestep for this solver. +meshTargets geosx_mapBase< std___cxx11_basic_string< char, std_char_traits< char >, std_allocator< char > >, LvArray_Array< std___cxx11_basic_string< char, std_char_traits< char >, std_allocator< char > >, 1, camp_int_seq< long, 0l >, long, LvArray_ChaiBuffer >, std_integral_constant< bool, true > > MeshBody/Region combinations that the solver will be applied to. +deltaFacePressure real64_array :ref:`DATASTRUCTURE_FaceManager` Accumulated face pressure updates +mimGravityCoefficient real64_array :ref:`DATASTRUCTURE_FaceManager` Mimetic gravity coefficient +LinearSolverParameters node :ref:`DATASTRUCTURE_LinearSolverParameters` +NonlinearSolverParameters node :ref:`DATASTRUCTURE_NonlinearSolverParameters` +========================= ================================================================================================================================================================================================================================================================================================ ================================ ================================================================ diff --git a/src/coreComponents/schema/docs/CompositionalMultiphaseReservoir_other.rst b/src/coreComponents/schema/docs/CompositionalMultiphaseReservoir_other.rst index 79f366b460c..6b5401e3808 100644 --- a/src/coreComponents/schema/docs/CompositionalMultiphaseReservoir_other.rst +++ b/src/coreComponents/schema/docs/CompositionalMultiphaseReservoir_other.rst @@ -1,13 +1,13 @@ -========================= ==================================================================================================================================================== ======================================================================================================================================================================================================================================================================================================================== -Name Type Description -========================= ==================================================================================================================================================== ======================================================================================================================================================================================================================================================================================================================== -discretization string Name of discretization object (defined in the :ref:`NumericalMethodsManager`) to use for this solver. For instance, if this is a Finite Element Solver, the name of a :ref:`FiniteElement` should be specified. If this is a Finite Volume Method, the name of a :ref:`FiniteVolume` discretization should be specified. -maxStableDt real64 Value of the Maximum Stable Timestep for this solver. -meshTargets geosx_mapBase< std_string, LvArray_Array< std_string, 1, camp_int_seq< long, 0l >, long, LvArray_ChaiBuffer >, std_integral_constant< bool, true > > MeshBody/Region combinations that the solver will be applied to. -LinearSolverParameters node :ref:`DATASTRUCTURE_LinearSolverParameters` -NonlinearSolverParameters node :ref:`DATASTRUCTURE_NonlinearSolverParameters` -========================= ==================================================================================================================================================== ======================================================================================================================================================================================================================================================================================================================== +========================= ================================================================================================================================================================================================================================================================================================ ======================================================================================================================================================================================================================================================================================================================== +Name Type Description +========================= ================================================================================================================================================================================================================================================================================================ ======================================================================================================================================================================================================================================================================================================================== +discretization string Name of discretization object (defined in the :ref:`NumericalMethodsManager`) to use for this solver. For instance, if this is a Finite Element Solver, the name of a :ref:`FiniteElement` should be specified. If this is a Finite Volume Method, the name of a :ref:`FiniteVolume` discretization should be specified. +maxStableDt real64 Value of the Maximum Stable Timestep for this solver. +meshTargets geosx_mapBase< std___cxx11_basic_string< char, std_char_traits< char >, std_allocator< char > >, LvArray_Array< std___cxx11_basic_string< char, std_char_traits< char >, std_allocator< char > >, 1, camp_int_seq< long, 0l >, long, LvArray_ChaiBuffer >, std_integral_constant< bool, true > > MeshBody/Region combinations that the solver will be applied to. +LinearSolverParameters node :ref:`DATASTRUCTURE_LinearSolverParameters` +NonlinearSolverParameters node :ref:`DATASTRUCTURE_NonlinearSolverParameters` +========================= ================================================================================================================================================================================================================================================================================================ ======================================================================================================================================================================================================================================================================================================================== diff --git a/src/coreComponents/schema/docs/CompositionalMultiphaseWell_other.rst b/src/coreComponents/schema/docs/CompositionalMultiphaseWell_other.rst index c874012cc75..4c4d1c5ebf9 100644 --- a/src/coreComponents/schema/docs/CompositionalMultiphaseWell_other.rst +++ b/src/coreComponents/schema/docs/CompositionalMultiphaseWell_other.rst @@ -1,14 +1,14 @@ -========================= ==================================================================================================================================================== ======================================================================================================================================================================================================================================================================================================================== -Name Type Description -========================= ==================================================================================================================================================== ======================================================================================================================================================================================================================================================================================================================== -discretization string Name of discretization object (defined in the :ref:`NumericalMethodsManager`) to use for this solver. For instance, if this is a Finite Element Solver, the name of a :ref:`FiniteElement` should be specified. If this is a Finite Volume Method, the name of a :ref:`FiniteVolume` discretization should be specified. -maxStableDt real64 Value of the Maximum Stable Timestep for this solver. -meshTargets geosx_mapBase< std_string, LvArray_Array< std_string, 1, camp_int_seq< long, 0l >, long, LvArray_ChaiBuffer >, std_integral_constant< bool, true > > MeshBody/Region combinations that the solver will be applied to. -LinearSolverParameters node :ref:`DATASTRUCTURE_LinearSolverParameters` -NonlinearSolverParameters node :ref:`DATASTRUCTURE_NonlinearSolverParameters` -WellControls node :ref:`DATASTRUCTURE_WellControls` -========================= ==================================================================================================================================================== ======================================================================================================================================================================================================================================================================================================================== +========================= ================================================================================================================================================================================================================================================================================================ ======================================================================================================================================================================================================================================================================================================================== +Name Type Description +========================= ================================================================================================================================================================================================================================================================================================ ======================================================================================================================================================================================================================================================================================================================== +discretization string Name of discretization object (defined in the :ref:`NumericalMethodsManager`) to use for this solver. For instance, if this is a Finite Element Solver, the name of a :ref:`FiniteElement` should be specified. If this is a Finite Volume Method, the name of a :ref:`FiniteVolume` discretization should be specified. +maxStableDt real64 Value of the Maximum Stable Timestep for this solver. +meshTargets geosx_mapBase< std___cxx11_basic_string< char, std_char_traits< char >, std_allocator< char > >, LvArray_Array< std___cxx11_basic_string< char, std_char_traits< char >, std_allocator< char > >, 1, camp_int_seq< long, 0l >, long, LvArray_ChaiBuffer >, std_integral_constant< bool, true > > MeshBody/Region combinations that the solver will be applied to. +LinearSolverParameters node :ref:`DATASTRUCTURE_LinearSolverParameters` +NonlinearSolverParameters node :ref:`DATASTRUCTURE_NonlinearSolverParameters` +WellControls node :ref:`DATASTRUCTURE_WellControls` +========================= ================================================================================================================================================================================================================================================================================================ ======================================================================================================================================================================================================================================================================================================================== diff --git a/src/coreComponents/schema/docs/EmbeddedSurfaceGenerator_other.rst b/src/coreComponents/schema/docs/EmbeddedSurfaceGenerator_other.rst index eca234de54d..f5aedfb6b67 100644 --- a/src/coreComponents/schema/docs/EmbeddedSurfaceGenerator_other.rst +++ b/src/coreComponents/schema/docs/EmbeddedSurfaceGenerator_other.rst @@ -1,14 +1,14 @@ -========================= ==================================================================================================================================================== ================================================ ======================================================================================================================================================================================================================================================================================================================== -Name Type Registered On Description -========================= ==================================================================================================================================================== ================================================ ======================================================================================================================================================================================================================================================================================================================== -discretization string Name of discretization object (defined in the :ref:`NumericalMethodsManager`) to use for this solver. For instance, if this is a Finite Element Solver, the name of a :ref:`FiniteElement` should be specified. If this is a Finite Volume Method, the name of a :ref:`FiniteVolume` discretization should be specified. -maxStableDt real64 Value of the Maximum Stable Timestep for this solver. -meshTargets geosx_mapBase< std_string, LvArray_Array< std_string, 1, camp_int_seq< long, 0l >, long, LvArray_ChaiBuffer >, std_integral_constant< bool, true > > MeshBody/Region combinations that the solver will be applied to. -parentEdgeIndex localIndex_array :ref:`DATASTRUCTURE_embeddedSurfacesNodeManager` Index of parent edge within the mesh object it is registered on. -LinearSolverParameters node :ref:`DATASTRUCTURE_LinearSolverParameters` -NonlinearSolverParameters node :ref:`DATASTRUCTURE_NonlinearSolverParameters` -========================= ==================================================================================================================================================== ================================================ ======================================================================================================================================================================================================================================================================================================================== +========================= ================================================================================================================================================================================================================================================================================================ ================================================ ======================================================================================================================================================================================================================================================================================================================== +Name Type Registered On Description +========================= ================================================================================================================================================================================================================================================================================================ ================================================ ======================================================================================================================================================================================================================================================================================================================== +discretization string Name of discretization object (defined in the :ref:`NumericalMethodsManager`) to use for this solver. For instance, if this is a Finite Element Solver, the name of a :ref:`FiniteElement` should be specified. If this is a Finite Volume Method, the name of a :ref:`FiniteVolume` discretization should be specified. +maxStableDt real64 Value of the Maximum Stable Timestep for this solver. +meshTargets geosx_mapBase< std___cxx11_basic_string< char, std_char_traits< char >, std_allocator< char > >, LvArray_Array< std___cxx11_basic_string< char, std_char_traits< char >, std_allocator< char > >, 1, camp_int_seq< long, 0l >, long, LvArray_ChaiBuffer >, std_integral_constant< bool, true > > MeshBody/Region combinations that the solver will be applied to. +parentEdgeIndex localIndex_array :ref:`DATASTRUCTURE_embeddedSurfacesNodeManager` Index of parent edge within the mesh object it is registered on. +LinearSolverParameters node :ref:`DATASTRUCTURE_LinearSolverParameters` +NonlinearSolverParameters node :ref:`DATASTRUCTURE_NonlinearSolverParameters` +========================= ================================================================================================================================================================================================================================================================================================ ================================================ ======================================================================================================================================================================================================================================================================================================================== diff --git a/src/coreComponents/schema/docs/FlowProppantTransport_other.rst b/src/coreComponents/schema/docs/FlowProppantTransport_other.rst index 79f366b460c..6b5401e3808 100644 --- a/src/coreComponents/schema/docs/FlowProppantTransport_other.rst +++ b/src/coreComponents/schema/docs/FlowProppantTransport_other.rst @@ -1,13 +1,13 @@ -========================= ==================================================================================================================================================== ======================================================================================================================================================================================================================================================================================================================== -Name Type Description -========================= ==================================================================================================================================================== ======================================================================================================================================================================================================================================================================================================================== -discretization string Name of discretization object (defined in the :ref:`NumericalMethodsManager`) to use for this solver. For instance, if this is a Finite Element Solver, the name of a :ref:`FiniteElement` should be specified. If this is a Finite Volume Method, the name of a :ref:`FiniteVolume` discretization should be specified. -maxStableDt real64 Value of the Maximum Stable Timestep for this solver. -meshTargets geosx_mapBase< std_string, LvArray_Array< std_string, 1, camp_int_seq< long, 0l >, long, LvArray_ChaiBuffer >, std_integral_constant< bool, true > > MeshBody/Region combinations that the solver will be applied to. -LinearSolverParameters node :ref:`DATASTRUCTURE_LinearSolverParameters` -NonlinearSolverParameters node :ref:`DATASTRUCTURE_NonlinearSolverParameters` -========================= ==================================================================================================================================================== ======================================================================================================================================================================================================================================================================================================================== +========================= ================================================================================================================================================================================================================================================================================================ ======================================================================================================================================================================================================================================================================================================================== +Name Type Description +========================= ================================================================================================================================================================================================================================================================================================ ======================================================================================================================================================================================================================================================================================================================== +discretization string Name of discretization object (defined in the :ref:`NumericalMethodsManager`) to use for this solver. For instance, if this is a Finite Element Solver, the name of a :ref:`FiniteElement` should be specified. If this is a Finite Volume Method, the name of a :ref:`FiniteVolume` discretization should be specified. +maxStableDt real64 Value of the Maximum Stable Timestep for this solver. +meshTargets geosx_mapBase< std___cxx11_basic_string< char, std_char_traits< char >, std_allocator< char > >, LvArray_Array< std___cxx11_basic_string< char, std_char_traits< char >, std_allocator< char > >, 1, camp_int_seq< long, 0l >, long, LvArray_ChaiBuffer >, std_integral_constant< bool, true > > MeshBody/Region combinations that the solver will be applied to. +LinearSolverParameters node :ref:`DATASTRUCTURE_LinearSolverParameters` +NonlinearSolverParameters node :ref:`DATASTRUCTURE_NonlinearSolverParameters` +========================= ================================================================================================================================================================================================================================================================================================ ======================================================================================================================================================================================================================================================================================================================== diff --git a/src/coreComponents/schema/docs/Hydrofracture_other.rst b/src/coreComponents/schema/docs/Hydrofracture_other.rst index 0bb28c58e3d..b1013a1daef 100644 --- a/src/coreComponents/schema/docs/Hydrofracture_other.rst +++ b/src/coreComponents/schema/docs/Hydrofracture_other.rst @@ -1,12 +1,12 @@ -========================= ==================================================================================================================================================== ================================================================ -Name Type Description -========================= ==================================================================================================================================================== ================================================================ -maxStableDt real64 Value of the Maximum Stable Timestep for this solver. -meshTargets geosx_mapBase< std_string, LvArray_Array< std_string, 1, camp_int_seq< long, 0l >, long, LvArray_ChaiBuffer >, std_integral_constant< bool, true > > MeshBody/Region combinations that the solver will be applied to. -LinearSolverParameters node :ref:`DATASTRUCTURE_LinearSolverParameters` -NonlinearSolverParameters node :ref:`DATASTRUCTURE_NonlinearSolverParameters` -========================= ==================================================================================================================================================== ================================================================ +========================= ================================================================================================================================================================================================================================================================================================ ================================================================ +Name Type Description +========================= ================================================================================================================================================================================================================================================================================================ ================================================================ +maxStableDt real64 Value of the Maximum Stable Timestep for this solver. +meshTargets geosx_mapBase< std___cxx11_basic_string< char, std_char_traits< char >, std_allocator< char > >, LvArray_Array< std___cxx11_basic_string< char, std_char_traits< char >, std_allocator< char > >, 1, camp_int_seq< long, 0l >, long, LvArray_ChaiBuffer >, std_integral_constant< bool, true > > MeshBody/Region combinations that the solver will be applied to. +LinearSolverParameters node :ref:`DATASTRUCTURE_LinearSolverParameters` +NonlinearSolverParameters node :ref:`DATASTRUCTURE_NonlinearSolverParameters` +========================= ================================================================================================================================================================================================================================================================================================ ================================================================ diff --git a/src/coreComponents/schema/docs/LagrangianContact_other.rst b/src/coreComponents/schema/docs/LagrangianContact_other.rst index 79f366b460c..6b5401e3808 100644 --- a/src/coreComponents/schema/docs/LagrangianContact_other.rst +++ b/src/coreComponents/schema/docs/LagrangianContact_other.rst @@ -1,13 +1,13 @@ -========================= ==================================================================================================================================================== ======================================================================================================================================================================================================================================================================================================================== -Name Type Description -========================= ==================================================================================================================================================== ======================================================================================================================================================================================================================================================================================================================== -discretization string Name of discretization object (defined in the :ref:`NumericalMethodsManager`) to use for this solver. For instance, if this is a Finite Element Solver, the name of a :ref:`FiniteElement` should be specified. If this is a Finite Volume Method, the name of a :ref:`FiniteVolume` discretization should be specified. -maxStableDt real64 Value of the Maximum Stable Timestep for this solver. -meshTargets geosx_mapBase< std_string, LvArray_Array< std_string, 1, camp_int_seq< long, 0l >, long, LvArray_ChaiBuffer >, std_integral_constant< bool, true > > MeshBody/Region combinations that the solver will be applied to. -LinearSolverParameters node :ref:`DATASTRUCTURE_LinearSolverParameters` -NonlinearSolverParameters node :ref:`DATASTRUCTURE_NonlinearSolverParameters` -========================= ==================================================================================================================================================== ======================================================================================================================================================================================================================================================================================================================== +========================= ================================================================================================================================================================================================================================================================================================ ======================================================================================================================================================================================================================================================================================================================== +Name Type Description +========================= ================================================================================================================================================================================================================================================================================================ ======================================================================================================================================================================================================================================================================================================================== +discretization string Name of discretization object (defined in the :ref:`NumericalMethodsManager`) to use for this solver. For instance, if this is a Finite Element Solver, the name of a :ref:`FiniteElement` should be specified. If this is a Finite Volume Method, the name of a :ref:`FiniteVolume` discretization should be specified. +maxStableDt real64 Value of the Maximum Stable Timestep for this solver. +meshTargets geosx_mapBase< std___cxx11_basic_string< char, std_char_traits< char >, std_allocator< char > >, LvArray_Array< std___cxx11_basic_string< char, std_char_traits< char >, std_allocator< char > >, 1, camp_int_seq< long, 0l >, long, LvArray_ChaiBuffer >, std_integral_constant< bool, true > > MeshBody/Region combinations that the solver will be applied to. +LinearSolverParameters node :ref:`DATASTRUCTURE_LinearSolverParameters` +NonlinearSolverParameters node :ref:`DATASTRUCTURE_NonlinearSolverParameters` +========================= ================================================================================================================================================================================================================================================================================================ ======================================================================================================================================================================================================================================================================================================================== diff --git a/src/coreComponents/schema/docs/LaplaceFEM_other.rst b/src/coreComponents/schema/docs/LaplaceFEM_other.rst index 0bb28c58e3d..b1013a1daef 100644 --- a/src/coreComponents/schema/docs/LaplaceFEM_other.rst +++ b/src/coreComponents/schema/docs/LaplaceFEM_other.rst @@ -1,12 +1,12 @@ -========================= ==================================================================================================================================================== ================================================================ -Name Type Description -========================= ==================================================================================================================================================== ================================================================ -maxStableDt real64 Value of the Maximum Stable Timestep for this solver. -meshTargets geosx_mapBase< std_string, LvArray_Array< std_string, 1, camp_int_seq< long, 0l >, long, LvArray_ChaiBuffer >, std_integral_constant< bool, true > > MeshBody/Region combinations that the solver will be applied to. -LinearSolverParameters node :ref:`DATASTRUCTURE_LinearSolverParameters` -NonlinearSolverParameters node :ref:`DATASTRUCTURE_NonlinearSolverParameters` -========================= ==================================================================================================================================================== ================================================================ +========================= ================================================================================================================================================================================================================================================================================================ ================================================================ +Name Type Description +========================= ================================================================================================================================================================================================================================================================================================ ================================================================ +maxStableDt real64 Value of the Maximum Stable Timestep for this solver. +meshTargets geosx_mapBase< std___cxx11_basic_string< char, std_char_traits< char >, std_allocator< char > >, LvArray_Array< std___cxx11_basic_string< char, std_char_traits< char >, std_allocator< char > >, 1, camp_int_seq< long, 0l >, long, LvArray_ChaiBuffer >, std_integral_constant< bool, true > > MeshBody/Region combinations that the solver will be applied to. +LinearSolverParameters node :ref:`DATASTRUCTURE_LinearSolverParameters` +NonlinearSolverParameters node :ref:`DATASTRUCTURE_NonlinearSolverParameters` +========================= ================================================================================================================================================================================================================================================================================================ ================================================================ diff --git a/src/coreComponents/schema/docs/MultiphasePoromechanics_other.rst b/src/coreComponents/schema/docs/MultiphasePoromechanics_other.rst index 0bb28c58e3d..b1013a1daef 100644 --- a/src/coreComponents/schema/docs/MultiphasePoromechanics_other.rst +++ b/src/coreComponents/schema/docs/MultiphasePoromechanics_other.rst @@ -1,12 +1,12 @@ -========================= ==================================================================================================================================================== ================================================================ -Name Type Description -========================= ==================================================================================================================================================== ================================================================ -maxStableDt real64 Value of the Maximum Stable Timestep for this solver. -meshTargets geosx_mapBase< std_string, LvArray_Array< std_string, 1, camp_int_seq< long, 0l >, long, LvArray_ChaiBuffer >, std_integral_constant< bool, true > > MeshBody/Region combinations that the solver will be applied to. -LinearSolverParameters node :ref:`DATASTRUCTURE_LinearSolverParameters` -NonlinearSolverParameters node :ref:`DATASTRUCTURE_NonlinearSolverParameters` -========================= ==================================================================================================================================================== ================================================================ +========================= ================================================================================================================================================================================================================================================================================================ ================================================================ +Name Type Description +========================= ================================================================================================================================================================================================================================================================================================ ================================================================ +maxStableDt real64 Value of the Maximum Stable Timestep for this solver. +meshTargets geosx_mapBase< std___cxx11_basic_string< char, std_char_traits< char >, std_allocator< char > >, LvArray_Array< std___cxx11_basic_string< char, std_char_traits< char >, std_allocator< char > >, 1, camp_int_seq< long, 0l >, long, LvArray_ChaiBuffer >, std_integral_constant< bool, true > > MeshBody/Region combinations that the solver will be applied to. +LinearSolverParameters node :ref:`DATASTRUCTURE_LinearSolverParameters` +NonlinearSolverParameters node :ref:`DATASTRUCTURE_NonlinearSolverParameters` +========================= ================================================================================================================================================================================================================================================================================================ ================================================================ diff --git a/src/coreComponents/schema/docs/PhaseFieldDamageFEM_other.rst b/src/coreComponents/schema/docs/PhaseFieldDamageFEM_other.rst index 0bb28c58e3d..b1013a1daef 100644 --- a/src/coreComponents/schema/docs/PhaseFieldDamageFEM_other.rst +++ b/src/coreComponents/schema/docs/PhaseFieldDamageFEM_other.rst @@ -1,12 +1,12 @@ -========================= ==================================================================================================================================================== ================================================================ -Name Type Description -========================= ==================================================================================================================================================== ================================================================ -maxStableDt real64 Value of the Maximum Stable Timestep for this solver. -meshTargets geosx_mapBase< std_string, LvArray_Array< std_string, 1, camp_int_seq< long, 0l >, long, LvArray_ChaiBuffer >, std_integral_constant< bool, true > > MeshBody/Region combinations that the solver will be applied to. -LinearSolverParameters node :ref:`DATASTRUCTURE_LinearSolverParameters` -NonlinearSolverParameters node :ref:`DATASTRUCTURE_NonlinearSolverParameters` -========================= ==================================================================================================================================================== ================================================================ +========================= ================================================================================================================================================================================================================================================================================================ ================================================================ +Name Type Description +========================= ================================================================================================================================================================================================================================================================================================ ================================================================ +maxStableDt real64 Value of the Maximum Stable Timestep for this solver. +meshTargets geosx_mapBase< std___cxx11_basic_string< char, std_char_traits< char >, std_allocator< char > >, LvArray_Array< std___cxx11_basic_string< char, std_char_traits< char >, std_allocator< char > >, 1, camp_int_seq< long, 0l >, long, LvArray_ChaiBuffer >, std_integral_constant< bool, true > > MeshBody/Region combinations that the solver will be applied to. +LinearSolverParameters node :ref:`DATASTRUCTURE_LinearSolverParameters` +NonlinearSolverParameters node :ref:`DATASTRUCTURE_NonlinearSolverParameters` +========================= ================================================================================================================================================================================================================================================================================================ ================================================================ diff --git a/src/coreComponents/schema/docs/PhaseFieldFracture_other.rst b/src/coreComponents/schema/docs/PhaseFieldFracture_other.rst index 0bb28c58e3d..b1013a1daef 100644 --- a/src/coreComponents/schema/docs/PhaseFieldFracture_other.rst +++ b/src/coreComponents/schema/docs/PhaseFieldFracture_other.rst @@ -1,12 +1,12 @@ -========================= ==================================================================================================================================================== ================================================================ -Name Type Description -========================= ==================================================================================================================================================== ================================================================ -maxStableDt real64 Value of the Maximum Stable Timestep for this solver. -meshTargets geosx_mapBase< std_string, LvArray_Array< std_string, 1, camp_int_seq< long, 0l >, long, LvArray_ChaiBuffer >, std_integral_constant< bool, true > > MeshBody/Region combinations that the solver will be applied to. -LinearSolverParameters node :ref:`DATASTRUCTURE_LinearSolverParameters` -NonlinearSolverParameters node :ref:`DATASTRUCTURE_NonlinearSolverParameters` -========================= ==================================================================================================================================================== ================================================================ +========================= ================================================================================================================================================================================================================================================================================================ ================================================================ +Name Type Description +========================= ================================================================================================================================================================================================================================================================================================ ================================================================ +maxStableDt real64 Value of the Maximum Stable Timestep for this solver. +meshTargets geosx_mapBase< std___cxx11_basic_string< char, std_char_traits< char >, std_allocator< char > >, LvArray_Array< std___cxx11_basic_string< char, std_char_traits< char >, std_allocator< char > >, 1, camp_int_seq< long, 0l >, long, LvArray_ChaiBuffer >, std_integral_constant< bool, true > > MeshBody/Region combinations that the solver will be applied to. +LinearSolverParameters node :ref:`DATASTRUCTURE_LinearSolverParameters` +NonlinearSolverParameters node :ref:`DATASTRUCTURE_NonlinearSolverParameters` +========================= ================================================================================================================================================================================================================================================================================================ ================================================================ diff --git a/src/coreComponents/schema/docs/ProppantTransport_other.rst b/src/coreComponents/schema/docs/ProppantTransport_other.rst index 0bb28c58e3d..b1013a1daef 100644 --- a/src/coreComponents/schema/docs/ProppantTransport_other.rst +++ b/src/coreComponents/schema/docs/ProppantTransport_other.rst @@ -1,12 +1,12 @@ -========================= ==================================================================================================================================================== ================================================================ -Name Type Description -========================= ==================================================================================================================================================== ================================================================ -maxStableDt real64 Value of the Maximum Stable Timestep for this solver. -meshTargets geosx_mapBase< std_string, LvArray_Array< std_string, 1, camp_int_seq< long, 0l >, long, LvArray_ChaiBuffer >, std_integral_constant< bool, true > > MeshBody/Region combinations that the solver will be applied to. -LinearSolverParameters node :ref:`DATASTRUCTURE_LinearSolverParameters` -NonlinearSolverParameters node :ref:`DATASTRUCTURE_NonlinearSolverParameters` -========================= ==================================================================================================================================================== ================================================================ +========================= ================================================================================================================================================================================================================================================================================================ ================================================================ +Name Type Description +========================= ================================================================================================================================================================================================================================================================================================ ================================================================ +maxStableDt real64 Value of the Maximum Stable Timestep for this solver. +meshTargets geosx_mapBase< std___cxx11_basic_string< char, std_char_traits< char >, std_allocator< char > >, LvArray_Array< std___cxx11_basic_string< char, std_char_traits< char >, std_allocator< char > >, 1, camp_int_seq< long, 0l >, long, LvArray_ChaiBuffer >, std_integral_constant< bool, true > > MeshBody/Region combinations that the solver will be applied to. +LinearSolverParameters node :ref:`DATASTRUCTURE_LinearSolverParameters` +NonlinearSolverParameters node :ref:`DATASTRUCTURE_NonlinearSolverParameters` +========================= ================================================================================================================================================================================================================================================================================================ ================================================================ diff --git a/src/coreComponents/schema/docs/SinglePhaseFVM_other.rst b/src/coreComponents/schema/docs/SinglePhaseFVM_other.rst index 0bb28c58e3d..b1013a1daef 100644 --- a/src/coreComponents/schema/docs/SinglePhaseFVM_other.rst +++ b/src/coreComponents/schema/docs/SinglePhaseFVM_other.rst @@ -1,12 +1,12 @@ -========================= ==================================================================================================================================================== ================================================================ -Name Type Description -========================= ==================================================================================================================================================== ================================================================ -maxStableDt real64 Value of the Maximum Stable Timestep for this solver. -meshTargets geosx_mapBase< std_string, LvArray_Array< std_string, 1, camp_int_seq< long, 0l >, long, LvArray_ChaiBuffer >, std_integral_constant< bool, true > > MeshBody/Region combinations that the solver will be applied to. -LinearSolverParameters node :ref:`DATASTRUCTURE_LinearSolverParameters` -NonlinearSolverParameters node :ref:`DATASTRUCTURE_NonlinearSolverParameters` -========================= ==================================================================================================================================================== ================================================================ +========================= ================================================================================================================================================================================================================================================================================================ ================================================================ +Name Type Description +========================= ================================================================================================================================================================================================================================================================================================ ================================================================ +maxStableDt real64 Value of the Maximum Stable Timestep for this solver. +meshTargets geosx_mapBase< std___cxx11_basic_string< char, std_char_traits< char >, std_allocator< char > >, LvArray_Array< std___cxx11_basic_string< char, std_char_traits< char >, std_allocator< char > >, 1, camp_int_seq< long, 0l >, long, LvArray_ChaiBuffer >, std_integral_constant< bool, true > > MeshBody/Region combinations that the solver will be applied to. +LinearSolverParameters node :ref:`DATASTRUCTURE_LinearSolverParameters` +NonlinearSolverParameters node :ref:`DATASTRUCTURE_NonlinearSolverParameters` +========================= ================================================================================================================================================================================================================================================================================================ ================================================================ diff --git a/src/coreComponents/schema/docs/SinglePhaseHybridFVM_other.rst b/src/coreComponents/schema/docs/SinglePhaseHybridFVM_other.rst index 24586136188..812acd3574f 100644 --- a/src/coreComponents/schema/docs/SinglePhaseHybridFVM_other.rst +++ b/src/coreComponents/schema/docs/SinglePhaseHybridFVM_other.rst @@ -1,13 +1,13 @@ -========================= ==================================================================================================================================================== ================================ ================================================================ -Name Type Registered On Description -========================= ==================================================================================================================================================== ================================ ================================================================ -maxStableDt real64 Value of the Maximum Stable Timestep for this solver. -meshTargets geosx_mapBase< std_string, LvArray_Array< std_string, 1, camp_int_seq< long, 0l >, long, LvArray_ChaiBuffer >, std_integral_constant< bool, true > > MeshBody/Region combinations that the solver will be applied to. -deltaFacePressure real64_array :ref:`DATASTRUCTURE_FaceManager` Accumulated face pressure updates -LinearSolverParameters node :ref:`DATASTRUCTURE_LinearSolverParameters` -NonlinearSolverParameters node :ref:`DATASTRUCTURE_NonlinearSolverParameters` -========================= ==================================================================================================================================================== ================================ ================================================================ +========================= ================================================================================================================================================================================================================================================================================================ ================================ ================================================================ +Name Type Registered On Description +========================= ================================================================================================================================================================================================================================================================================================ ================================ ================================================================ +maxStableDt real64 Value of the Maximum Stable Timestep for this solver. +meshTargets geosx_mapBase< std___cxx11_basic_string< char, std_char_traits< char >, std_allocator< char > >, LvArray_Array< std___cxx11_basic_string< char, std_char_traits< char >, std_allocator< char > >, 1, camp_int_seq< long, 0l >, long, LvArray_ChaiBuffer >, std_integral_constant< bool, true > > MeshBody/Region combinations that the solver will be applied to. +deltaFacePressure real64_array :ref:`DATASTRUCTURE_FaceManager` Accumulated face pressure updates +LinearSolverParameters node :ref:`DATASTRUCTURE_LinearSolverParameters` +NonlinearSolverParameters node :ref:`DATASTRUCTURE_NonlinearSolverParameters` +========================= ================================================================================================================================================================================================================================================================================================ ================================ ================================================================ diff --git a/src/coreComponents/schema/docs/SinglePhasePoromechanicsEmbeddedFractures_other.rst b/src/coreComponents/schema/docs/SinglePhasePoromechanicsEmbeddedFractures_other.rst index 79f366b460c..6b5401e3808 100644 --- a/src/coreComponents/schema/docs/SinglePhasePoromechanicsEmbeddedFractures_other.rst +++ b/src/coreComponents/schema/docs/SinglePhasePoromechanicsEmbeddedFractures_other.rst @@ -1,13 +1,13 @@ -========================= ==================================================================================================================================================== ======================================================================================================================================================================================================================================================================================================================== -Name Type Description -========================= ==================================================================================================================================================== ======================================================================================================================================================================================================================================================================================================================== -discretization string Name of discretization object (defined in the :ref:`NumericalMethodsManager`) to use for this solver. For instance, if this is a Finite Element Solver, the name of a :ref:`FiniteElement` should be specified. If this is a Finite Volume Method, the name of a :ref:`FiniteVolume` discretization should be specified. -maxStableDt real64 Value of the Maximum Stable Timestep for this solver. -meshTargets geosx_mapBase< std_string, LvArray_Array< std_string, 1, camp_int_seq< long, 0l >, long, LvArray_ChaiBuffer >, std_integral_constant< bool, true > > MeshBody/Region combinations that the solver will be applied to. -LinearSolverParameters node :ref:`DATASTRUCTURE_LinearSolverParameters` -NonlinearSolverParameters node :ref:`DATASTRUCTURE_NonlinearSolverParameters` -========================= ==================================================================================================================================================== ======================================================================================================================================================================================================================================================================================================================== +========================= ================================================================================================================================================================================================================================================================================================ ======================================================================================================================================================================================================================================================================================================================== +Name Type Description +========================= ================================================================================================================================================================================================================================================================================================ ======================================================================================================================================================================================================================================================================================================================== +discretization string Name of discretization object (defined in the :ref:`NumericalMethodsManager`) to use for this solver. For instance, if this is a Finite Element Solver, the name of a :ref:`FiniteElement` should be specified. If this is a Finite Volume Method, the name of a :ref:`FiniteVolume` discretization should be specified. +maxStableDt real64 Value of the Maximum Stable Timestep for this solver. +meshTargets geosx_mapBase< std___cxx11_basic_string< char, std_char_traits< char >, std_allocator< char > >, LvArray_Array< std___cxx11_basic_string< char, std_char_traits< char >, std_allocator< char > >, 1, camp_int_seq< long, 0l >, long, LvArray_ChaiBuffer >, std_integral_constant< bool, true > > MeshBody/Region combinations that the solver will be applied to. +LinearSolverParameters node :ref:`DATASTRUCTURE_LinearSolverParameters` +NonlinearSolverParameters node :ref:`DATASTRUCTURE_NonlinearSolverParameters` +========================= ================================================================================================================================================================================================================================================================================================ ======================================================================================================================================================================================================================================================================================================================== diff --git a/src/coreComponents/schema/docs/SinglePhasePoromechanics_other.rst b/src/coreComponents/schema/docs/SinglePhasePoromechanics_other.rst index 0bb28c58e3d..b1013a1daef 100644 --- a/src/coreComponents/schema/docs/SinglePhasePoromechanics_other.rst +++ b/src/coreComponents/schema/docs/SinglePhasePoromechanics_other.rst @@ -1,12 +1,12 @@ -========================= ==================================================================================================================================================== ================================================================ -Name Type Description -========================= ==================================================================================================================================================== ================================================================ -maxStableDt real64 Value of the Maximum Stable Timestep for this solver. -meshTargets geosx_mapBase< std_string, LvArray_Array< std_string, 1, camp_int_seq< long, 0l >, long, LvArray_ChaiBuffer >, std_integral_constant< bool, true > > MeshBody/Region combinations that the solver will be applied to. -LinearSolverParameters node :ref:`DATASTRUCTURE_LinearSolverParameters` -NonlinearSolverParameters node :ref:`DATASTRUCTURE_NonlinearSolverParameters` -========================= ==================================================================================================================================================== ================================================================ +========================= ================================================================================================================================================================================================================================================================================================ ================================================================ +Name Type Description +========================= ================================================================================================================================================================================================================================================================================================ ================================================================ +maxStableDt real64 Value of the Maximum Stable Timestep for this solver. +meshTargets geosx_mapBase< std___cxx11_basic_string< char, std_char_traits< char >, std_allocator< char > >, LvArray_Array< std___cxx11_basic_string< char, std_char_traits< char >, std_allocator< char > >, 1, camp_int_seq< long, 0l >, long, LvArray_ChaiBuffer >, std_integral_constant< bool, true > > MeshBody/Region combinations that the solver will be applied to. +LinearSolverParameters node :ref:`DATASTRUCTURE_LinearSolverParameters` +NonlinearSolverParameters node :ref:`DATASTRUCTURE_NonlinearSolverParameters` +========================= ================================================================================================================================================================================================================================================================================================ ================================================================ diff --git a/src/coreComponents/schema/docs/SinglePhaseProppantFVM_other.rst b/src/coreComponents/schema/docs/SinglePhaseProppantFVM_other.rst index 0bb28c58e3d..b1013a1daef 100644 --- a/src/coreComponents/schema/docs/SinglePhaseProppantFVM_other.rst +++ b/src/coreComponents/schema/docs/SinglePhaseProppantFVM_other.rst @@ -1,12 +1,12 @@ -========================= ==================================================================================================================================================== ================================================================ -Name Type Description -========================= ==================================================================================================================================================== ================================================================ -maxStableDt real64 Value of the Maximum Stable Timestep for this solver. -meshTargets geosx_mapBase< std_string, LvArray_Array< std_string, 1, camp_int_seq< long, 0l >, long, LvArray_ChaiBuffer >, std_integral_constant< bool, true > > MeshBody/Region combinations that the solver will be applied to. -LinearSolverParameters node :ref:`DATASTRUCTURE_LinearSolverParameters` -NonlinearSolverParameters node :ref:`DATASTRUCTURE_NonlinearSolverParameters` -========================= ==================================================================================================================================================== ================================================================ +========================= ================================================================================================================================================================================================================================================================================================ ================================================================ +Name Type Description +========================= ================================================================================================================================================================================================================================================================================================ ================================================================ +maxStableDt real64 Value of the Maximum Stable Timestep for this solver. +meshTargets geosx_mapBase< std___cxx11_basic_string< char, std_char_traits< char >, std_allocator< char > >, LvArray_Array< std___cxx11_basic_string< char, std_char_traits< char >, std_allocator< char > >, 1, camp_int_seq< long, 0l >, long, LvArray_ChaiBuffer >, std_integral_constant< bool, true > > MeshBody/Region combinations that the solver will be applied to. +LinearSolverParameters node :ref:`DATASTRUCTURE_LinearSolverParameters` +NonlinearSolverParameters node :ref:`DATASTRUCTURE_NonlinearSolverParameters` +========================= ================================================================================================================================================================================================================================================================================================ ================================================================ diff --git a/src/coreComponents/schema/docs/SinglePhaseReservoir_other.rst b/src/coreComponents/schema/docs/SinglePhaseReservoir_other.rst index 79f366b460c..6b5401e3808 100644 --- a/src/coreComponents/schema/docs/SinglePhaseReservoir_other.rst +++ b/src/coreComponents/schema/docs/SinglePhaseReservoir_other.rst @@ -1,13 +1,13 @@ -========================= ==================================================================================================================================================== ======================================================================================================================================================================================================================================================================================================================== -Name Type Description -========================= ==================================================================================================================================================== ======================================================================================================================================================================================================================================================================================================================== -discretization string Name of discretization object (defined in the :ref:`NumericalMethodsManager`) to use for this solver. For instance, if this is a Finite Element Solver, the name of a :ref:`FiniteElement` should be specified. If this is a Finite Volume Method, the name of a :ref:`FiniteVolume` discretization should be specified. -maxStableDt real64 Value of the Maximum Stable Timestep for this solver. -meshTargets geosx_mapBase< std_string, LvArray_Array< std_string, 1, camp_int_seq< long, 0l >, long, LvArray_ChaiBuffer >, std_integral_constant< bool, true > > MeshBody/Region combinations that the solver will be applied to. -LinearSolverParameters node :ref:`DATASTRUCTURE_LinearSolverParameters` -NonlinearSolverParameters node :ref:`DATASTRUCTURE_NonlinearSolverParameters` -========================= ==================================================================================================================================================== ======================================================================================================================================================================================================================================================================================================================== +========================= ================================================================================================================================================================================================================================================================================================ ======================================================================================================================================================================================================================================================================================================================== +Name Type Description +========================= ================================================================================================================================================================================================================================================================================================ ======================================================================================================================================================================================================================================================================================================================== +discretization string Name of discretization object (defined in the :ref:`NumericalMethodsManager`) to use for this solver. For instance, if this is a Finite Element Solver, the name of a :ref:`FiniteElement` should be specified. If this is a Finite Volume Method, the name of a :ref:`FiniteVolume` discretization should be specified. +maxStableDt real64 Value of the Maximum Stable Timestep for this solver. +meshTargets geosx_mapBase< std___cxx11_basic_string< char, std_char_traits< char >, std_allocator< char > >, LvArray_Array< std___cxx11_basic_string< char, std_char_traits< char >, std_allocator< char > >, 1, camp_int_seq< long, 0l >, long, LvArray_ChaiBuffer >, std_integral_constant< bool, true > > MeshBody/Region combinations that the solver will be applied to. +LinearSolverParameters node :ref:`DATASTRUCTURE_LinearSolverParameters` +NonlinearSolverParameters node :ref:`DATASTRUCTURE_NonlinearSolverParameters` +========================= ================================================================================================================================================================================================================================================================================================ ======================================================================================================================================================================================================================================================================================================================== diff --git a/src/coreComponents/schema/docs/SinglePhaseWell_other.rst b/src/coreComponents/schema/docs/SinglePhaseWell_other.rst index c874012cc75..4c4d1c5ebf9 100644 --- a/src/coreComponents/schema/docs/SinglePhaseWell_other.rst +++ b/src/coreComponents/schema/docs/SinglePhaseWell_other.rst @@ -1,14 +1,14 @@ -========================= ==================================================================================================================================================== ======================================================================================================================================================================================================================================================================================================================== -Name Type Description -========================= ==================================================================================================================================================== ======================================================================================================================================================================================================================================================================================================================== -discretization string Name of discretization object (defined in the :ref:`NumericalMethodsManager`) to use for this solver. For instance, if this is a Finite Element Solver, the name of a :ref:`FiniteElement` should be specified. If this is a Finite Volume Method, the name of a :ref:`FiniteVolume` discretization should be specified. -maxStableDt real64 Value of the Maximum Stable Timestep for this solver. -meshTargets geosx_mapBase< std_string, LvArray_Array< std_string, 1, camp_int_seq< long, 0l >, long, LvArray_ChaiBuffer >, std_integral_constant< bool, true > > MeshBody/Region combinations that the solver will be applied to. -LinearSolverParameters node :ref:`DATASTRUCTURE_LinearSolverParameters` -NonlinearSolverParameters node :ref:`DATASTRUCTURE_NonlinearSolverParameters` -WellControls node :ref:`DATASTRUCTURE_WellControls` -========================= ==================================================================================================================================================== ======================================================================================================================================================================================================================================================================================================================== +========================= ================================================================================================================================================================================================================================================================================================ ======================================================================================================================================================================================================================================================================================================================== +Name Type Description +========================= ================================================================================================================================================================================================================================================================================================ ======================================================================================================================================================================================================================================================================================================================== +discretization string Name of discretization object (defined in the :ref:`NumericalMethodsManager`) to use for this solver. For instance, if this is a Finite Element Solver, the name of a :ref:`FiniteElement` should be specified. If this is a Finite Volume Method, the name of a :ref:`FiniteVolume` discretization should be specified. +maxStableDt real64 Value of the Maximum Stable Timestep for this solver. +meshTargets geosx_mapBase< std___cxx11_basic_string< char, std_char_traits< char >, std_allocator< char > >, LvArray_Array< std___cxx11_basic_string< char, std_char_traits< char >, std_allocator< char > >, 1, camp_int_seq< long, 0l >, long, LvArray_ChaiBuffer >, std_integral_constant< bool, true > > MeshBody/Region combinations that the solver will be applied to. +LinearSolverParameters node :ref:`DATASTRUCTURE_LinearSolverParameters` +NonlinearSolverParameters node :ref:`DATASTRUCTURE_NonlinearSolverParameters` +WellControls node :ref:`DATASTRUCTURE_WellControls` +========================= ================================================================================================================================================================================================================================================================================================ ======================================================================================================================================================================================================================================================================================================================== diff --git a/src/coreComponents/schema/docs/SolidMechanicsEmbeddedFractures_other.rst b/src/coreComponents/schema/docs/SolidMechanicsEmbeddedFractures_other.rst index 79f366b460c..6b5401e3808 100644 --- a/src/coreComponents/schema/docs/SolidMechanicsEmbeddedFractures_other.rst +++ b/src/coreComponents/schema/docs/SolidMechanicsEmbeddedFractures_other.rst @@ -1,13 +1,13 @@ -========================= ==================================================================================================================================================== ======================================================================================================================================================================================================================================================================================================================== -Name Type Description -========================= ==================================================================================================================================================== ======================================================================================================================================================================================================================================================================================================================== -discretization string Name of discretization object (defined in the :ref:`NumericalMethodsManager`) to use for this solver. For instance, if this is a Finite Element Solver, the name of a :ref:`FiniteElement` should be specified. If this is a Finite Volume Method, the name of a :ref:`FiniteVolume` discretization should be specified. -maxStableDt real64 Value of the Maximum Stable Timestep for this solver. -meshTargets geosx_mapBase< std_string, LvArray_Array< std_string, 1, camp_int_seq< long, 0l >, long, LvArray_ChaiBuffer >, std_integral_constant< bool, true > > MeshBody/Region combinations that the solver will be applied to. -LinearSolverParameters node :ref:`DATASTRUCTURE_LinearSolverParameters` -NonlinearSolverParameters node :ref:`DATASTRUCTURE_NonlinearSolverParameters` -========================= ==================================================================================================================================================== ======================================================================================================================================================================================================================================================================================================================== +========================= ================================================================================================================================================================================================================================================================================================ ======================================================================================================================================================================================================================================================================================================================== +Name Type Description +========================= ================================================================================================================================================================================================================================================================================================ ======================================================================================================================================================================================================================================================================================================================== +discretization string Name of discretization object (defined in the :ref:`NumericalMethodsManager`) to use for this solver. For instance, if this is a Finite Element Solver, the name of a :ref:`FiniteElement` should be specified. If this is a Finite Volume Method, the name of a :ref:`FiniteVolume` discretization should be specified. +maxStableDt real64 Value of the Maximum Stable Timestep for this solver. +meshTargets geosx_mapBase< std___cxx11_basic_string< char, std_char_traits< char >, std_allocator< char > >, LvArray_Array< std___cxx11_basic_string< char, std_char_traits< char >, std_allocator< char > >, 1, camp_int_seq< long, 0l >, long, LvArray_ChaiBuffer >, std_integral_constant< bool, true > > MeshBody/Region combinations that the solver will be applied to. +LinearSolverParameters node :ref:`DATASTRUCTURE_LinearSolverParameters` +NonlinearSolverParameters node :ref:`DATASTRUCTURE_NonlinearSolverParameters` +========================= ================================================================================================================================================================================================================================================================================================ ======================================================================================================================================================================================================================================================================================================================== diff --git a/src/coreComponents/schema/docs/SolidMechanicsLagrangianSSLE_other.rst b/src/coreComponents/schema/docs/SolidMechanicsLagrangianSSLE_other.rst index 2b675317a7b..4de736d9eb6 100644 --- a/src/coreComponents/schema/docs/SolidMechanicsLagrangianSSLE_other.rst +++ b/src/coreComponents/schema/docs/SolidMechanicsLagrangianSSLE_other.rst @@ -1,13 +1,13 @@ -========================= ==================================================================================================================================================== ================================================================ -Name Type Description -========================= ==================================================================================================================================================== ================================================================ -maxForce real64 The maximum force contribution in the problem domain. -maxStableDt real64 Value of the Maximum Stable Timestep for this solver. -meshTargets geosx_mapBase< std_string, LvArray_Array< std_string, 1, camp_int_seq< long, 0l >, long, LvArray_ChaiBuffer >, std_integral_constant< bool, true > > MeshBody/Region combinations that the solver will be applied to. -LinearSolverParameters node :ref:`DATASTRUCTURE_LinearSolverParameters` -NonlinearSolverParameters node :ref:`DATASTRUCTURE_NonlinearSolverParameters` -========================= ==================================================================================================================================================== ================================================================ +========================= ================================================================================================================================================================================================================================================================================================ ================================================================ +Name Type Description +========================= ================================================================================================================================================================================================================================================================================================ ================================================================ +maxForce real64 The maximum force contribution in the problem domain. +maxStableDt real64 Value of the Maximum Stable Timestep for this solver. +meshTargets geosx_mapBase< std___cxx11_basic_string< char, std_char_traits< char >, std_allocator< char > >, LvArray_Array< std___cxx11_basic_string< char, std_char_traits< char >, std_allocator< char > >, 1, camp_int_seq< long, 0l >, long, LvArray_ChaiBuffer >, std_integral_constant< bool, true > > MeshBody/Region combinations that the solver will be applied to. +LinearSolverParameters node :ref:`DATASTRUCTURE_LinearSolverParameters` +NonlinearSolverParameters node :ref:`DATASTRUCTURE_NonlinearSolverParameters` +========================= ================================================================================================================================================================================================================================================================================================ ================================================================ diff --git a/src/coreComponents/schema/docs/SolidMechanics_LagrangianFEM_other.rst b/src/coreComponents/schema/docs/SolidMechanics_LagrangianFEM_other.rst index 2b675317a7b..4de736d9eb6 100644 --- a/src/coreComponents/schema/docs/SolidMechanics_LagrangianFEM_other.rst +++ b/src/coreComponents/schema/docs/SolidMechanics_LagrangianFEM_other.rst @@ -1,13 +1,13 @@ -========================= ==================================================================================================================================================== ================================================================ -Name Type Description -========================= ==================================================================================================================================================== ================================================================ -maxForce real64 The maximum force contribution in the problem domain. -maxStableDt real64 Value of the Maximum Stable Timestep for this solver. -meshTargets geosx_mapBase< std_string, LvArray_Array< std_string, 1, camp_int_seq< long, 0l >, long, LvArray_ChaiBuffer >, std_integral_constant< bool, true > > MeshBody/Region combinations that the solver will be applied to. -LinearSolverParameters node :ref:`DATASTRUCTURE_LinearSolverParameters` -NonlinearSolverParameters node :ref:`DATASTRUCTURE_NonlinearSolverParameters` -========================= ==================================================================================================================================================== ================================================================ +========================= ================================================================================================================================================================================================================================================================================================ ================================================================ +Name Type Description +========================= ================================================================================================================================================================================================================================================================================================ ================================================================ +maxForce real64 The maximum force contribution in the problem domain. +maxStableDt real64 Value of the Maximum Stable Timestep for this solver. +meshTargets geosx_mapBase< std___cxx11_basic_string< char, std_char_traits< char >, std_allocator< char > >, LvArray_Array< std___cxx11_basic_string< char, std_char_traits< char >, std_allocator< char > >, 1, camp_int_seq< long, 0l >, long, LvArray_ChaiBuffer >, std_integral_constant< bool, true > > MeshBody/Region combinations that the solver will be applied to. +LinearSolverParameters node :ref:`DATASTRUCTURE_LinearSolverParameters` +NonlinearSolverParameters node :ref:`DATASTRUCTURE_NonlinearSolverParameters` +========================= ================================================================================================================================================================================================================================================================================================ ================================================================ diff --git a/src/coreComponents/schema/docs/SurfaceGenerator_other.rst b/src/coreComponents/schema/docs/SurfaceGenerator_other.rst index e2053089251..c23750b85ad 100644 --- a/src/coreComponents/schema/docs/SurfaceGenerator_other.rst +++ b/src/coreComponents/schema/docs/SurfaceGenerator_other.rst @@ -1,18 +1,18 @@ -========================= ==================================================================================================================================================== ======================================================================================================================================================================================================================================================================================================================== -Name Type Description -========================= ==================================================================================================================================================== ======================================================================================================================================================================================================================================================================================================================== -discretization string Name of discretization object (defined in the :ref:`NumericalMethodsManager`) to use for this solver. For instance, if this is a Finite Element Solver, the name of a :ref:`FiniteElement` should be specified. If this is a Finite Volume Method, the name of a :ref:`FiniteVolume` discretization should be specified. -failCriterion integer (no description available) -maxStableDt real64 Value of the Maximum Stable Timestep for this solver. -meshTargets geosx_mapBase< std_string, LvArray_Array< std_string, 1, camp_int_seq< long, 0l >, long, LvArray_ChaiBuffer >, std_integral_constant< bool, true > > MeshBody/Region combinations that the solver will be applied to. -tipEdges LvArray_SortedArray< long, long, LvArray_ChaiBuffer > Set containing all the tip edges -tipFaces LvArray_SortedArray< long, long, LvArray_ChaiBuffer > Set containing all the tip faces -tipNodes LvArray_SortedArray< long, long, LvArray_ChaiBuffer > Set containing all the nodes at the fracture tip -trailingFaces LvArray_SortedArray< long, long, LvArray_ChaiBuffer > Set containing all the trailing faces -LinearSolverParameters node :ref:`DATASTRUCTURE_LinearSolverParameters` -NonlinearSolverParameters node :ref:`DATASTRUCTURE_NonlinearSolverParameters` -========================= ==================================================================================================================================================== ======================================================================================================================================================================================================================================================================================================================== +========================= ================================================================================================================================================================================================================================================================================================ ======================================================================================================================================================================================================================================================================================================================== +Name Type Description +========================= ================================================================================================================================================================================================================================================================================================ ======================================================================================================================================================================================================================================================================================================================== +discretization string Name of discretization object (defined in the :ref:`NumericalMethodsManager`) to use for this solver. For instance, if this is a Finite Element Solver, the name of a :ref:`FiniteElement` should be specified. If this is a Finite Volume Method, the name of a :ref:`FiniteVolume` discretization should be specified. +failCriterion integer (no description available) +maxStableDt real64 Value of the Maximum Stable Timestep for this solver. +meshTargets geosx_mapBase< std___cxx11_basic_string< char, std_char_traits< char >, std_allocator< char > >, LvArray_Array< std___cxx11_basic_string< char, std_char_traits< char >, std_allocator< char > >, 1, camp_int_seq< long, 0l >, long, LvArray_ChaiBuffer >, std_integral_constant< bool, true > > MeshBody/Region combinations that the solver will be applied to. +tipEdges LvArray_SortedArray< long, long, LvArray_ChaiBuffer > Set containing all the tip edges +tipFaces LvArray_SortedArray< long, long, LvArray_ChaiBuffer > Set containing all the tip faces +tipNodes LvArray_SortedArray< long, long, LvArray_ChaiBuffer > Set containing all the nodes at the fracture tip +trailingFaces LvArray_SortedArray< long, long, LvArray_ChaiBuffer > Set containing all the trailing faces +LinearSolverParameters node :ref:`DATASTRUCTURE_LinearSolverParameters` +NonlinearSolverParameters node :ref:`DATASTRUCTURE_NonlinearSolverParameters` +========================= ================================================================================================================================================================================================================================================================================================ ======================================================================================================================================================================================================================================================================================================================== diff --git a/src/coreComponents/schema/docs/TwoPointFluxApproximation_other.rst b/src/coreComponents/schema/docs/TwoPointFluxApproximation_other.rst index 4f0f016d051..0b817fdadd1 100644 --- a/src/coreComponents/schema/docs/TwoPointFluxApproximation_other.rst +++ b/src/coreComponents/schema/docs/TwoPointFluxApproximation_other.rst @@ -1,15 +1,15 @@ -======================== ==================================================================================================================================================== ======================================== -Name Type Description -======================== ==================================================================================================================================================== ======================================== -cellStencil geosx_CellElementStencilTPFA (no description available) -coefficientName string Name of coefficient field -edfmStencil geosx_EmbeddedSurfaceToCellStencil (no description available) -faceElementToCellStencil geosx_FaceElementToCellStencil (no description available) -fieldName string Name of primary solution field -fractureStencil geosx_SurfaceElementStencil (no description available) -targetRegions geosx_mapBase< std_string, LvArray_Array< std_string, 1, camp_int_seq< long, 0l >, long, LvArray_ChaiBuffer >, std_integral_constant< bool, true > > List of regions to build the stencil for -======================== ==================================================================================================================================================== ======================================== +======================== ================================================================================================================================================================================================================================================================================================ ======================================== +Name Type Description +======================== ================================================================================================================================================================================================================================================================================================ ======================================== +cellStencil geosx_CellElementStencilTPFA (no description available) +coefficientName string Name of coefficient field +edfmStencil geosx_EmbeddedSurfaceToCellStencil (no description available) +faceElementToCellStencil geosx_FaceElementToCellStencil (no description available) +fieldName string Name of primary solution field +fractureStencil geosx_SurfaceElementStencil (no description available) +targetRegions geosx_mapBase< std___cxx11_basic_string< char, std_char_traits< char >, std_allocator< char > >, LvArray_Array< std___cxx11_basic_string< char, std_char_traits< char >, std_allocator< char > >, 1, camp_int_seq< long, 0l >, long, LvArray_ChaiBuffer >, std_integral_constant< bool, true > > List of regions to build the stencil for +======================== ================================================================================================================================================================================================================================================================================================ ======================================== diff --git a/src/coreComponents/schema/schema.xsd.other b/src/coreComponents/schema/schema.xsd.other index c0985dee8fb..a04ad2a24c8 100644 --- a/src/coreComponents/schema/schema.xsd.other +++ b/src/coreComponents/schema/schema.xsd.other @@ -412,7 +412,7 @@ - + @@ -480,7 +480,7 @@ - + @@ -504,7 +504,7 @@ - + @@ -514,7 +514,7 @@ - + @@ -526,7 +526,7 @@ - + @@ -539,7 +539,7 @@ - + @@ -552,7 +552,7 @@ - + @@ -564,7 +564,7 @@ - + @@ -574,7 +574,7 @@ - + @@ -586,7 +586,7 @@ - + @@ -596,7 +596,7 @@ - + @@ -606,7 +606,7 @@ - + @@ -616,7 +616,7 @@ - + @@ -626,7 +626,7 @@ - + @@ -636,7 +636,7 @@ - + @@ -646,7 +646,7 @@ - + @@ -656,7 +656,7 @@ - + @@ -666,7 +666,7 @@ - + @@ -678,7 +678,7 @@ - + @@ -688,7 +688,7 @@ - + @@ -700,7 +700,7 @@ - + @@ -713,7 +713,7 @@ - + @@ -725,7 +725,7 @@ - + @@ -737,7 +737,7 @@ - + @@ -749,7 +749,7 @@ - + @@ -763,7 +763,7 @@ - + diff --git a/src/coreComponents/unitTests/fluidFlowTests/testCompFlowUtils.hpp b/src/coreComponents/unitTests/fluidFlowTests/testCompFlowUtils.hpp index 718c429e00e..b035d94b523 100644 --- a/src/coreComponents/unitTests/fluidFlowTests/testCompFlowUtils.hpp +++ b/src/coreComponents/unitTests/fluidFlowTests/testCompFlowUtils.hpp @@ -242,16 +242,16 @@ void testCompositionNumericalDerivatives( CompositionalMultiphaseFVM & solver, MultiFluidBase const & fluid = subRegion.getConstitutiveModel< MultiFluidBase >( fluidName ); arrayView1d< string const > const & components = fluid.componentNames(); - arrayView2d< real64, compflow::USD_COMP > & compDens = + arrayView2d< real64, compflow::USD_COMP > const compDens = subRegion.getExtrinsicData< extrinsicMeshData::flow::globalCompDensity >(); - arrayView2d< real64, compflow::USD_COMP > & dCompDens = + arrayView2d< real64, compflow::USD_COMP > const dCompDens = subRegion.getExtrinsicData< extrinsicMeshData::flow::deltaGlobalCompDensity >(); - arrayView2d< real64, compflow::USD_COMP > & compFrac = + arrayView2d< real64, compflow::USD_COMP > const compFrac = subRegion.getExtrinsicData< extrinsicMeshData::flow::globalCompFraction >(); - arrayView3d< real64, compflow::USD_COMP_DC > & dCompFrac_dCompDens = + arrayView3d< real64, compflow::USD_COMP_DC > const dCompFrac_dCompDens = subRegion.getExtrinsicData< extrinsicMeshData::flow::dGlobalCompFraction_dGlobalCompDensity >(); // reset the solver state to zero out variable updates @@ -325,25 +325,25 @@ void testPhaseVolumeFractionNumericalDerivatives( CompositionalMultiphaseFVM & s arrayView1d< string const > const & components = fluid.componentNames(); arrayView1d< string const > const & phases = fluid.phaseNames(); - arrayView1d< real64 > & pres = + arrayView1d< real64 > const pres = subRegion.getExtrinsicData< extrinsicMeshData::flow::pressure >(); - arrayView1d< real64 > & dPres = + arrayView1d< real64 > const dPres = subRegion.getExtrinsicData< extrinsicMeshData::flow::deltaPressure >(); - arrayView2d< real64, compflow::USD_COMP > & compDens = + arrayView2d< real64, compflow::USD_COMP > const compDens = subRegion.getExtrinsicData< extrinsicMeshData::flow::globalCompDensity >(); - arrayView2d< real64, compflow::USD_COMP > & dCompDens = + arrayView2d< real64, compflow::USD_COMP > const dCompDens = subRegion.getExtrinsicData< extrinsicMeshData::flow::deltaGlobalCompDensity >(); - arrayView2d< real64, compflow::USD_PHASE > & phaseVolFrac = + arrayView2d< real64, compflow::USD_PHASE > const phaseVolFrac = subRegion.getExtrinsicData< extrinsicMeshData::flow::phaseVolumeFraction >(); - arrayView2d< real64, compflow::USD_PHASE > & dPhaseVolFrac_dPres = + arrayView2d< real64, compflow::USD_PHASE > const dPhaseVolFrac_dPres = subRegion.getExtrinsicData< extrinsicMeshData::flow::dPhaseVolumeFraction_dPressure >(); - arrayView3d< real64, compflow::USD_PHASE_DC > & dPhaseVolFrac_dCompDens = + arrayView3d< real64, compflow::USD_PHASE_DC > const dPhaseVolFrac_dCompDens = subRegion.getExtrinsicData< extrinsicMeshData::flow::dPhaseVolumeFraction_dGlobalCompDensity >(); // reset the solver state to zero out variable updates @@ -422,13 +422,13 @@ void testPhaseVolumeFractionNumericalDerivatives( CompositionalMultiphaseFVM & s if( isThermal ) { - arrayView1d< real64 > & temp = + arrayView1d< real64 > const temp = subRegion.getExtrinsicData< extrinsicMeshData::flow::temperature >(); - arrayView1d< real64 > & dTemp = + arrayView1d< real64 > const dTemp = subRegion.getExtrinsicData< extrinsicMeshData::flow::deltaTemperature >(); - arrayView2d< real64, compflow::USD_PHASE > & dPhaseVolFrac_dTemp = + arrayView2d< real64, compflow::USD_PHASE > const dPhaseVolFrac_dTemp = subRegion.getExtrinsicData< extrinsicMeshData::flow::dPhaseVolumeFraction_dTemperature >(); // perturb pressure in each cell @@ -487,25 +487,25 @@ void testPhaseMobilityNumericalDerivatives( CompositionalMultiphaseFVM & solver, arrayView1d< string const > const & components = fluid.componentNames(); arrayView1d< string const > const & phases = fluid.phaseNames(); - arrayView1d< real64 > & pres = + arrayView1d< real64 > const pres = subRegion.getExtrinsicData< extrinsicMeshData::flow::pressure >(); - arrayView1d< real64 > & dPres = + arrayView1d< real64 > const dPres = subRegion.getExtrinsicData< extrinsicMeshData::flow::deltaPressure >(); - arrayView2d< real64, compflow::USD_COMP > & compDens = + arrayView2d< real64, compflow::USD_COMP > const compDens = subRegion.getExtrinsicData< extrinsicMeshData::flow::globalCompDensity >(); - arrayView2d< real64, compflow::USD_COMP > & dCompDens = + arrayView2d< real64, compflow::USD_COMP > const dCompDens = subRegion.getExtrinsicData< extrinsicMeshData::flow::deltaGlobalCompDensity >(); - arrayView2d< real64, compflow::USD_PHASE > & phaseMob = + arrayView2d< real64, compflow::USD_PHASE > const phaseMob = subRegion.getExtrinsicData< extrinsicMeshData::flow::phaseMobility >(); - arrayView2d< real64, compflow::USD_PHASE > & dPhaseMob_dPres = + arrayView2d< real64, compflow::USD_PHASE > const dPhaseMob_dPres = subRegion.getExtrinsicData< extrinsicMeshData::flow::dPhaseMobility_dPressure >(); - arrayView3d< real64, compflow::USD_PHASE_DC > & dPhaseMob_dCompDens = + arrayView3d< real64, compflow::USD_PHASE_DC > const dPhaseMob_dCompDens = subRegion.getExtrinsicData< extrinsicMeshData::flow::dPhaseMobility_dGlobalCompDensity >(); // reset the solver state to zero out variable updates @@ -584,13 +584,13 @@ void testPhaseMobilityNumericalDerivatives( CompositionalMultiphaseFVM & solver, if( isThermal ) { - arrayView1d< real64 > & temp = + arrayView1d< real64 > const temp = subRegion.getExtrinsicData< extrinsicMeshData::flow::temperature >(); - arrayView1d< real64 > & dTemp = + arrayView1d< real64 > const dTemp = subRegion.getExtrinsicData< extrinsicMeshData::flow::deltaTemperature >(); - arrayView2d< real64, compflow::USD_PHASE > & dPhaseMob_dTemp = + arrayView2d< real64, compflow::USD_PHASE > const dPhaseMob_dTemp = subRegion.getExtrinsicData< extrinsicMeshData::flow::dPhaseVolumeFraction_dTemperature >(); // perturb pressure in each cell @@ -651,18 +651,18 @@ void fillCellCenteredNumericalJacobian( COMPOSITIONAL_SOLVER & solver, arrayView1d< globalIndex const > const & elemDofNumber = subRegion.getReference< array1d< globalIndex > >( elemDofKey ); - arrayView1d< real64 const > const & pres = + arrayView1d< real64 const > const pres = subRegion.getExtrinsicData< extrinsicMeshData::flow::pressure >(); pres.move( LvArray::MemorySpace::host, false ); - arrayView1d< real64 > const & dPres = + arrayView1d< real64 > const dPres = subRegion.getExtrinsicData< extrinsicMeshData::flow::deltaPressure >(); - arrayView2d< real64 const, compflow::USD_COMP > const & compDens = + arrayView2d< real64 const, compflow::USD_COMP > const compDens = subRegion.getExtrinsicData< extrinsicMeshData::flow::globalCompDensity >(); compDens.move( LvArray::MemorySpace::host, false ); - arrayView2d< real64, compflow::USD_COMP > const & dCompDens = + arrayView2d< real64, compflow::USD_COMP > const dCompDens = subRegion.getExtrinsicData< extrinsicMeshData::flow::deltaGlobalCompDensity >(); for( localIndex ei = 0; ei < subRegion.size(); ++ei ) @@ -745,11 +745,11 @@ void fillCellCenteredNumericalJacobian( COMPOSITIONAL_SOLVER & solver, if( isThermal ) { - arrayView1d< real64 const > const & temp = + arrayView1d< real64 const > const temp = subRegion.getExtrinsicData< extrinsicMeshData::flow::temperature >(); temp.move( LvArray::MemorySpace::host, false ); - arrayView1d< real64 > const & dTemp = + arrayView1d< real64 > const dTemp = subRegion.getExtrinsicData< extrinsicMeshData::flow::deltaTemperature >(); solver.resetStateToBeginningOfStep( domain ); From bfc054090ae5ac387dc37c8178988726692272cb Mon Sep 17 00:00:00 2001 From: Francois Hamon Date: Wed, 9 Mar 2022 17:47:21 -0800 Subject: [PATCH 3/3] unit test passing on the thermal branch --- .../fluidFlowTests/testCompFlowUtils.hpp | 24 ++++++++++--------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/src/coreComponents/unitTests/fluidFlowTests/testCompFlowUtils.hpp b/src/coreComponents/unitTests/fluidFlowTests/testCompFlowUtils.hpp index b035d94b523..52dcf0665f0 100644 --- a/src/coreComponents/unitTests/fluidFlowTests/testCompFlowUtils.hpp +++ b/src/coreComponents/unitTests/fluidFlowTests/testCompFlowUtils.hpp @@ -431,14 +431,17 @@ void testPhaseVolumeFractionNumericalDerivatives( CompositionalMultiphaseFVM & s arrayView2d< real64, compflow::USD_PHASE > const dPhaseVolFrac_dTemp = subRegion.getExtrinsicData< extrinsicMeshData::flow::dPhaseVolumeFraction_dTemperature >(); - // perturb pressure in each cell + // reset the solver state to zero out variable updates + solver.resetStateToBeginningOfStep( domain ); + + // perturb temperature in each cell forAll< serialPolicy >( subRegion.size(), [=] ( localIndex const ei ) { real64 const dT = perturbParameter * ( temp[ei] + perturbParameter ); dTemp[ei] = dT; } ); - // recompute component fractions + // recompute all fluid properties solver.updateFluidState( subRegion ); // check values in each cell @@ -591,9 +594,12 @@ void testPhaseMobilityNumericalDerivatives( CompositionalMultiphaseFVM & solver, subRegion.getExtrinsicData< extrinsicMeshData::flow::deltaTemperature >(); arrayView2d< real64, compflow::USD_PHASE > const dPhaseMob_dTemp = - subRegion.getExtrinsicData< extrinsicMeshData::flow::dPhaseVolumeFraction_dTemperature >(); + subRegion.getExtrinsicData< extrinsicMeshData::flow::dPhaseMobility_dTemperature >(); - // perturb pressure in each cell + // reset the solver state to zero out variable updates (resetting the whole domain is overkill...) + solver.resetStateToBeginningOfStep( domain ); + + // perturb temperature in each cell forAll< serialPolicy >( subRegion.size(), [=] ( localIndex const ei ) { real64 const dT = perturbParameter * ( temp[ei] + perturbParameter ); @@ -761,13 +767,9 @@ void fillCellCenteredNumericalJacobian( COMPOSITIONAL_SOLVER & solver, dTemp.move( LvArray::MemorySpace::cuda, false ); #endif - - mesh.getElemManager().forElementSubRegions( regionNames, - [&]( localIndex const, - ElementSubRegionBase & subRegion2 ) - { - solver.updateFluidState( subRegion2 ); - } ); + // here, we make sure that rock internal energy is updated + // in other words, a call to updateFluidState would not work + solver.updateState( domain ); residual.zero(); jacobian.zero();