diff --git a/src/coreComponents/physicsSolvers/fluidFlow/SinglePhaseStatistics.cpp b/src/coreComponents/physicsSolvers/fluidFlow/SinglePhaseStatistics.cpp index ab76d6cf7bf..839ed5b2be9 100644 --- a/src/coreComponents/physicsSolvers/fluidFlow/SinglePhaseStatistics.cpp +++ b/src/coreComponents/physicsSolvers/fluidFlow/SinglePhaseStatistics.cpp @@ -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(); } } diff --git a/src/coreComponents/schema/schema.xsd b/src/coreComponents/schema/schema.xsd index 98b399613cb..80750753fcd 100644 --- a/src/coreComponents/schema/schema.xsd +++ b/src/coreComponents/schema/schema.xsd @@ -3655,8 +3655,9 @@ Information output from lower logLevels is added with the desired log level +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. +--> @@ -8403,7 +8404,7 @@ The expected format is "{ waterMax, oilMax }", in that order--> - +