GEOS
FieldApplicator.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 SRC_CORECOMPONENTS_PHYSICSSOLVERS_FIELDAPPLICATOR_HPP_
21 #define SRC_CORECOMPONENTS_PHYSICSSOLVERS_FIELDAPPLICATOR_HPP_
22 
24 
25 namespace geos
26 {
27 
28 class EquilibriumInitialCondition;
29 class FunctionManager;
30 class FlowSolverBase;
31 class CompositionalMultiphaseBase;
32 class ElementSubRegionBase;
33 
34 
45 class FieldApplicator : public TaskBase
46 {
47 public:
48 
54  FieldApplicator( const string & name,
55  Group * const parent );
56 
58  ~FieldApplicator() override;
59 
61  static string catalogName()
62  {
63  return "FieldApplicator";
64  }
65 
73  virtual bool execute( real64 const time_n,
74  real64 const dt,
75  integer const cycleNumber,
76  integer const eventCounter,
77  real64 const eventProgress,
78  DomainPartition & domain ) override;
79 
82 private:
83 
87  struct viewKeyStruct
88  {
89  constexpr static char const * fieldSpecificationNamesString() { return "fieldSpecificationNames"; }
90  constexpr static char const * solverNameString() { return "solverName"; }
91  constexpr static char const * targetRegionsString() { return "targetRegions"; }
92  };
93 
94  void postInputInitialization() override;
95 
101  string getTargetFieldName( string const & fieldName ) const;
102 
103 
121  void initializeSubRegionFluidState( DomainPartition & domain, ElementSubRegionBase & subRegion );
122 
124  stdVector< string > m_fieldSpecificationNames;
125 
127  string m_solverName;
128 
130  stdVector< string > m_targetRegions;
131 };
132 
133 
134 } /* namespace geos */
135 
136 #endif /* SRC_CORECOMPONENTS_PHYSICSSOLVERS_FIELDAPPLICATOR_HPP_ */
Partition of the decomposed physical domain. It also manages the connexion information to its neighbo...
Task to apply field specifications to elements during runtime.
static string catalogName()
Accessor for the catalog name.
FieldApplicator(const string &name, Group *const parent)
Constructor for the FieldApplicator class.
~FieldApplicator() override
Destructor for the class.
virtual bool execute(real64 const time_n, real64 const dt, integer const cycleNumber, integer const eventCounter, real64 const eventProgress, DomainPartition &domain) override
Main extension point of executable targets.
double real64
64-bit floating point type.
Definition: DataTypes.hpp:98
int integer
Signed integer type.
Definition: DataTypes.hpp:81