PeriDEM 0.3.0
PeriDEM -- Peridynamics-based high-fidelity model for granular media
Loading...
Searching...
No Matches
materialUtil.h
Go to the documentation of this file.
1/*
2 * -------------------------------------------
3 * Copyright (c) 2021 - 2026 Prashant K. Jha
4 * -------------------------------------------
5 * PeriDEM https://github.com/prashjha/PeriDEM
6 *
7 * Distributed under the Boost Software License, Version 1.0. (See accompanying
8 * file LICENSE)
9 */
10
11#ifndef MATERIAL_UTIL_H
12#define MATERIAL_UTIL_H
13
14#include "util/point.h"
15#include "mparticle/material.h"
16#include "fracture/fracture.h"
17#include "data/modelData.h"
18#include <limits>
19#include <string>
20#include <vector>
21
22namespace material {
23
35 inline double toNu(double lambda, double mu) { return lambda * 0.5 / (lambda + mu); }
36
43 inline double toNuEG(double E, double G) { return E * 0.5 / G - 1.; }
44
51 inline double toE(double K, double nu) { return K * (3. * (1. - 2. * nu)); }
52
59 inline double toK(double E, double nu) { return E / (3. * (1. - 2. * nu)); }
60
68 inline double toLambdaE(double E, double nu) {
69 return E * nu / ((1. + nu) * (1. - 2. * nu));
70 }
71
79 inline double toLambdaK(double K, double nu) { return 3. * K * nu / (1. + nu); }
80
87 inline double toGE(double E, double nu) { return E / (2. * (1. + nu)); }
88
95 inline double toGK(double K, double nu) {
96 return 3. * K * (1. - 2. * nu) / (2. * (1. + nu));
97 }
98
106 inline double toELambda(double lambda, double nu) {
107 return lambda * (1. + nu) * (1. - 2. * nu) / nu;
108 }
109
123 inline double toGc(double KIc, double nu, double E) { return KIc * KIc / E; }
124
138 inline double toKIc(double Gc, double nu, double E) { return std::sqrt(Gc * E); }
139
146void computeStateMx(data::ModelData *model, bool compute_in_parallel = false);
147
148void computeStateThetax(data::ModelData *model, bool compute_in_parallel = false);
149
150
151void computeHydrostaticStrain(data::ModelData *model, bool compute_in_parallel = false);
152
153void updateBondFractureData(data::ModelData *model, bool compute_in_parallel = false);
154
155
156} // namespace material
157
158#endif // MATERIAL_UTIL_H
A class to store model data.
Definition modelData.h:50
void computeHydrostaticStrain(data::ModelData *model, bool compute_in_parallel=false)
double toLambdaE(double E, double nu)
Compute Lame first parameter lambda from Young's modulus E and Poisson's ratio nu.
double toGc(double KIc, double nu, double E)
Compute critical energy release rate Gc from critical stress-intensity factor KIc,...
double toKIc(double Gc, double nu, double E)
Compute critical stress-intensity factor KIc from critical energy release rate Gc,...
double toNuEG(double E, double G)
Compute Poisson's ratio from Young's and Shear modulus.
void computeStateMx(data::ModelData *model, bool compute_in_parallel=false)
Computes the moment term in state-based peridynamic formulation.
double toGE(double E, double nu)
Compute shear modulus from Young's modulus E and Poisson's ratio nu.
double toLambdaK(double K, double nu)
Compute Lame first parameter lambda from Bulk modulus K and Poisson's ratio nu.
double toGK(double K, double nu)
Compute shear modulus from Bulk modulus K and Poisson's ratio nu.
double toE(double K, double nu)
Compute Young's modulus E from Bulk modulus K and Poisson's ratio nu.
void updateBondFractureData(data::ModelData *model, bool compute_in_parallel=false)
double toNu(double lambda, double mu)
Compute Poisson's ratio from Lame parameters.
void computeStateThetax(data::ModelData *model, bool compute_in_parallel=false)
double toELambda(double lambda, double nu)
Compute Young's modulus E from Lame first parameter lambda and Poisson's ratio nu.
double toK(double E, double nu)
Compute Bulk modulus K from Young's modulus K and Poisson's ratio nu.