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 31 of file meshUtil.cpp.

32 {
33 std::vector<double> uflat(B.nDof());
34 const int dim = B.dim();
35 for (size_t a = 0; a < u.size(); a++) {
36 uflat[dim * static_cast<int>(a)] = u[a][0];
37 if (dim > 1)
38 uflat[dim * static_cast<int>(a) + 1] = u[a][1];
39 if (dim > 2)
40 uflat[dim * static_cast<int>(a) + 2] = u[a][2];
41 }
42 std::vector<double> e(B.nStrain(), 0.);
43 for (int i = 0; i < B.nStrain(); i++)
44 for (int j = 0; j < B.nDof(); j++)
45 e[i] += B(i, j) * uflat[j];
47 s(0, 0) = e[0];
48 if (dim > 1) {
49 s(1, 1) = e[1];
50 s(0, 1) = (dim == 2) ? e[2] : e[5];
51 }
52 if (dim > 2) {
53 s(2, 2) = e[2];
54 s(1, 2) = e[3];
55 s(0, 2) = e[4];
56 }
57 return s;
58}
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: