mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
#3853 Add line shift to compdat export table rows if the line exceeds 132 characters
This commit is contained in:
parent
a9f70a13b3
commit
9851a2d938
@ -680,10 +680,9 @@ void RicWellPathExportMswCompletionsImpl::generateWsegvalvTable(RifEclipseDataTa
|
||||
void RicWellPathExportMswCompletionsImpl::generateWsegAicdTable(RifEclipseDataTableFormatter& formatter,
|
||||
const RicMswExportInfo& exportInfo)
|
||||
{
|
||||
int existingColSpacing = formatter.columnSpacing();
|
||||
formatter.setColumnSpacing(1);
|
||||
QString existingPrependText = formatter.tableRowPrependText();
|
||||
formatter.setTableRowPrependText("");
|
||||
RifEclipseDataTableFormatter tighterFormatter(formatter);
|
||||
tighterFormatter.setColumnSpacing(1);
|
||||
tighterFormatter.setTableRowPrependText(" ");
|
||||
|
||||
bool foundValve = false;
|
||||
|
||||
@ -726,11 +725,11 @@ void RicWellPathExportMswCompletionsImpl::generateWsegAicdTable(RifEclipseDataTa
|
||||
"Exponent of the water flowing fraction in the density viscosity calculation",
|
||||
"Exponent of the gas flowing fraction in the density viscosity calculation"};
|
||||
|
||||
formatter.keyword("WSEGAICD");
|
||||
formatter.comment("Column Overview:");
|
||||
tighterFormatter.keyword("WSEGAICD");
|
||||
tighterFormatter.comment("Column Overview:");
|
||||
for (size_t i = 0; i < columnDescriptions.size(); ++i)
|
||||
{
|
||||
formatter.comment(QString("%1: %2").arg(i + 1, 2, 10, QChar('0')).arg(columnDescriptions[i]));
|
||||
tighterFormatter.comment(QString("%1: %2").arg(i + 1, 2, 10, QChar('0')).arg(columnDescriptions[i]));
|
||||
}
|
||||
|
||||
std::vector<RifEclipseOutputTableColumn> header;
|
||||
@ -741,55 +740,53 @@ void RicWellPathExportMswCompletionsImpl::generateWsegAicdTable(RifEclipseDataTa
|
||||
cName, RifEclipseOutputTableDoubleFormatting(RifEclipseOutputTableDoubleFormat::RIF_CONSISE), RIGHT);
|
||||
header.push_back(col);
|
||||
}
|
||||
formatter.header(header);
|
||||
tighterFormatter.header(header);
|
||||
|
||||
foundValve = true;
|
||||
}
|
||||
if (!aicd->subSegments().empty())
|
||||
{
|
||||
CVF_ASSERT(aicd->subSegments().size() == 1u);
|
||||
formatter.comment(aicd->label());
|
||||
formatter.add(exportInfo.wellPath()->completions()->wellNameForExport()); // 1
|
||||
formatter.add(aicd->subSegments().front()->segmentNumber());
|
||||
formatter.add(aicd->subSegments().front()->segmentNumber());
|
||||
tighterFormatter.comment(aicd->label());
|
||||
tighterFormatter.add(exportInfo.wellPath()->completions()->wellNameForExport()); // 1
|
||||
tighterFormatter.add(aicd->subSegments().front()->segmentNumber());
|
||||
tighterFormatter.add(aicd->subSegments().front()->segmentNumber());
|
||||
|
||||
std::array<double, AICD_NUM_PARAMS> values = aicd->values();
|
||||
formatter.add(values[AICD_STRENGTH]);
|
||||
formatter.add(aicd->length()); // 5
|
||||
formatter.add(values[AICD_DENSITY_CALIB_FLUID]);
|
||||
formatter.add(values[AICD_VISCOSITY_CALIB_FLUID]);
|
||||
formatter.addValueOrDefaultMarker(values[AICD_CRITICAL_WATER_IN_LIQUID_FRAC],
|
||||
tighterFormatter.add(values[AICD_STRENGTH]);
|
||||
tighterFormatter.add(aicd->length()); // 5
|
||||
tighterFormatter.add(values[AICD_DENSITY_CALIB_FLUID]);
|
||||
tighterFormatter.add(values[AICD_VISCOSITY_CALIB_FLUID]);
|
||||
tighterFormatter.addValueOrDefaultMarker(values[AICD_CRITICAL_WATER_IN_LIQUID_FRAC],
|
||||
RicMswExportInfo::defaultDoubleValue());
|
||||
formatter.addValueOrDefaultMarker(values[AICD_EMULSION_VISC_TRANS_REGION],
|
||||
tighterFormatter.addValueOrDefaultMarker(values[AICD_EMULSION_VISC_TRANS_REGION],
|
||||
RicMswExportInfo::defaultDoubleValue());
|
||||
formatter.addValueOrDefaultMarker(values[AICD_MAX_RATIO_EMULSION_VISC],
|
||||
tighterFormatter.addValueOrDefaultMarker(values[AICD_MAX_RATIO_EMULSION_VISC],
|
||||
RicMswExportInfo::defaultDoubleValue()); // 10
|
||||
formatter.add(1);
|
||||
formatter.addValueOrDefaultMarker(values[AICD_MAX_FLOW_RATE], RicMswExportInfo::defaultDoubleValue());
|
||||
formatter.add(values[AICD_VOL_FLOW_EXP]);
|
||||
formatter.add(values[AICD_VISOSITY_FUNC_EXP]);
|
||||
formatter.add(aicd->isOpen() ? "OPEN" : "SHUT"); // 15
|
||||
formatter.addValueOrDefaultMarker(values[AICD_EXP_OIL_FRAC_DENSITY], RicMswExportInfo::defaultDoubleValue());
|
||||
formatter.addValueOrDefaultMarker(values[AICD_EXP_WATER_FRAC_DENSITY],
|
||||
tighterFormatter.add(1);
|
||||
tighterFormatter.addValueOrDefaultMarker(values[AICD_MAX_FLOW_RATE], RicMswExportInfo::defaultDoubleValue());
|
||||
tighterFormatter.add(values[AICD_VOL_FLOW_EXP]);
|
||||
tighterFormatter.add(values[AICD_VISOSITY_FUNC_EXP]);
|
||||
tighterFormatter.add(aicd->isOpen() ? "OPEN" : "SHUT"); // 15
|
||||
tighterFormatter.addValueOrDefaultMarker(values[AICD_EXP_OIL_FRAC_DENSITY], RicMswExportInfo::defaultDoubleValue());
|
||||
tighterFormatter.addValueOrDefaultMarker(values[AICD_EXP_WATER_FRAC_DENSITY],
|
||||
RicMswExportInfo::defaultDoubleValue());
|
||||
formatter.addValueOrDefaultMarker(values[AICD_EXP_GAS_FRAC_DENSITY], RicMswExportInfo::defaultDoubleValue());
|
||||
formatter.addValueOrDefaultMarker(values[AICD_EXP_OIL_FRAC_VISCOSITY],
|
||||
tighterFormatter.addValueOrDefaultMarker(values[AICD_EXP_GAS_FRAC_DENSITY], RicMswExportInfo::defaultDoubleValue());
|
||||
tighterFormatter.addValueOrDefaultMarker(values[AICD_EXP_OIL_FRAC_VISCOSITY],
|
||||
RicMswExportInfo::defaultDoubleValue());
|
||||
formatter.addValueOrDefaultMarker(values[AICD_EXP_WATER_FRAC_VISCOSITY],
|
||||
tighterFormatter.addValueOrDefaultMarker(values[AICD_EXP_WATER_FRAC_VISCOSITY],
|
||||
RicMswExportInfo::defaultDoubleValue()); // 20
|
||||
formatter.addValueOrDefaultMarker(values[AICD_EXP_GAS_FRAC_VISCOSITY],
|
||||
tighterFormatter.addValueOrDefaultMarker(values[AICD_EXP_GAS_FRAC_VISCOSITY],
|
||||
RicMswExportInfo::defaultDoubleValue());
|
||||
formatter.rowCompleted();
|
||||
tighterFormatter.rowCompleted();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if (foundValve)
|
||||
{
|
||||
formatter.tableCompleted();
|
||||
tighterFormatter.tableCompleted();
|
||||
}
|
||||
formatter.setColumnSpacing(existingColSpacing);
|
||||
formatter.setTableRowPrependText(existingPrependText);
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
|
@ -32,6 +32,18 @@ RifEclipseDataTableFormatter::RifEclipseDataTableFormatter(QTextStream& out)
|
||||
{
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
RifEclipseDataTableFormatter::RifEclipseDataTableFormatter(const RifEclipseDataTableFormatter& rhs)
|
||||
: m_out(rhs.m_out)
|
||||
, m_colSpacing(rhs.m_colSpacing)
|
||||
, m_tableRowPrependText(rhs.m_tableRowPrependText)
|
||||
, m_tableRowAppendText(rhs.m_tableRowAppendText)
|
||||
, m_commentPrefix(rhs.m_commentPrefix)
|
||||
{
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@ -96,14 +108,10 @@ void RifEclipseDataTableFormatter::outputBuffer()
|
||||
{
|
||||
if (!m_columns.empty() && !isAllHeadersEmpty(m_columns))
|
||||
{
|
||||
m_out << m_commentPrefix << " ";
|
||||
for (size_t i = 0u; i < m_columns.size(); ++i)
|
||||
{
|
||||
QString colTitle = m_columns[i].title;
|
||||
if (i == 0u)
|
||||
{
|
||||
colTitle = m_commentPrefix + " " + colTitle;
|
||||
}
|
||||
m_out << formatColumn(colTitle, i);
|
||||
{
|
||||
m_out << formatColumn(m_columns[i].title, i);
|
||||
}
|
||||
m_out << "\n";
|
||||
}
|
||||
@ -120,14 +128,26 @@ void RifEclipseDataTableFormatter::outputBuffer()
|
||||
}
|
||||
else if (line.lineType == CONTENTS)
|
||||
{
|
||||
m_out << m_tableRowPrependText;
|
||||
QString lineText = m_tableRowPrependText;
|
||||
QString appendText = (line.appendTextSet ? line.appendText : m_tableRowAppendText) + "\n";
|
||||
|
||||
for (size_t i = 0; i < line.data.size(); ++i)
|
||||
{
|
||||
m_out << formatColumn(line.data[i], i);
|
||||
QString column = formatColumn(line.data[i], i);
|
||||
QString newLineText = lineText + column;
|
||||
if (i == line.data.size() - 1)
|
||||
{
|
||||
newLineText += appendText;
|
||||
}
|
||||
if (newLineText.length() > maxEclipseRowWidth())
|
||||
{
|
||||
m_out << lineText << "\n";
|
||||
lineText = m_tableRowPrependText;
|
||||
}
|
||||
lineText += column;
|
||||
}
|
||||
|
||||
m_out << (line.appendTextSet ? line.appendText : m_tableRowAppendText) << "\n";
|
||||
m_out << lineText << appendText;
|
||||
}
|
||||
}
|
||||
m_columns.clear();
|
||||
@ -249,12 +269,7 @@ RifEclipseDataTableFormatter& RifEclipseDataTableFormatter::header(const std::ve
|
||||
|
||||
for (size_t colNumber = 0u; colNumber < m_columns.size(); ++colNumber)
|
||||
{
|
||||
QString colTitle = m_columns[colNumber].title;
|
||||
if (colNumber == 0u)
|
||||
{
|
||||
colTitle = m_commentPrefix + " " + colTitle;
|
||||
}
|
||||
m_columns[colNumber].width = measure(colTitle);
|
||||
m_columns[colNumber].width = measure(m_columns[colNumber].title);
|
||||
}
|
||||
return *this;
|
||||
}
|
||||
@ -451,6 +466,14 @@ int RifEclipseDataTableFormatter::tableWidth() const
|
||||
return characterCount;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
int RifEclipseDataTableFormatter::maxEclipseRowWidth()
|
||||
{
|
||||
return 132;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@ -459,11 +482,11 @@ QString RifEclipseDataTableFormatter::format(double num, RifEclipseOutputTableDo
|
||||
switch (doubleFormat.format)
|
||||
{
|
||||
case RifEclipseOutputTableDoubleFormat::RIF_FLOAT:
|
||||
return QString("%1").arg(num, 0, 'f', doubleFormat.width);
|
||||
return QString("%1").arg(num, 0, 'f', doubleFormat.precision);
|
||||
case RifEclipseOutputTableDoubleFormat::RIF_SCIENTIFIC:
|
||||
return QString("%1").arg(num, 0, 'E');
|
||||
case RifEclipseOutputTableDoubleFormat::RIF_CONSISE:
|
||||
return QString("%1").arg(num, doubleFormat.width, 'g');
|
||||
return QString::number(num, 'g', doubleFormat.precision);
|
||||
default:
|
||||
return QString("%1");
|
||||
}
|
||||
|
@ -68,14 +68,14 @@ struct RifEclipseOutputTableLine
|
||||
//==================================================================================================
|
||||
struct RifEclipseOutputTableDoubleFormatting
|
||||
{
|
||||
RifEclipseOutputTableDoubleFormatting(RifEclipseOutputTableDoubleFormat format = RIF_FLOAT, int width = 5)
|
||||
RifEclipseOutputTableDoubleFormatting(RifEclipseOutputTableDoubleFormat format = RIF_FLOAT, int precision = 5)
|
||||
: format(format)
|
||||
, width(width)
|
||||
, precision(precision)
|
||||
{
|
||||
}
|
||||
|
||||
RifEclipseOutputTableDoubleFormat format;
|
||||
int width;
|
||||
int precision;
|
||||
};
|
||||
|
||||
//==================================================================================================
|
||||
@ -107,6 +107,8 @@ class RifEclipseDataTableFormatter
|
||||
{
|
||||
public:
|
||||
RifEclipseDataTableFormatter(QTextStream& out);
|
||||
RifEclipseDataTableFormatter(const RifEclipseDataTableFormatter& rhs);
|
||||
|
||||
virtual ~RifEclipseDataTableFormatter();
|
||||
|
||||
int columnSpacing() const;
|
||||
@ -133,13 +135,15 @@ public:
|
||||
|
||||
static void addValueTable(QTextStream& stream, const QString& keyword, size_t columns, const std::vector<double>& values);
|
||||
|
||||
|
||||
private:
|
||||
int measure(const QString str);
|
||||
int measure(double num, RifEclipseOutputTableDoubleFormatting doubleFormat);
|
||||
int measure(int num);
|
||||
int measure(size_t num);
|
||||
|
||||
int tableWidth() const;
|
||||
int tableWidth() const;
|
||||
static int maxEclipseRowWidth();
|
||||
|
||||
QString format(double num, RifEclipseOutputTableDoubleFormatting doubleFormat);
|
||||
QString format(int num);
|
||||
|
Loading…
Reference in New Issue
Block a user