GEOS
ParticleRegion.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 Total, S.A
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 
21 #ifndef GEOS_MESH_PARTICLEREGION_HPP_
22 #define GEOS_MESH_PARTICLEREGION_HPP_
23 
24 #include "ParticleRegionBase.hpp"
25 
26 namespace geos
27 {
37 {
38 public:
39 
44 
45 
51  ParticleRegion( string const & name, Group * const parent );
52 
56  ParticleRegion() = delete;
57 
61  virtual ~ParticleRegion() override;
62 
67 
72  static string catalogName()
73  { return "ParticleRegion"; }
74 
78  virtual string getCatalogName() const override final
79  { return ParticleRegion::catalogName(); }
80 
82 
87 
92  void addParticleBlockName( string const & particleBlockName )
93  {
94  m_particleBlockNames.emplace_back( particleBlockName );
95  }
96 
102  {
103  return m_particleBlockNames;
104  }
105 
106  virtual void generateMesh( Group & particleBlocks ) override;
107 
109 
115 
121  {
123  static constexpr char const * sourceParticleBlockNamesString() {return "particleBlocks"; }
124  };
125 
126 
127 private:
128 
129  // Cell block names
130  string_array m_particleBlockNames;
131 
132 };
133 
134 } /* namespace geos */
135 
136 #endif /* GEOS_MESH_PARTICLEREGION_HPP_ */
The ParticleRegionBase is the base class to manage the data stored at the particle level.
ParticleRegion(string const &name, Group *const parent)
Constructor.
virtual string getCatalogName() const override final
The key name for the FaceElementRegion in the object catalog.
virtual ~ParticleRegion() override
Destructor.
ParticleRegion()=delete
Deleted default constructor.
virtual void generateMesh(Group &particleBlocks) override
Generate mesh.
array2d< real64 > getParticleCorners() const
Calculate and return the locations of all particle corners.
void addParticleBlockName(string const &particleBlockName)
Add a particleBlockRegion name to the list.
static string catalogName()
The key name for the FaceElementRegion in the object catalog.
string_array getParticleBlockNames()
Get the list of particleBlock names.
Array< T, 2, PERMUTATION > array2d
Alias for 2D array.
Definition: DataTypes.hpp:192
array1d< string > string_array
A 1-dimensional array of geos::string types.
Definition: DataTypes.hpp:392
A struct to serve as a container for variable strings and keys.
static constexpr char const * sourceParticleBlockNamesString()
Struct to serve as a container for variable strings and keys.