GEOS
coreComponents
physicsSolvers
multiphysics
FlowProppantTransportSolver.hpp
Go to the documentation of this file.
1
/*
2
* ------------------------------------------------------------------------------------------------------------
3
* SPDX-License-Identifier: LGPL-2.1-only
4
*
5
* Copyright (c) 2016-2024 Lawrence Livermore National Security LLC
6
* Copyright (c) 2018-2024 TotalEnergies
7
* Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University
8
* Copyright (c) 2023-2024 Chevron
9
* Copyright (c) 2019- GEOS/GEOSX Contributors
10
* All rights reserved
11
*
12
* See top level LICENSE, COPYRIGHT, CONTRIBUTORS, NOTICE, and ACKNOWLEDGEMENTS files for details.
13
* ------------------------------------------------------------------------------------------------------------
14
*/
15
20
#ifndef GEOS_PHYSICSSOLVERS_MULTIPHYSICS_FLOWPROPPANTTRANSPORTSOLVER_HPP_
21
#define GEOS_PHYSICSSOLVERS_MULTIPHYSICS_FLOWPROPPANTTRANSPORTSOLVER_HPP_
22
23
#include "
physicsSolvers/multiphysics/CoupledSolver.hpp
"
24
25
namespace
geos
26
{
27
28
class
ProppantTransport;
29
class
FlowSolverBase;
30
31
class
FlowProppantTransportSolver
:
public
CoupledSolver
< ProppantTransport,
32
FlowSolverBase >
33
{
34
public
:
35
36
using
Base
=
CoupledSolver< ProppantTransport, FlowSolverBase >
;
37
using
Base::m_solvers
;
38
using
Base::m_dofManager
;
39
using
Base::m_localMatrix
;
40
using
Base::m_rhs
;
41
using
Base::m_solution
;
42
43
enum class
SolverType :
integer
44
{
45
ProppantTransport
= 0,
46
Flow = 1
47
};
48
54
FlowProppantTransportSolver
(
const
string
& name,
55
Group
*
const
parent );
56
58
~FlowProppantTransportSolver
()
override
{};
59
64
static
string
catalogName
() {
return
"FlowProppantTransport"
; }
68
string
getCatalogName
()
const override
{
return
catalogName
(); }
69
74
ProppantTransport
*
proppantTransportSolver
()
const
75
{
76
return
std::get< toUnderlying( SolverType::ProppantTransport ) >(
m_solvers
);
77
}
78
83
FlowSolverBase
*
flowSolver
()
const
84
{
85
return
std::get< toUnderlying( SolverType::Flow ) >(
m_solvers
);
86
}
87
90
private
:
91
92
real64
sequentiallyCoupledSolverStep(
real64
const
& time_n,
93
real64
const
& dt,
94
int
const
cycleNumber,
95
DomainPartition
& domain )
override
final
;
96
103
void
preStepUpdate(
real64
const
& time_n,
104
real64
const
& dt,
105
DomainPartition
& domain );
106
113
void
postStepUpdate(
real64
const
& time_n,
114
real64
const
& dt,
115
DomainPartition
& domain );
116
117
};
118
119
}
/* namespace geos */
120
121
#endif
/* GEOS_PHYSICSSOLVERS_MULTIPHYSICS_FLOWPROPPANTTRANSPORTSOLVER_HPP_ */
CoupledSolver.hpp
geos::CoupledSolver
Definition:
CoupledSolver.hpp:34
geos::CoupledSolver< ProppantTransport, FlowSolverBase >::m_solvers
std::tuple< SOLVERS *... > m_solvers
Pointers of the single-physics solvers.
Definition:
CoupledSolver.hpp:728
geos::DomainPartition
Partition of the decomposed physical domain. It also manages the connexion information to its neighbo...
Definition:
DomainPartition.hpp:53
geos::FlowProppantTransportSolver
Definition:
FlowProppantTransportSolver.hpp:33
geos::FlowProppantTransportSolver::proppantTransportSolver
ProppantTransport * proppantTransportSolver() const
accessor for the pointer to the proppant transport solver
Definition:
FlowProppantTransportSolver.hpp:74
geos::FlowProppantTransportSolver::flowSolver
FlowSolverBase * flowSolver() const
accessor for the pointer to the flow solver
Definition:
FlowProppantTransportSolver.hpp:83
geos::FlowProppantTransportSolver::~FlowProppantTransportSolver
~FlowProppantTransportSolver() override
Destructor for the class.
Definition:
FlowProppantTransportSolver.hpp:58
geos::FlowProppantTransportSolver::catalogName
static string catalogName()
name of the node manager in the object catalog
Definition:
FlowProppantTransportSolver.hpp:64
geos::FlowProppantTransportSolver::getCatalogName
string getCatalogName() const override
Definition:
FlowProppantTransportSolver.hpp:68
geos::FlowProppantTransportSolver::FlowProppantTransportSolver
FlowProppantTransportSolver(const string &name, Group *const parent)
main constructor for FlowProppantTransportSolver Objects
geos::FlowSolverBase
Definition:
FlowSolverBase.hpp:38
geos::PhysicsSolverBase::m_localMatrix
CRSMatrix< real64, globalIndex > m_localMatrix
Local system matrix and rhs.
Definition:
PhysicsSolverBase.hpp:1034
geos::PhysicsSolverBase::m_dofManager
DofManager m_dofManager
Data structure to handle degrees of freedom.
Definition:
PhysicsSolverBase.hpp:1022
geos::PhysicsSolverBase::m_solution
ParallelVector m_solution
System solution vector.
Definition:
PhysicsSolverBase.hpp:1031
geos::PhysicsSolverBase::m_rhs
ParallelVector m_rhs
System right-hand side vector.
Definition:
PhysicsSolverBase.hpp:1028
geos::ProppantTransport
Definition:
ProppantTransport.hpp:44
geos::dataRepository::Group
Definition:
Group.hpp:68
geos
Definition:
DataLayouts.hpp:29
geos::real64
double real64
64-bit floating point type.
Definition:
DataTypes.hpp:99
geos::integer
std::int32_t integer
Signed integer type.
Definition:
DataTypes.hpp:82
Generated by
1.9.1