www.mooseframework.org
PetscProjectSolutionOntoBounds.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 #include "libmesh/libmesh_common.h"
13 #include "libmesh/petsc_macro.h"
14 
15 #ifdef LIBMESH_HAVE_PETSC
16 #if PETSC_VERSION_LESS_THAN(3, 3, 0)
17 #else
18 
19 #include "LineSearch.h"
20 
21 #include <map>
22 
23 using namespace libMesh;
24 
26 class GeometricSearchData;
27 class PenetrationLocator;
28 class NonlinearSystemBase;
29 class DisplacedProblem;
30 
31 namespace libMesh
32 {
33 template <typename>
35 }
36 
37 template <>
39 
43 class PetscProjectSolutionOntoBounds : public LineSearch
44 {
45 public:
46  PetscProjectSolutionOntoBounds(const InputParameters & parameters);
47 
48  void initialSetup() override;
49  virtual void lineSearch() override;
50 
51 protected:
52  NonlinearSystemBase & _nl;
54  DisplacedProblem * _displaced_problem;
55  const GeometricSearchData * _geometric_search_data;
56  const std::map<std::pair<unsigned int, unsigned int>, PenetrationLocator *> *
58 };
59 
60 #endif // PETSC_VERSION_LESS_THAN(3, 3, 0)
61 #endif // LIBMESH_HAVE_PETSC
libMesh::PetscNonlinearSolver
Definition: PetscContactLineSearch.h:27
PetscProjectSolutionOntoBounds::_solver
PetscNonlinearSolver< Real > * _solver
Definition: PetscProjectSolutionOntoBounds.h:53
libMesh
Definition: RANFSNormalMechanicalContact.h:24
PetscProjectSolutionOntoBounds::_geometric_search_data
const GeometricSearchData * _geometric_search_data
Definition: PetscProjectSolutionOntoBounds.h:55
PetscProjectSolutionOntoBounds
Petsc implementation of the contact line search (based on the Petsc LineSearchShell)
Definition: PetscProjectSolutionOntoBounds.h:43
PetscProjectSolutionOntoBounds::_displaced_problem
DisplacedProblem * _displaced_problem
Definition: PetscProjectSolutionOntoBounds.h:54
validParams< PetscProjectSolutionOntoBounds >
InputParameters validParams< PetscProjectSolutionOntoBounds >()
Definition: PetscProjectSolutionOntoBounds.C:29
PetscProjectSolutionOntoBounds::_pentration_locators
const std::map< std::pair< unsigned int, unsigned int >, PenetrationLocator * > * _pentration_locators
Definition: PetscProjectSolutionOntoBounds.h:57
PetscProjectSolutionOntoBounds::_nl
NonlinearSystemBase & _nl
Definition: PetscProjectSolutionOntoBounds.h:52