v0.16.3
Loading...
Searching...
No Matches
Public Member Functions | Protected Member Functions | List of all members
ContactOps::HertzAxisymmetricPressureNormCheck Struct Reference

#include "tutorials/adv-1_contact/src/TestingContact.hpp"

Inheritance diagram for ContactOps::HertzAxisymmetricPressureNormCheck:
[legend]
Collaboration diagram for ContactOps::HertzAxisymmetricPressureNormCheck:
[legend]

Public Member Functions

 ContactPressureNormCheck (MoFEM::Interface &m_field, double tol_norm, std::string check_name)
 
- Public Member Functions inherited from ContactOps::ContactPressureNormCheck
 ContactPressureNormCheck (MoFEM::Interface &m_field, double tol_norm, std::string check_name)
 
virtual ~ContactPressureNormCheck ()=default
 
MoFEMErrorCode operator() (DM dm)
 

Protected Member Functions

double analyticalPressure (double x, double y, double) const override
 

Additional Inherited Members

- Protected Attributes inherited from ContactOps::ContactPressureNormCheck
MoFEM::Interface & mField
 
double tolNorm
 
std::string checkName
 

Detailed Description

Test 5: Hertz sphere-on-plane contact, axisymmetric.

Definition at line 157 of file TestingContact.hpp.

Member Function Documentation

◆ analyticalPressure()

double ContactOps::HertzAxisymmetricPressureNormCheck::analyticalPressure ( double  x,
double  y,
double  z 
) const
inlineoverrideprotectedvirtual

Analytical pressure at a boundary gauss point's physical coordinates.

Implements ContactOps::ContactPressureNormCheck.

Definition at line 161 of file TestingContact.hpp.

161 {
162 double E_star = young_modulus / (1 - poisson_ratio * poisson_ratio);
163 double R = 100.;
164 double d = 0.01;
165 double F = (4. / 3.) * E_star * std::sqrt(R) * std::pow(d, 1.5);
166 double a = std::pow((3. * F * R) / (4. * E_star), 1. / 3.);
167 double p_max = (3. * F) / (2. * M_PI * a * a);
168 double r = std::sqrt((x * x) + (y * y));
169 if (r > a)
170 return 0.;
171 return p_max * std::sqrt(1 - ((r * r) / (a * a)));
172 }
constexpr double a
@ R
@ F
int r
Definition sdf.py:205
double young_modulus
Young modulus.
Definition plastic.cpp:126
double poisson_ratio
Poisson ratio.
Definition plastic.cpp:127

◆ ContactPressureNormCheck()

ContactOps::ContactPressureNormCheck::ContactPressureNormCheck ( MoFEM::Interface &  m_field,
double  tol_norm,
std::string  check_name 
)
inline

Definition at line 12 of file TestingContact.hpp.

14 : mField(m_field), tolNorm(tol_norm), checkName(std::move(check_name)) {
15 }

The documentation for this struct was generated from the following file: