www.mooseframework.org
LibmeshPartitioner.h
Go to the documentation of this file.
1 //* This file is part of the MOOSE framework
2 //* https://www.mooseframework.org
3 //*
4 //* All rights reserved, see COPYRIGHT for full restrictions
5 //* https://github.com/idaholab/moose/blob/master/COPYRIGHT
6 //*
7 //* Licensed under LGPL 2.1, please see LICENSE for details
8 //* https://www.gnu.org/licenses/lgpl-2.1.html
9 
10 #pragma once
11 
12 // MOOSE includes
13 #include "MooseEnum.h"
14 #include "MoosePartitioner.h"
15 
16 namespace libMesh
17 {
18 class SubdomainPartitioner;
19 }
20 
22 {
23 public:
24  LibmeshPartitioner(const InputParameters & params);
25  virtual ~LibmeshPartitioner();
26 
28 
29  virtual std::unique_ptr<Partitioner> clone() const;
30  virtual void partition(MeshBase & mesh, const unsigned int n);
31  virtual void partition(MeshBase & mesh);
32  virtual void prepareBlocksForSubdomainPartitioner(const MeshBase & mesh,
33  SubdomainPartitioner & subdomain_partitioner);
34 
35 protected:
36  virtual void _do_partition(MeshBase & mesh, const unsigned int n);
37 
38  std::unique_ptr<Partitioner> _partitioner;
40  const std::vector<std::vector<SubdomainName>> & _subdomain_blocks;
41 };
static InputParameters validParams()
virtual void prepareBlocksForSubdomainPartitioner(const MeshBase &mesh, SubdomainPartitioner &subdomain_partitioner)
MeshBase & mesh
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
virtual void partition(MeshBase &mesh, const unsigned int n)
const std::vector< std::vector< SubdomainName > > & _subdomain_blocks
This is a "smart" enum class intended to replace many of the shortcomings in the C++ enum type It sho...
Definition: MooseEnum.h:31
virtual std::unique_ptr< Partitioner > clone() const
Base class for MOOSE partitioner.
virtual void _do_partition(MeshBase &mesh, const unsigned int n)
LibmeshPartitioner(const InputParameters &params)