https://mooseframework.inl.gov
Loading...
Searching...
No Matches
LibmeshPartitioner.h
Go to the documentation of this file.
1//* This file is part of the MOOSE framework
2//* https://mooseframework.inl.gov
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
16namespace libMesh
17{
18class SubdomainPartitioner;
19}
20
22{
23public:
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
34 libMesh::SubdomainPartitioner & subdomain_partitioner);
35
36protected:
37 virtual void _do_partition(MeshBase & mesh, const unsigned int n);
38
39 std::unique_ptr<Partitioner> _partitioner;
41 const std::vector<std::vector<SubdomainName>> & _subdomain_blocks;
42};
The main MOOSE class responsible for handling user-defined parameters in almost every MOOSE system.
const std::vector< std::vector< SubdomainName > > & _subdomain_blocks
virtual std::unique_ptr< Partitioner > clone() const
std::unique_ptr< Partitioner > _partitioner
virtual void prepareBlocksForSubdomainPartitioner(const MeshBase &mesh, libMesh::SubdomainPartitioner &subdomain_partitioner)
virtual void partition(MeshBase &mesh, const unsigned int n)
virtual void _do_partition(MeshBase &mesh, const unsigned int n)
static InputParameters validParams()
This is a "smart" enum class intended to replace many of the shortcomings in the C++ enum type It sho...
Definition MooseEnum.h:55
Base class for MOOSE partitioner.
MeshBase & mesh
The following methods are specializations for using the libMesh::Parallel::packed_range_* routines fo...