应力张量为什么是对称的? 为什么是不对称的?(其二)

4 什么应力张量是不对称的
   如前文所指出, Cauchy应力张量的对称性得至于角动量平衡方程(2). 如果方程(2)不成立, 如将其改写为
$\int_\Omega x\times\rho \dot{u}dv=\int_\Omega x\times b dv+\int_{\partial\Omega} x\times t ds + \int_\Omega m dv$                     (10)
则Cauchy应力张量就会变得不对称性。这里增加的一项m的物理意义为外部体力矩。这是一种假设,至于如何在尺寸为零的点上施加力矩这样的问题比较难于回答,在这里我们先放过了。
   上述在古典连续体力学导入新的变量的想法其实并不新鲜,它 最早出现在1909年([17])。Cosserat理论可以说是现在渐渐变得时髦的nonlocal continuum或 generalize continuum mechanics的鼻祖。在上世纪60年代对类似理论有详细的研究。这样构筑的力学体系于古典连续体力学大不相同,它们有自己的平衡方程,本构方程,Lagrangian或Hamilton. 在这些理论体系中,Cauchy应力有些是对称的(如couple stress theory, strain graident theory),有些是不对称得(如micropolar theory)。本文无意讨论这些问题,下述文献[18]-[20]叙述的理论中的Cauchy应力都是不对称的。



5 结言:模型与现实
   在本文中,我们提到了至少两类连续体模型:一类的Cauchy应力是对称的,另一类则是不对称的。我们在构筑模型时,第一要求模型体系是自洽的,即不是自相矛盾的。  经典连续体力学就是一个这样的严格的数学体系,在该体系下不能也不可能得到不对称的Cauchy应力。第二我们要求模型可以解释已知并且可以预测物理现象。进一步,如果模型的结果与现实不相符,该模型就需要修正或者放弃重构。由于经典连续体力学在某些方面的预测结果的精度不够,nonlocal continuum或 generalize continuum mechanics正是对经典连续体力学的修正。


6 题外的话:为什么应变张量是对称的?
  在(8)式中,我们看到应变能为Cauchy应力和应变速率$\varepsilon=gradu$的积。这里定义的应变速率不是对称的,它可以分解为对称部分和反对称部分的和。考虑到Cauchy应力的对称性, 应力张量与反对称张量的乘积为零,应变能实际上只和$gradu$的对称部分有关,即$\sigma:gradu=\sigma:sym(gradu)$。这样应变速率可以定义为$\varepsilon=sym(gradu)$. 这是常见的应变张量定义方法。









参考文献


17 Cosserat; E. & F., Théorie de Corps déformables, Paris, 1909
18 Eringen, A.C; Theory of micropolar elasticity, Defense Technical Information Center, 1967
19 Nowacki, W; The linear theory of micropolar elasticity, 1972
http://bcpw.bg.pw.edu.pl/Content/970/Micropolar_Elasticity_str1_43.pdf
20 Nowacki, W; Theory of Asymmetric Elasticity, Elsevier Science & Technology, 1986

Build scotch6.0 in mingw64

1. Prerequisite
    Following tools and libraries install in mingw64: flex, yacc, zlib, pthread, mpi


2. Modify the Makefile.inc
    Based upon file Makfile.inc.i686_pc_mingw32, modify in follows
1)  Add -Drestrict=__restrict into CFLAGS_DEF
2)  Modify -lmpich2mt in LDFLAGS into -lmpicxx
3)  Modify pthread library into what you have installed


3. Add following into common.h
#ifndef HAVE_STDINT_H
#define HAVE_STDINT_H   1
#endif /* HAVE_STDINT_H */
#ifndef HAVE_UINT_T
#define HAVE_UINT_T   1
#endif /* HAVE_UINT_T */


Then, everything ok!

VS Code下cmake, c++编译,调试环境的构成步骤

1   下载必须extension      按[Ctrl+Shift+X]打开extension窗口,选择安装"C/C++", "CMake", "CMake Tools" 2   在VSCode下打开作业目录 ...