https://mooseframework.inl.gov
Loading...
Searching...
No Matches
Classes | Namespaces | Enumerations | Functions
MortarContactUtils.h File Reference

Go to the source code of this file.

Classes

class  TIMPI::StandardType< ADRankTwoTensor >
 

Namespaces

namespace  TIMPI
 
namespace  Moose
 
namespace  Moose::Mortar
 
namespace  Moose::Mortar::Contact
 

Enumerations

enum class  Moose::Mortar::Contact::FrictionProjectionDegree { Moose::Mortar::Contact::ONE , Moose::Mortar::Contact::TWO }
 

Functions

template<typename T >
T Moose::Mortar::Contact::augmentedNormalPressure (const T &normal_pressure, const T &scaled_normal_gap)
 Return the augmented normal pressure p_n - C_n g_bar.
 
template<typename T >
T Moose::Mortar::Contact::coulombFrictionRadius (const T &friction_coefficient, const T &augmented_normal_pressure)
 Return the nonnegative Coulomb friction radius.
 
template<typename T , std::size_t N>
std::array< T, N > Moose::Mortar::Contact::projectToClosedSphere (const std::array< T, N > &vector, const T &radius)
 Project vector onto a closed sphere centered at the origin with radius radius.
 
template<typename T , std::size_t N>
std::array< T, N > Moose::Mortar::Contact::alartCurnierFrictionResidual (const std::array< T, N > &tangential_pressure, const std::array< T, N > &augmented_tangential_pressure, const T &radius)
 Return the degree-one Alart-Curnier friction residual p_t - Proj_{B_radius}(q_t).
 
template<typename T , std::size_t N>
std::array< T, N > Moose::Mortar::Contact::alartCurnierFrictionResidual (const std::array< T, N > &tangential_pressure, const std::array< T, N > &augmented_tangential_pressure, const T &radius, const T &normal_pressure, const T &epsilon)
 Same as the three-argument alartCurnierFrictionResidual, but additionally short-circuits to the trivial identity residual whenever the raw, unaugmented normal contact pressure normal_pressure falls below epsilon, mirroring the epsilon-gated hueberStadlerWohlmuthFrictionResidual overload below so both friction-residual degrees apply the same active-set transition guard.
 
template<typename T , std::size_t N>
std::array< T, N > Moose::Mortar::Contact::hueberStadlerWohlmuthFrictionResidual (const std::array< T, N > &tangential_pressure, const std::array< T, N > &augmented_tangential_pressure, const T &radius)
 Return the degree-two Hueber-Stadler-Wohlmuth friction residual max(radius, ||q_t||) p_t - radius q_t.
 
template<typename T , std::size_t N>
std::array< T, N > Moose::Mortar::Contact::hueberStadlerWohlmuthFrictionResidual (const std::array< T, N > &tangential_pressure, const std::array< T, N > &augmented_tangential_pressure, const T &radius, const T &normal_pressure, const T &epsilon)
 Same as the three-argument hueberStadlerWohlmuthFrictionResidual, but additionally short-circuits to the trivial identity residual whenever the raw, unaugmented normal contact pressure normal_pressure falls below epsilon.
 
template<typename T , std::size_t N>
std::array< T, N > Moose::Mortar::Contact::frictionalContactResidual (const std::array< T, N > &tangential_pressure, const std::array< T, N > &tangential_velocity, const T &c_t, const T &dt, const T &normal_pressure, const T &scaled_normal_gap, const T &friction_coefficient, const T &epsilon, const FrictionProjectionDegree projection_degree)
 Compute the epsilon-gated frictional residual for a mortar contact node.
 
template<typename T >
void Moose::Mortar::Contact::communicateVelocities (std::unordered_map< const DofObject *, T > &dof_map, const MooseMesh &mesh, const bool nodal, const Parallel::Communicator &communicator, const bool send_data_back)
 This function is used to communicate velocities across processes.
 
void Moose::Mortar::Contact::communicateR2T (std::unordered_map< const DofObject *, ADRankTwoTensor > &dof_map_adr2t, const MooseMesh &mesh, const bool nodal, const Parallel::Communicator &communicator, const bool send_data_back)
 This function is used to communicate velocities across processes.
 
template<typename T >
void Moose::Mortar::Contact::communicateRealObject (std::unordered_map< const DofObject *, T > &dof_to_adreal, const MooseMesh &mesh, const bool nodal, const Parallel::Communicator &communicator, const bool send_data_back)
 
void Moose::Mortar::Contact::communicateGaps (std::unordered_map< const DofObject *, std::pair< ADReal, Real > > &dof_to_weighted_gap, const MooseMesh &mesh, bool nodal, bool normalize_c, const Parallel::Communicator &communicator, bool send_data_back)
 This function is used to communicate gaps across processes.