micromechanical (C++)
|
Contact integration points for micromechanical models. More...
#include <integration.hpp>
Public Member Functions | |
Integration (T npv=1e9, T radius=0.65e-3) | |
constructor | |
virtual | ~Integration ()=default |
destructor | |
void | initialize (StateVariable< T > &sv) |
initialize the integration points | |
void | setGauss37 (bool full=false) |
set gauss37 integration points | |
void | setGauss61 (bool full=false) |
set gauss61 integration points | |
void | setAnisotropicParameters (std::string type="chang1990-ext", std::string evolution="zhao2020", const std::map< std::string, T > &coefs={}) |
set the anisotropic parameters | |
void | setParameters (T npv, T radius) |
set the parameters | |
void | setNPVFromVoidRatio (T e) |
set the number of contacts per unit volume from the void ratio | |
T | rho () |
normalized packing density | |
void | setNPVFromNormalizedPackingDensity (T rho) |
set the number of contacts per unit volume from the normalized packing density | |
int | size () const |
number of integration points | |
void | reset () |
reset temporary variables | |
Eigen::Matrix< T, Eigen::Dynamic, 3 > | s () |
first shear direction | |
Eigen::Matrix< T, 3, 1 > | s (int idx) |
Eigen::Matrix< T, Eigen::Dynamic, 3 > | t () |
second shear direction | |
Eigen::Matrix< T, 3, 1 > | t (int idx) |
Eigen::Matrix< T, Eigen::Dynamic, 1 > | weight () |
weight | |
T | weight (int idx) |
Eigen::Matrix< T, Eigen::Dynamic, 3 > | l () |
branch vector | |
Eigen::Matrix< T, 3, 1 > | l (int idx) |
const Eigen::Matrix< T, 3, 3 > & | p (int idx) |
transformation matrix | |
const Eigen::Matrix< T, Eigen::Dynamic, 1 > & | beta () |
azimuthal angle | |
T | beta (int idx) |
const Eigen::Matrix< T, Eigen::Dynamic, 1 > & | gamma () |
polar angle | |
T | gamma (int idx) |
Eigen::Matrix< T, 3, 3 > | rotate (const Eigen::Matrix< T, 3, 3 > &F, int idx) |
rotate the fabric tensor | |
std::vector< Eigen::Matrix< T, 3, 3 > > | rotates (const Eigen::Matrix< T, 3, 3 > &F) |
rotate the fabric tensors | |
const Eigen::Matrix< T, 3, 3 > & | Aij () |
fabric tensor | |
const Eigen::Matrix< T, 3, 3 > & | Aij_ () |
fabric tensor from definition | |
std::tuple< Eigen::VectorXi, Eigen::Matrix< T, Eigen::Dynamic, 1 > > | indexOf (T beta=-1.0, T gamma=-1.0, T tol=1e-6) |
indices of the integration points with the given beta and gamma angles and the corresponding angles. | |
Public Attributes | |
T | npv = 1e9 |
number of points per unit volume | |
T | radius = 0.65e-3 |
radius of the particle | |
Eigen::Matrix< T, Eigen::Dynamic, 3 > | n |
normal vector of the integration points | |
Eigen::Matrix< T, Eigen::Dynamic, 1 > | gauss_weight |
weight of the integration points | |
std::shared_ptr< FabricTensor< T > > | fabric |
fabric tensor | |
std::shared_ptr< IntegrationChanged > | changed |
integration changed flags | |
Contact integration points for micromechanical models.
|
inlineexplicit |
|
virtualdefault |
destructor
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
indices of the integration points with the given beta and gamma angles and the corresponding angles.
beta | the angle between the projection of the azimuth on the YZ plane and the Y axis |
gamma | the angle between the azimuth and the X axis |
tol | the tolerance for the comparison of the angles, by default 1e-6 |
References beta(), gamma(), and size().
|
inline |
initialize the integration points
References fabric.
|
inline |
|
inline |
|
inline |
|
inline |
reset temporary variables
References changed, and fabric.
Referenced by setGauss37(), and setGauss61().
|
inline |
normalized packing density
Referenced by setNPVFromNormalizedPackingDensity().
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
set the anisotropic parameters
type | fabric tensor type |
evolution | evolution type |
coefs | fabric tensor coefficients |
|
inline |
set gauss37 integration points
full | full 37*2 integration points. |
References gauss_weight, n, and reset().
|
inline |
set gauss61 integration points
full | full 61*2 integration points. |
References gauss_weight, n, and reset().
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
std::shared_ptr<IntegrationChanged> micromechanical::core::Integration< T >::changed |
std::shared_ptr<FabricTensor<T> > micromechanical::core::Integration< T >::fabric |
fabric tensor
Referenced by Aij(), initialize(), Integration(), reset(), and weight().
Eigen::Matrix<T, Eigen::Dynamic, 1> micromechanical::core::Integration< T >::gauss_weight |
weight of the integration points
Referenced by setGauss37(), setGauss61(), and weight().
Eigen::Matrix<T, Eigen::Dynamic, 3> micromechanical::core::Integration< T >::n |
normal vector of the integration points
Referenced by beta(), gamma(), l(), p(), s(), setGauss37(), setGauss61(), size(), and t().
T micromechanical::core::Integration< T >::npv = 1e9 |
number of points per unit volume
Referenced by Aij(), Aij_(), Integration(), rho(), setNPVFromNormalizedPackingDensity(), setNPVFromVoidRatio(), and setParameters().
T micromechanical::core::Integration< T >::radius = 0.65e-3 |
radius of the particle
Referenced by Aij(), Integration(), l(), rho(), setNPVFromNormalizedPackingDensity(), setNPVFromVoidRatio(), and setParameters().