Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
2 changes: 1 addition & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -577,7 +577,7 @@ set(FLOW_MODELS blackoil brine energy extbo foam gasoil gaswater
gasoil_energy brine_saltprecipitation
gaswater_saltprec_vapwat gaswater_saltprec_energy brine_precsalt_vapwat
blackoil_legacyassembly gasoildiffuse gaswater_dissolution
gaswater_dissolution_diffuse gaswater_energy gaswater_solvent)
gaswater_dissolution_diffuse gaswater_energy gaswater_solvent biofilm)
set(FLOW_VARIANT_MODELS brine_energy onephase onephase_energy)

set(FLOW_TGTS)
Expand Down
16 changes: 8 additions & 8 deletions CMakeLists_files.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -77,15 +77,15 @@ list (APPEND MAIN_SOURCE_FILES
flowexperimental/FIBlackOilModelNoCache.hpp
flowexperimental/flowexp.hpp
flowexperimental/FlowExpNewtonMethod.hpp
opm/models/blackoil/blackoilbioeffectsparams.cpp
opm/models/blackoil/blackoilbrineparams.cpp
opm/models/blackoil/blackoilextboparams.cpp
opm/models/blackoil/blackoilfoamparams.cpp
opm/models/blackoil/blackoilmicpparams.cpp
opm/models/blackoil/blackoilnewtonmethodparams.cpp
opm/models/blackoil/blackoilpolymerparams.cpp
opm/models/blackoil/blackoilsolventparams.cpp
opm/models/io/vtkblackoilbioeffectsparams.cpp
opm/models/io/vtkblackoilenergyparams.cpp
opm/models/io/vtkblackoilmicpparams.cpp
opm/models/io/vtkblackoilpolymerparams.cpp
opm/models/io/vtkblackoilparams.cpp
opm/models/io/vtkblackoilsolventparams.cpp
Expand All @@ -108,6 +108,7 @@ list (APPEND MAIN_SOURCE_FILES
opm/models/utils/timer.cpp
opm/simulators/flow/ActionHandler.cpp
opm/simulators/flow/Banners.cpp
opm/simulators/flow/BioeffectsContainer.cpp
opm/simulators/flow/BlackoilModelParameters.cpp
opm/simulators/flow/BlackoilModelConvergenceMonitor.cpp
opm/simulators/flow/CollectDataOnIORank.cpp
Expand All @@ -131,7 +132,6 @@ list (APPEND MAIN_SOURCE_FILES
opm/simulators/flow/LogOutputHelper.cpp
opm/simulators/flow/Main.cpp
opm/simulators/flow/MechContainer.cpp
opm/simulators/flow/MICPContainer.cpp
opm/simulators/flow/MixingRateControls.cpp
opm/simulators/flow/NlddReporting.cpp
opm/simulators/flow/NonlinearSolver.cpp
Expand Down Expand Up @@ -668,6 +668,8 @@ list (APPEND TEST_DATA_FILES
# originally generated with the command:
# find opm -name '*.h*' -a ! -name '*-pch.hpp' -printf '\t%p\n' | sort
list (APPEND PUBLIC_HEADER_FILES
opm/models/blackoil/blackoilbioeffectsmodules.hh
opm/models/blackoil/blackoilbioeffectsparams.hpp
opm/models/blackoil/blackoilboundaryratevector.hh
opm/models/blackoil/blackoilbrinemodules.hh
opm/models/blackoil/blackoilbrineparams.hpp
Expand All @@ -685,8 +687,6 @@ list (APPEND PUBLIC_HEADER_FILES
opm/models/blackoil/blackoilintensivequantities.hh
opm/models/blackoil/blackoillocalresidual.hh
opm/models/blackoil/blackoillocalresidualtpfa.hh
opm/models/blackoil/blackoilmicpmodules.hh
opm/models/blackoil/blackoilmicpparams.hpp
opm/models/blackoil/blackoilmodel.hh
opm/models/blackoil/blackoilnewtonmethod.hpp
opm/models/blackoil/blackoilnewtonmethodparams.hpp
Expand Down Expand Up @@ -783,10 +783,10 @@ list (APPEND PUBLIC_HEADER_FILES
opm/models/io/simplexvanguard.hh
opm/models/io/structuredgridvanguard.hh
opm/models/io/unstructuredgridvanguard.hh
opm/models/io/vtkblackoilbioeffectsmodule.hpp
opm/models/io/vtkblackoilbioeffectsparams.hpp
opm/models/io/vtkblackoilenergymodule.hpp
opm/models/io/vtkblackoilenergyparams.hpp
opm/models/io/vtkblackoilmicpmodule.hpp
opm/models/io/vtkblackoilmicpparams.hpp
opm/models/io/vtkblackoilmodule.hpp
opm/models/io/vtkblackoilparams.hpp
opm/models/io/vtkblackoilpolymermodule.hpp
Expand Down Expand Up @@ -883,6 +883,7 @@ list (APPEND PUBLIC_HEADER_FILES
opm/simulators/flow/AluGridVanguard.hpp
opm/simulators/flow/Banners.hpp
opm/simulators/flow/BaseAquiferModel.hpp
opm/simulators/flow/BioeffectsContainer.hpp
opm/simulators/flow/BlackoilModel.hpp
opm/simulators/flow/BlackoilModel_impl.hpp
opm/simulators/flow/BlackoilModelConvergenceMonitor.hpp
Expand Down Expand Up @@ -932,7 +933,6 @@ list (APPEND PUBLIC_HEADER_FILES
opm/simulators/flow/LogOutputHelper.hpp
opm/simulators/flow/Main.hpp
opm/simulators/flow/MechContainer.hpp
opm/simulators/flow/MICPContainer.hpp
opm/simulators/flow/MixingRateControls.hpp
opm/simulators/flow/NewTranFluxModule.hpp
opm/simulators/flow/NlddReporting.hpp
Expand Down
5 changes: 3 additions & 2 deletions cmake/test/testFloatFromChars.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,10 @@
#include <charconv>
#include <string_view>

int main()
int
main()
{
const auto s = std::string_view { "2.71828" };
const auto s = std::string_view {"2.71828"};
auto e = 0.0;
std::from_chars(s.data(), s.data() + s.size(), e);
}
95 changes: 42 additions & 53 deletions examples/art2dgf.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -21,44 +21,41 @@
copyright holders.
*/

#include <dune/common/version.hh>
#include <dune/common/fvector.hh>
#include <dune/common/fmatrix.hh>
#include <dune/common/fvector.hh>
#include <dune/common/version.hh>

#include <algorithm>
#include <fstream>
#include <stdexcept>
#include <sstream>
#include <stdexcept>
#include <string>
#include <vector>

namespace Ewoms {
namespace Ewoms
{
/*!
* \brief Reads in mesh files in the ART format.
*
* This file format is used to specify grids with fractures.
*/

struct Art2DGF
{
struct Art2DGF {
/*!
* \brief Create the Grid
*/
static void convert( const std::string& artFileName,
std::ostream& dgfFile,
const unsigned precision = 16 )
static void convert(const std::string& artFileName, std::ostream& dgfFile, const unsigned precision = 16)
{
using Scalar = double;
using GlobalPosition = Dune::FieldVector< Scalar, 2 >;
using GlobalPosition = Dune::FieldVector<Scalar, 2>;
enum ParseMode { Vertex, Edge, Element, Finished };
std::vector< std::pair<GlobalPosition, unsigned> > vertexPos;
std::vector<std::pair<unsigned, unsigned> > edges;
std::vector<std::pair<unsigned, unsigned> > fractureEdges;
std::vector<std::vector<unsigned> > elements;
std::vector<std::pair<GlobalPosition, unsigned>> vertexPos;
std::vector<std::pair<unsigned, unsigned>> edges;
std::vector<std::pair<unsigned, unsigned>> fractureEdges;
std::vector<std::vector<unsigned>> elements;
std::ifstream inStream(artFileName);
if (!inStream.is_open()) {
throw std::runtime_error("File '"+artFileName
+"' does not exist or is not readable");
throw std::runtime_error("File '" + artFileName + "' does not exist or is not readable");
}
std::string curLine;
ParseMode curParseMode = Vertex;
Expand All @@ -73,16 +70,13 @@ namespace Ewoms {

// remove leading whitespace
unsigned numLeadingSpaces = 0;
while (curLine.size() > numLeadingSpaces
&& std::isspace(curLine[numLeadingSpaces]))
while (curLine.size() > numLeadingSpaces && std::isspace(curLine[numLeadingSpaces]))
++numLeadingSpaces;
curLine = curLine.substr(numLeadingSpaces,
curLine.size() - numLeadingSpaces);
curLine = curLine.substr(numLeadingSpaces, curLine.size() - numLeadingSpaces);

// remove trailing whitespace
unsigned numTrailingSpaces = 0;
while (curLine.size() > numTrailingSpaces
&& std::isspace(curLine[curLine.size() - numTrailingSpaces]))
while (curLine.size() > numTrailingSpaces && std::isspace(curLine[curLine.size() - numTrailingSpaces]))
++numTrailingSpaces;
curLine.erase(numTrailingSpaces);

Expand All @@ -108,9 +102,8 @@ namespace Ewoms {
// coordinate. the last number is the Z coordinate
// which we ignore (so far)
iss >> coord[0] >> coord[1];
vertexPos.push_back( std::make_pair( coord, 0 ) );
}
else if (curParseMode == Edge) {
vertexPos.push_back(std::make_pair(coord, 0));
} else if (curParseMode == Edge) {
// read an edge and update the fracture mapper

// read the data attached to the edge
Expand Down Expand Up @@ -141,11 +134,10 @@ namespace Ewoms {
// add the edge to the fracture mapper if it is a fracture
if (dataVal < 0) {
fractureEdges.push_back(edge);
vertexPos[ edge.first ].second = 1;
vertexPos[ edge.second ].second = 1;
vertexPos[edge.first].second = 1;
vertexPos[edge.second].second = 1;
}
}
else if (curParseMode == Element) {
} else if (curParseMode == Element) {
// skip the data attached to an element
std::istringstream iss(curLine);
int dataVal;
Expand Down Expand Up @@ -206,9 +198,8 @@ namespace Ewoms {
if (mat.determinant() < 0)
std::swap(vertIndices[2], vertIndices[1]);

elements.push_back( vertIndices );
}
else if (curParseMode == Finished) {
elements.push_back(vertIndices);
} else if (curParseMode == Finished) {
assert(curLine.size() == 0);
}
}
Expand All @@ -218,23 +209,21 @@ namespace Ewoms {
dgfFile << "GridParameter" << std::endl
<< "overlap 1" << std::endl
<< "closure green" << std::endl
<< "#" << std::endl << std::endl;
<< "#" << std::endl
<< std::endl;

dgfFile << "Vertex" << std::endl;
const bool hasFractures = fractureEdges.size() > 0;
if( hasFractures )
{
if (hasFractures) {
dgfFile << "parameters 1" << std::endl;
}
dgfFile << std::scientific;
dgfFile.precision( precision );
dgfFile.precision(precision);
const size_t vxSize = vertexPos.size();
for( size_t i=0; i<vxSize; ++i)
{
dgfFile << vertexPos[ i ].first;
if( hasFractures )
{
dgfFile << " " << vertexPos[ i ].second;
for (size_t i = 0; i < vxSize; ++i) {
dgfFile << vertexPos[i].first;
if (hasFractures) {
dgfFile << " " << vertexPos[i].second;
}
dgfFile << std::endl;
}
Expand All @@ -243,11 +232,10 @@ namespace Ewoms {

dgfFile << "Simplex" << std::endl;
const size_t elSize = elements.size();
for( size_t i=0; i<elSize; ++i )
{
const size_t elVx = elements[ i ].size();
for( size_t j=0; j<elVx; ++j )
dgfFile << elements[ i ][ j ] << " ";
for (size_t i = 0; i < elSize; ++i) {
const size_t elVx = elements[i].size();
for (size_t j = 0; j < elVx; ++j)
dgfFile << elements[i][j] << " ";
dgfFile << std::endl;
}

Expand All @@ -257,11 +245,12 @@ namespace Ewoms {
dgfFile << "#" << std::endl << std::endl;
dgfFile << "#" << std::endl;
}
};
};

} // namespace Ewoms

int main( int argc, char** argv )
int
main(int argc, char** argv)
{
if (argc != 2) {
std::cout << "Converts a grid file from the ART file format to DGF (Dune grid format)\n"
Expand All @@ -272,13 +261,13 @@ int main( int argc, char** argv )
return 1;
}

std::string filename( argv[ 1 ] );
std::string dgfname( filename );
std::string filename(argv[1]);
std::string dgfname(filename);
dgfname += ".dgf";

std::cout << "Converting ART file \"" << filename << "\" to DGF file \"" << dgfname << "\"\n";
std::ofstream dgfFile( dgfname );
Ewoms::Art2DGF::convert( filename, dgfFile );
std::ofstream dgfFile(dgfname);
Ewoms::Art2DGF::convert(filename, dgfFile);

return 0;
}
23 changes: 12 additions & 11 deletions examples/co2_ptflash_ecfv.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -28,34 +28,35 @@
*/
#include "config.h"

#include <opm/models/utils/start.hh>
#include "problems/co2ptflashproblem.hh"
#include <opm/models/utils/start.hh>


namespace Opm::Properties {
namespace Opm::Properties
{

namespace TTag {
namespace TTag
{
struct CO2PTEcfvProblem {
using InheritsFrom = std::tuple<CO2PTBaseProblem, FlashModel>;
};
}
using InheritsFrom = std::tuple<CO2PTBaseProblem, FlashModel>;
};
} // namespace TTag

template <class TypeTag>
struct SpatialDiscretizationSplice<TypeTag, TTag::CO2PTEcfvProblem>
{
struct SpatialDiscretizationSplice<TypeTag, TTag::CO2PTEcfvProblem> {
using type = TTag::EcfvDiscretization;
};

template <class TypeTag>
struct LocalLinearizerSplice<TypeTag, TTag::CO2PTEcfvProblem>
{
struct LocalLinearizerSplice<TypeTag, TTag::CO2PTEcfvProblem> {
using type = TTag::AutoDiffLocalLinearizer;
};


} // namespace Opm::Properties

int main(int argc, char **argv)
int
main(int argc, char** argv)
{
using EcfvProblemTypeTag = Opm::Properties::TTag::CO2PTEcfvProblem;
return Opm::start<EcfvProblemTypeTag>(argc, argv, true);
Expand Down
Loading