Skip to content
Open
Original file line number Diff line number Diff line change
Expand Up @@ -70,20 +70,23 @@ void SinglePhaseStatistics::registerDataOnMesh( Group & meshBodies )
// write output header
if( m_writeCSV > 0 && MpiWrapper::commRank() == 0 )
{
TableLayout tableLayout( {
TableLayout::Column().setName( GEOS_FMT( "Time [{}]", units::getSymbol( units::Unit::Time ))),
TableLayout::Column().setName( GEOS_FMT( "Min pressure [{}]", units::getSymbol( units::Unit::Pressure ))),
TableLayout::Column().setName( GEOS_FMT( "Average pressure [{}]", units::getSymbol( units::Unit::Pressure ))),
TableLayout::Column().setName( GEOS_FMT( "Max pressure [{}]", units::getSymbol( units::Unit::Pressure ))),
TableLayout::Column().setName( GEOS_FMT( "Min delta pressure [{}]", units::getSymbol( units::Unit::Pressure ))),
TableLayout::Column().setName( GEOS_FMT( "Max delta pressure [{}]", units::getSymbol( units::Unit::Pressure )) ),
TableLayout::Column().setName( GEOS_FMT( "Min temperature [{}]", units::getSymbol( units::Unit::Temperature ))),
TableLayout::Column().setName( GEOS_FMT( "Average temperature [{}]", units::getSymbol( units::Unit::Temperature ))),
TableLayout::Column().setName( GEOS_FMT( "Max temperature [{}]", units::getSymbol( units::Unit::Temperature ))),
TableLayout::Column().setName( GEOS_FMT( "Total dynamic pore volume [{}]", units::getSymbol( units::Unit::ReservoirVolume ) )),
TableLayout::Column().setName( GEOS_FMT( "Total fluid mass [{}]", units::getSymbol( units::Unit::Mass )))
} );

TableCSVFormatter csvFormatter( tableLayout );
std::ofstream outputFile( m_outputDir + "/" + regionNames[i] + ".csv" );
outputFile <<
GEOS_FMT( "Time [{}]", units::getSymbol( units::Unit::Time ))<<
GEOS_FMT( "Average pressure [{}]", units::getSymbol( units::Unit::Pressure ))<<
GEOS_FMT( "Min pressure [{}]", units::getSymbol( units::Unit::Pressure ))<<
GEOS_FMT( "Max pressure [{}]", units::getSymbol( units::Unit::Pressure ))<<
GEOS_FMT( "Min delta pressure [{}]", units::getSymbol( units::Unit::Pressure ))<<
GEOS_FMT( "Max delta pressure [{}]", units::getSymbol( units::Unit::Pressure )) <<
GEOS_FMT( "Min temperature [{}]", units::getSymbol( units::Unit::Temperature ))<<
GEOS_FMT( "Average temperature [{}]", units::getSymbol( units::Unit::Temperature ))<<
GEOS_FMT( "Max temperature [{}]", units::getSymbol( units::Unit::Temperature ))<<
GEOS_FMT( "Total dynamic pore volume [{}]", units::getSymbol( units::Unit::ReservoirVolume ) ) <<
GEOS_FMT( "Total fluid mass [{}]", units::getSymbol( units::Unit::Mass ));
outputFile << std::endl;
outputFile << csvFormatter.headerToString();
outputFile.close();
}
}
Expand Down
7 changes: 4 additions & 3 deletions src/coreComponents/schema/schema.xsd
Original file line number Diff line number Diff line change
Expand Up @@ -3655,8 +3655,9 @@ Information output from lower logLevels is added with the desired log level
<!--referenceElevation => Reference elevation where BHP control is enforced [m]-->
<xsd:attribute name="referenceElevation" type="real64" use="required" />
<!--referenceReservoirRegion => Name of reservoir region used for obtaining average region pressure used in volume rate constraint calculations.
Frequency of pressure update is set in Single/CompositionalMultiPhaseStatistics definition.
Setting cycleFrequency='1' will update the pressure every timestep, note that is a lagged property in constraint properties-->
Frequency of pressure update is set in SinglePhase/CompositionalMultiphaseStatistics definition.
Setting cycleFrequency='1' will update the pressure every timestep, note that is a lagged property in constraint propertiesNote the event associated with the statists task must be entered before the solver event.
-->
<xsd:attribute name="referenceReservoirRegion" type="groupNameRef" default="" />
<!--statusTableName => Name of the well status table when the status of the well is a time dependent function.
If the status function evaluates to a positive value at the current time, the well will be open otherwise the well will be shut.-->
Expand Down Expand Up @@ -8403,7 +8404,7 @@ The expected format is "{ waterMax, oilMax }", in that order-->
<xsd:attribute name="phaseCapPressureExponentInv" type="real64_array" default="{0.5}" />
<!--phaseCapPressureMultiplier => Entry pressure value for each phase-->
<xsd:attribute name="phaseCapPressureMultiplier" type="real64_array" default="{1}" />
<!--phaseMinVolumeFraction => Minimum volume fraction value for each phase (between 0 and 1) used to compute the capillary pressure-->
<!--phaseMinVolumeFraction => Minimum volume fraction value for each phase-->
<xsd:attribute name="phaseMinVolumeFraction" type="real64_array" default="{0}" />
<!--phaseNames => List of fluid phases-->
<xsd:attribute name="phaseNames" type="groupNameRef_array" use="required" />
Expand Down
Loading