v0.13.2
Loading...
Searching...
No Matches
Public Member Functions | Public Attributes | List of all members
FractureMechanics::AnalyticalDisp Struct Reference

#include <users_modules/fracture_mechanics/AnalyticalFun.hpp>

Inheritance diagram for FractureMechanics::AnalyticalDisp:
[legend]
Collaboration diagram for FractureMechanics::AnalyticalDisp:
[legend]

Public Member Functions

virtual vector< VectorDouble > & operator() (const double X, const double Y, const double Z)
 
- Public Member Functions inherited from FractureMechanics::AnalyticalOptions
PetscErrorCode getOptions ()
 
 AnalyticalOptions ()
 

Public Attributes

vector< VectorDouble > dIsp
 
- Public Attributes inherited from FractureMechanics::AnalyticalOptions
double aLpha
 
bool optionsInitialised
 

Detailed Description

Definition at line 117 of file AnalyticalFun.hpp.

Member Function Documentation

◆ operator()()

virtual vector< VectorDouble > & FractureMechanics::AnalyticalDisp::operator() ( const double  X,
const double  Y,
const double  Z 
)
inlinevirtual

Definition at line 121 of file AnalyticalFun.hpp.

122 {
123
124 // initailise options
125 if (!optionsInitialised) {
126 getOptions();
127 }
128
129 dIsp.resize(1);
130 dIsp[0].resize(3);
131
132 double &x = dIsp[0][0];
133 double &y = dIsp[0][1];
134 double &z = dIsp[0][2];
135
136 // Current positions is given by
137
138 const double E = 1.0e5;
139 const double nu = 0;
140 const double pi = M_PI;
141 const double alpha = aLpha;
142
143 const double theta = atan2(Z, X * sin(alpha) + Y * cos(alpha));
144
145 const double ux =
146 (1 + nu) / E *
147 sqrt(sqrt(pow(X * sin(alpha) + Y * cos(alpha), 2) + pow(Z, 2)) /
148 (2 * pi)) *
149 cos(theta / 2.) * (3 - 4 * nu - cos(theta)) *
150 sin(alpha); // simply ux = f(Z) = Z*1e-3
151 const double uy =
152 (1 + nu) / E *
153 sqrt(sqrt(pow(X * sin(alpha) + Y * cos(alpha), 2) + pow(Z, 2)) /
154 (2 * pi)) *
155 cos(theta / 2.) * (3 - 4 * nu - cos(theta)) * cos(alpha);
156 const double uz =
157 (1 + nu) / E *
158 sqrt(sqrt(pow(X * sin(alpha) + Y * cos(alpha), 2) + pow(Z, 2)) /
159 (2 * pi)) *
160 sin(theta / 2.) * (3 - 4 * nu - cos(theta));
161
162 x = X + ux;
163 y = Y + uy;
164 z = Z + uz;
165
166 return dIsp;
167 }

Member Data Documentation

◆ dIsp

vector<VectorDouble> FractureMechanics::AnalyticalDisp::dIsp

Definition at line 119 of file AnalyticalFun.hpp.


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