www.mooseframework.org
LibmeshPartitioner.h
Go to the documentation of this file.
1 /****************************************************************/
2 /* DO NOT MODIFY THIS HEADER */
3 /* MOOSE - Multiphysics Object Oriented Simulation Environment */
4 /* */
5 /* (c) 2010 Battelle Energy Alliance, LLC */
6 /* ALL RIGHTS RESERVED */
7 /* */
8 /* Prepared by Battelle Energy Alliance, LLC */
9 /* Under Contract No. DE-AC07-05ID14517 */
10 /* With the U. S. Department of Energy */
11 /* */
12 /* See COPYRIGHT for full restrictions */
13 /****************************************************************/
14 
15 #ifndef LIBMESHPARTITIONER_H
16 #define LIBMESHPARTITIONER_H
17 
18 // MOOSE includes
19 #include "MooseEnum.h"
20 #include "MoosePartitioner.h"
21 
22 class LibmeshPartitioner;
23 class MooseMesh;
24 
25 namespace libMesh
26 {
27 class SubdomainPartitioner;
28 }
29 
30 template <>
32 
34 {
35 public:
36  LibmeshPartitioner(const InputParameters & params);
37  virtual ~LibmeshPartitioner();
38 
39  virtual std::unique_ptr<Partitioner> clone() const;
40  virtual void partition(MeshBase & mesh, const unsigned int n);
41  virtual void partition(MeshBase & mesh);
42  virtual void
43  prepare_blocks_for_subdomain_partitioner(SubdomainPartitioner & subdomain_partitioner);
44 
45 protected:
46  virtual void _do_partition(MeshBase & mesh, const unsigned int n);
47 
48  std::unique_ptr<Partitioner> _partitioner;
50  const std::vector<std::vector<SubdomainName>> & _subdomain_blocks;
52 };
53 
54 #endif /* LIBMESHPARTITIONER_H */
InputParameters validParams< LibmeshPartitioner >()
The main MOOSE class responsible for handling user-defined parameters in almost every MOOSE system...
The following methods are specializations for using the libMesh::Parallel::packed_range_* routines fo...
std::unique_ptr< Partitioner > _partitioner
const std::vector< std::vector< SubdomainName > > & _subdomain_blocks
MooseMesh wraps a libMesh::Mesh object and enhances its capabilities by caching additional data and s...
Definition: MooseMesh.h:74
This is a "smart" enum class intended to replace many of the shortcomings in the C++ enum type It sho...
Definition: MooseEnum.h:37
PetscInt n
Base class for MOOSE partitioner.