Note: this is documentation for an old release. View the latest documentation at docs.fenicsproject.org/v0.1.0/v0.9.0/cpp
DOLFINx  0.1.0
DOLFINx C++ interface
PETScOptions.h
1 // Copyright (C) 2013-2019 Garth N. Wells
2 //
3 // This file is part of DOLFINx (https://www.fenicsproject.org)
4 //
5 // SPDX-License-Identifier: LGPL-3.0-or-later
6 
7 #pragma once
8 
9 #include "PETScVector.h"
10 #include "utils.h"
11 #include <boost/lexical_cast.hpp>
12 #include <petscoptions.h>
13 #include <string>
14 
15 namespace dolfinx::la
16 {
17 
23 
25 {
26 public:
28  static void set(std::string option);
29 
31  template <typename T>
32  static void set(std::string option, const T value)
33  {
34  if (option[0] != '-')
35  option = '-' + option;
36 
37  PetscErrorCode ierr;
38  ierr
39  = PetscOptionsSetValue(nullptr, option.c_str(),
40  boost::lexical_cast<std::string>(value).c_str());
41  if (ierr != 0)
42  petsc_error(ierr, __FILE__, "PetscOptionsSetValue");
43  }
44 
46  static void clear(std::string option);
47 
49  static void clear();
50 };
51 } // namespace dolfinx::la
dolfinx::la::petsc_error
void petsc_error(int error_code, std::string filename, std::string petsc_function)
Print error message for PETSc calls that return an error.
Definition: PETScVector.cpp:26
dolfinx::la
Linear algebra interface.
Definition: sparsitybuild.h:14
dolfinx::la::PETScOptions::set
static void set(std::string option, const T value)
Generic function for setting PETSc option.
Definition: PETScOptions.h:32
dolfinx::la::PETScOptions::set
static void set(std::string option)
Set PETSc option that takes no value.
Definition: PETScOptions.cpp:14
dolfinx::la::PETScOptions::clear
static void clear()
Clear PETSc global options database.
Definition: PETScOptions.cpp:30
dolfinx::la::PETScOptions
These class provides static functions that permit users to set and retrieve PETSc options via the PET...
Definition: PETScOptions.h:24