https://mooseframework.inl.gov
PetscDMMoose.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 #include "libmesh/petsc_macro.h"
13 
14 // PETSc includes
15 #include <petscdm.h>
16 #define DMMOOSE "moose"
17 
18 // C++ includes
19 #include <vector>
20 #include <set>
21 #include <string>
22 
23 // Forward declarations
25 
26 extern PetscErrorCode DMMooseRegisterAll();
27 
35 extern PetscErrorCode
36 DMCreateMoose(MPI_Comm comm, NonlinearSystemBase & nl, const std::string & dm_name, DM * dm);
37 
38 extern PetscErrorCode DMMooseReset(DM);
39 extern PetscErrorCode DMMooseSetNonlinearSystem(DM, NonlinearSystemBase &);
40 extern PetscErrorCode DMMooseGetNonlinearSystem(DM, NonlinearSystemBase *&);
41 extern PetscErrorCode DMMooseGetBlocks(DM, std::vector<std::string> &);
42 extern PetscErrorCode DMMooseGetVariables(DM, std::vector<std::string> &);
43 extern PetscErrorCode DMMooseGetSides(DM, std::set<std::string> &);
44 extern PetscErrorCode DMMooseGetUnSides(DM, std::set<std::string> &);
45 extern PetscErrorCode
46 DMMooseGetContacts(DM, std::vector<std::pair<std::string, std::string>> &, std::vector<bool> &);
47 extern PetscErrorCode
48 DMMooseGetUnContacts(DM, std::vector<std::pair<std::string, std::string>> &, std::vector<bool> &);
49 extern PetscErrorCode DMMooseSetBlocks(DM, const std::vector<std::string> &);
50 extern PetscErrorCode DMMooseSetVariables(DM, const std::vector<std::string> &);
51 extern PetscErrorCode DMMooseSetSides(DM, const std::set<std::string> &);
52 extern PetscErrorCode DMMooseSetUnSides(DM, const std::set<std::string> &);
53 extern PetscErrorCode DMMooseSetContacts(DM,
54  const std::vector<std::pair<std::string, std::string>> &,
55  const std::vector<bool> &);
56 extern PetscErrorCode DMMooseSetUnContacts(DM,
57  const std::vector<std::pair<std::string, std::string>> &,
58  const std::vector<bool> &);
59 extern PetscErrorCode DMMooseSetSplitNames(DM, const std::vector<std::string> &);
60 extern PetscErrorCode DMMooseGetSplitNames(DM, const std::vector<std::string> &);
61 extern PetscErrorCode DMMooseSetSplitVars(DM, const std::string &, const std::set<std::string> &);
62 extern PetscErrorCode DMMooseGetSplitVars(DM, const std::string &, std::set<std::string> &);
63 extern PetscErrorCode DMMooseSetSplitBlocks(DM, const std::string &, const std::set<std::string> &);
64 extern PetscErrorCode DMMooseGetSplitBlocks(DM, const std::string &, std::set<std::string> &);
65 extern PetscErrorCode DMMooseSetSplitSides(DM, const std::string &, const std::set<std::string> &);
66 extern PetscErrorCode DMMooseGetSplitSides(DM, const std::string &, std::set<std::string> &);
67 extern PetscErrorCode SNESUpdateDMMoose(SNES snes, PetscInt iteration);
PetscErrorCode DMMooseSetBlocks(DM, const std::vector< std::string > &)
PetscErrorCode DMMooseSetUnSides(DM, const std::set< std::string > &)
Definition: PetscDMMoose.C:325
PetscErrorCode DMMooseGetSplitSides(DM, const std::string &, std::set< std::string > &)
PetscErrorCode DMMooseGetNonlinearSystem(DM, NonlinearSystemBase *&)
Definition: PetscDMMoose.C:416
PetscErrorCode PetscOptionItems *PetscErrorCode DM dm
const Parallel::Communicator & comm() const
PetscErrorCode DMMooseSetSplitVars(DM, const std::string &, const std::set< std::string > &)
PetscErrorCode DMMooseSetSplitSides(DM, const std::string &, const std::set< std::string > &)
Nonlinear system to be solved.
PetscErrorCode DMMooseSetSides(DM, const std::set< std::string > &)
Definition: PetscDMMoose.C:310
PetscErrorCode DMMooseGetSplitBlocks(DM, const std::string &, std::set< std::string > &)
PetscErrorCode DMMooseSetVariables(DM, const std::vector< std::string > &)
PetscErrorCode DMCreateMoose(MPI_Comm comm, NonlinearSystemBase &nl, const std::string &dm_name, DM *dm)
Create a MOOSE DM.
PetscErrorCode DMMooseGetSplitVars(DM, const std::string &, std::set< std::string > &)
PetscErrorCode SNESUpdateDMMoose(SNES snes, PetscInt iteration)
PetscErrorCode DMMooseSetSplitBlocks(DM, const std::string &, const std::set< std::string > &)
PetscErrorCode DMMooseSetSplitNames(DM, const std::vector< std::string > &)
Definition: PetscDMMoose.C:426
PetscErrorCode DMMooseGetUnContacts(DM, std::vector< std::pair< std::string, std::string >> &, std::vector< bool > &)
PetscErrorCode DMMooseGetUnSides(DM, std::set< std::string > &)
PetscErrorCode DMMooseReset(DM)
PetscErrorCode DMMooseGetContacts(DM, std::vector< std::pair< std::string, std::string >> &, std::vector< bool > &)
PetscErrorCode DMMooseGetSides(DM, std::set< std::string > &)
PetscErrorCode DMMooseGetSplitNames(DM, const std::vector< std::string > &)
PetscErrorCode DMMooseSetNonlinearSystem(DM, NonlinearSystemBase &)
Definition: PetscDMMoose.C:223
PetscErrorCode DMMooseGetVariables(DM, std::vector< std::string > &)
Definition: PetscDMMoose.C:212
PetscErrorCode DMMooseSetUnContacts(DM, const std::vector< std::pair< std::string, std::string >> &, const std::vector< bool > &)
PetscErrorCode DMMooseRegisterAll()
PetscErrorCode DMMooseSetContacts(DM, const std::vector< std::pair< std::string, std::string >> &, const std::vector< bool > &)
PetscErrorCode DMMooseGetBlocks(DM, std::vector< std::string > &)
Definition: PetscDMMoose.C:201