v0.9.1
Classes | Functions | Variables
OpContactTools Namespace Reference

Classes

struct  CommonData
 [Common data] More...
 
struct  Monitor
 
struct  OpConstrainBoundaryLhs_dTraction
 
struct  OpConstrainBoundaryLhs_dU
 
struct  OpConstrainBoundaryRhs
 
struct  OpConstrainBoundaryTraction
 
struct  OpConstrainDomainLhs_dU
 
struct  OpConstrainDomainRhs
 
struct  OpInternalDomainContactRhs
 
struct  OpPostProcContact
 
struct  OpSpringLhs
 
struct  OpSpringRhs
 

Functions

template<typename T1 , typename T2 >
FTensor::Tensor1< double, 2 > normal (FTensor::Tensor1< T1, 3 > &t_coords, FTensor::Tensor1< T2, 2 > &t_disp)
 
template<typename T >
double gap0 (FTensor::Tensor1< T, 3 > &t_coords, FTensor::Tensor1< double, 2 > &t_normal)
 
template<typename T >
double gap (FTensor::Tensor1< T, 2 > &t_disp, FTensor::Tensor1< double, 2 > &t_normal)
 
template<typename T >
double normal_traction (FTensor::Tensor1< T, 2 > &t_traction, FTensor::Tensor1< double, 2 > &t_normal)
 
double sign (double x)
 
double w (const double g, const double t)
 
double constrian (double &&g0, double &&g, double &&t)
 
double diff_constrains_dtraction (double &&g0, double &&g, double &&t)
 
double diff_constrains_dgap (double &&g0, double &&g, double &&t)
 

Variables

FTensor::Index< 'i', 2 > i
 [Common data] More...
 
FTensor::Index< 'j', 2 > j
 
FTensor::Index< 'k', 2 > k
 
FTensor::Index< 'l', 2 > l
 

Function Documentation

◆ constrian()

double OpContactTools::constrian ( double &&  g0,
double &&  g,
double &&  t 
)

Definition at line 164 of file ContactOps.hpp.

164  {
165  return (w(g - g0, t) + std::abs(w(g - g0, t))) / 2 + g0;
166 };
double w(const double g, const double t)
Definition: ContactOps.hpp:160

◆ diff_constrains_dgap()

double OpContactTools::diff_constrains_dgap ( double &&  g0,
double &&  g,
double &&  t 
)

Definition at line 172 of file ContactOps.hpp.

172  {
173  return (1 + sign(w(g - g0, t))) / 2;
174 }
double sign(double x)
Definition: ContactOps.hpp:151
double w(const double g, const double t)
Definition: ContactOps.hpp:160

◆ diff_constrains_dtraction()

double OpContactTools::diff_constrains_dtraction ( double &&  g0,
double &&  g,
double &&  t 
)

Definition at line 168 of file ContactOps.hpp.

168  {
169  return -cn * (1 + sign(w(g - g0, t))) / 2;
170 }
constexpr double cn
double sign(double x)
Definition: ContactOps.hpp:151
double w(const double g, const double t)
Definition: ContactOps.hpp:160

◆ gap()

template<typename T >
double OpContactTools::gap ( FTensor::Tensor1< T, 2 > &  t_disp,
FTensor::Tensor1< double, 2 > &  t_normal 
)

Definition at line 140 of file ContactOps.hpp.

141  {
142  return t_disp(i) * t_normal(i);
143 }
FTensor::Index< 'i', 2 > i
[Common data]
Definition: ContactOps.hpp:26

◆ gap0()

template<typename T >
double OpContactTools::gap0 ( FTensor::Tensor1< T, 3 > &  t_coords,
FTensor::Tensor1< double, 2 > &  t_normal 
)

Definition at line 134 of file ContactOps.hpp.

135  {
136  return (-1 - t_coords(1)) * t_normal(1);
137 }

◆ normal()

template<typename T1 , typename T2 >
FTensor::Tensor1<double, 2> OpContactTools::normal ( FTensor::Tensor1< T1, 3 > &  t_coords,
FTensor::Tensor1< T2, 2 > &  t_disp 
)
Examples
prism_elements_from_surface.cpp.

Definition at line 128 of file ContactOps.hpp.

129  {
130  return FTensor::Tensor1<double, 2>{0., 1.};
131 }

◆ normal_traction()

template<typename T >
double OpContactTools::normal_traction ( FTensor::Tensor1< T, 2 > &  t_traction,
FTensor::Tensor1< double, 2 > &  t_normal 
)

Definition at line 146 of file ContactOps.hpp.

147  {
148  return t_traction(i) * t_normal(i);
149 }
FTensor::Index< 'i', 2 > i
[Common data]
Definition: ContactOps.hpp:26

◆ sign()

double OpContactTools::sign ( double  x)

Definition at line 151 of file ContactOps.hpp.

151  {
152  if (x == 0)
153  return 0;
154  else if (x > 0)
155  return 1;
156  else
157  return -1;
158 };

◆ w()

double OpContactTools::w ( const double  g,
const double  t 
)

Variable Documentation

◆ i

FTensor::Index<'i', 2> OpContactTools::i

◆ j

FTensor::Index<'j', 2> OpContactTools::j

◆ k

FTensor::Index<'k', 2> OpContactTools::k

◆ l

FTensor::Index<'l', 2> OpContactTools::l