PeriDEM 0.3.0
PeriDEM -- Peridynamics-based high-fidelity model for granular media
Loading...
Searching...
No Matches
anonymous_namespace{meshUtil.cpp} Namespace Reference

Functions

util::SymMatrix3 strainFromB (const fe::B &B, const std::vector< util::Point > &u)
 

Function Documentation

◆ strainFromB()

util::SymMatrix3 anonymous_namespace{meshUtil.cpp}::strainFromB ( const fe::B B,
const std::vector< util::Point > &  u 
)

Definition at line 29 of file meshUtil.cpp.

30 {
31 std::vector<double> uflat(B.nDof());
32 const int dim = B.dim();
33 for (size_t a = 0; a < u.size(); a++) {
34 uflat[dim * static_cast<int>(a)] = u[a][0];
35 if (dim > 1)
36 uflat[dim * static_cast<int>(a) + 1] = u[a][1];
37 if (dim > 2)
38 uflat[dim * static_cast<int>(a) + 2] = u[a][2];
39 }
40 std::vector<double> e(B.nStrain(), 0.);
41 for (int i = 0; i < B.nStrain(); i++)
42 for (int j = 0; j < B.nDof(); j++)
43 e[i] += B(i, j) * uflat[j];
45 s(0, 0) = e[0];
46 if (dim > 1) {
47 s(1, 1) = e[1];
48 s(0, 1) = (dim == 2) ? e[2] : e[5];
49 }
50 if (dim > 2) {
51 s(2, 2) = e[2];
52 s(1, 2) = e[3];
53 s(0, 2) = e[4];
54 }
55 return s;
56}
int dim() const
Definition bMatrix.h:31
int nDof() const
Definition bMatrix.h:30
int nStrain() const
Definition bMatrix.h:29
A structure to represent 3d matrices.
Definition matrix.h:258

References fe::B::dim(), fe::B::nDof(), and fe::B::nStrain().

Here is the call graph for this function: