|
|
# I) Computation micro-mechanics
|
|
|
In the computational micromechanics, we need to evaluate the stress tensor $`\mathbf{P}_M(t)`$ as a function of the strain path $`\mathbf{F}_M(t)`$. With a representative volume elmeent (RVE) $`V_0`$, a microscopic boundary value problem (mBVP) is defined as
|
|
|
|
|
|
- Local balance:
|
|
|
```math
|
|
|
\bm{\nabla}\cdot\mathbf{P}_m= \mathbf{0}\,.
|
|
|
```
|
|
|
$$\bm{\nabla}\cdot\mathbf{P}_m= \mathbf{0}\,.$$
|
|
|
|
|
|
- Local material behavior for each constituent $`\alpha`$
|
|
|
```math
|
|
|
\mathbf{P}_m(t)= \bm{\mathfrak{P}}^\alpha\left(\mathbf{F}(t),\mathbf{Z}\right)\,.
|
|
|
```
|
|
|
$$\mathbf{P}_m(t)= \bm{\mathfrak{P}}^\alpha\left(\mathbf{F}(t),\mathbf{Z}\right)\,.$$
|
|
|
|
|
|
- Strain averaging theorem:
|
|
|
$\frac{1}{V_0}\int_{V_0} \mathbf{F}_m\,dV = \mathbf{F}_M \,.$
|
|
|
$$\frac{1}{V_0}\int_{V_0} \mathbf{F}_m\,dV = \mathbf{F}_M \,.$$
|
|
|
|
|
|
- Stress averaging theorem:
|
|
|
```math
|
|
|
\frac{1}{V_0}\int_{V_0} \mathbf{P}_m\,dV = \mathbf{P}_M\,.
|
|
|
```
|
|
|
$$\frac{1}{V_0}\int_{V_0} \mathbf{P}_m\,dV = \mathbf{P}_M\,.$$
|
|
|
|
|
|
- Hill-Mandel macro-homogeneity condition:
|
|
|
```math
|
|
|
\frac{1}{V_0}\int_{V_0} \mathbf{P}_m : \dot{\mathbf{F}}_m\,dV = \mathbf{P}_M: \dot{\mathbf{F}}_M\,.
|
|
|
```
|
|
|
$$\frac{1}{V_0}\int_{V_0} \mathbf{P}_m : \dot{\mathbf{F}}_m\,dV = \mathbf{P}_M: \dot{\mathbf{F}}_M\,.$$
|
|
|
|
|
|
In general, the strain averaging theorem and the Hill-Mandel condition are sastified a priori using a microscopic boundary condition (micro-BC). Four caterogies can be found: (i) Periodic BC (PBC), (ii) Displacement BC (DBC), (iii) Minimal Kinematic BC (MKBC), and (iv) Mixed BC (MBC). The solution of this mBVP is carried out using nonLinearMechSolver, in wihch the relation between $`\mathbf{P}_M(t)`$ and $`\mathbf{F}_M(t)`$ can be obtained by different ways.
|
|
|
|
|
|
We distinguish two cases:
|
|
|
- The strain path $`\mathbf{F}_M(t)`$ (and other kinematic variables) is fully known, the stress $`\mathbf{P}_M(t)`$ (and other associated fluxes) can be found using a specific micro-BC (described in Section II). The homogenzied properties ($`\mathbf{P}_M(t)`$ and also the tangent operator $`\partial \mathbf{P}_M(t)/\partial \mathbf{F}_M(t)`$) are computed (if activated) and stored in the **csv** files located in the same folder.
|
|
|
|
|
|
- The strain path $`\mathbf{F}_M(t)`$ (and other kinematic variables) is fully known, the stress $`\mathbf{P}_M(t)`$ (and other associated fluxes) can be found using a specific micro-BC (described in Section II). The homogenzied properties ($`\mathbf{P}_M(t)`$ and also the tangent operator $`\partial \mathbf{P}_M(t)/\partial \mathbf{F}_M(t)`$) are computed (if activated) and stored in the **`csv`** files located in the same folder.
|
|
|
|
|
|
- In some cases, not all components of $`\mathbf{F}_M(t)`$ are known but some of them (e.g. make a uniaxial tension test, etc.). A system of constraints are first built based on the micro-BCs, in which some *control nodes* are defined. Then other nodes of the boundary of the RVE relate to these control-nodes by suitable contraints. Finally, the loadings are applied to control-nodes to drive the RVE following the prescribed testing mode. This possibility is detailed in Section III.
|
|
|
|
|
|
|
|
|
In nonLinearMechSolver, the treatments of the usual BC (force BC, displacement BC, ...) and microscopic BC (periodic, displacement, minimal kinematic, mixed BC) are diffrent and then distinished by the presence of a boolean **nonLinearMechSolver::_microFlag** (False by default). **_microFlag=True** if the micros-BC treatment is considered. The value of **_microFlag** can be modifed by one of following functions:
|
|
|
- **nonLinearMechSolver::setMicroSolverFlag(flag)** : to force **_microFlag** equal to **flag**
|
|
|
- **nonLinearMechSolver::addMicroBC(microBC)** : to force **_microFlag = True**
|
|
|
- **nonLinearMechSolver::activateTest()** : to force **_microFlag = False**
|
|
|
In nonLinearMechSolver, the treatments of the usual BC (force BC, displacement BC, ...) and microscopic BC (periodic, displacement, minimal kinematic, mixed BC) are diffrent and then distinished by the presence of a boolean **`nonLinearMechSolver::_microFlag`** (False by default). **`_microFlag=True`** if the micros-BC treatment is considered. The value of **`_microFlag`** can be modifed by one of following functions:
|
|
|
|
|
|
- **`nonLinearMechSolver::setMicroSolverFlag(flag)`** : to force **`_microFlag`** equal to **`flag`**
|
|
|
|
|
|
- **`nonLinearMechSolver::addMicroBC(microBC)`** : to force **`_microFlag = True`**
|
|
|
|
|
|
- **`nonLinearMechSolver::activateTest()`** : to force **`_microFlag = False`**
|
|
|
|
|
|
# II) Microscopic boundary condition (micro-BC)
|
|
|
|
... | ... | |