https://mooseframework.inl.gov
Loading...
Searching...
No Matches
ContactLineSearchBase.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 "LineSearch.h"
13
14class FEProblem;
15
35{
36public:
38
40
44 void printContactInfo(const std::set<dof_id_type> & contact_set);
45
49 void insertSet(const std::set<dof_id_type> & mech_set);
50
54 virtual void reset();
55
56protected:
58 std::set<dof_id_type> _current_contact_state;
60 std::set<dof_id_type> _old_contact_state;
61
66
69
72
75
78};
This class implements a custom line search for use with mechanical contact.
Real _contact_lambda
The multiplier of the newton step.
std::set< dof_id_type > _current_contact_state
The current contact set.
virtual void reset()
Reset the line search data.
static InputParameters validParams()
void printContactInfo(const std::set< dof_id_type > &contact_set)
Method for printing the contact information.
std::set< dof_id_type > _old_contact_state
The old contact set.
bool _affect_ltol
Whether to modify the linear tolerance.
bool _user_ksp_rtol_set
Whether the user linear tolerance has been set yet in this object.
Real _user_ksp_rtol
the linear tolerance set by the user in the input file
unsigned _allowed_lambda_cuts
How many times the linsearch is allowed to cut lambda.
Real _contact_ltol
What the linear tolerance should be while the contact state is changing.
void insertSet(const std::set< dof_id_type > &mech_set)
Unionize sets from different constraints.
const InputParameters & parameters() const