首页/文章/ 详情

连续介质力学的拓扑学思维(一)

1天前浏览26

 

你可能听说过这样一个说法:拓扑学,研究的是那些在连续变形下保持不变的性质。最经典的例子就是咖啡杯和甜甜圈--在数学家眼中,它们的表面是同一个形状,只要不撕裂、不粘合,咖啡杯的表面总能连续地变形为一个甜甜圈的表面。在拓扑学角度,咖啡杯和甜甜圈,就是同一个形状。

连续介质力学的语境中,如前所述,首先需要一个空间模型--构型。定义这种模型的第一步,是将空间解释为点的集 合。然而,如果不同的点要以某种方式指代不同的位置,那么单纯的点的集 合就相当无用。尽管集 合因具有子集概念以及并、交等运算而已具备某种结构,但仍需额外的数学结构,才能使位置这类概念具有意义。经验告诉我们,位置通常是相对于预先定义的参考点来表达的。另一方面,这又要求将不同的点相互关联起来,例如通过距离。距离主要是一个定量概念。然而,除了点之间的距离、曲线的长度等定量特征外,还有其他特征,通常统称为拓扑特征。例如,在连续介质力学中,物质体的概念通常是这样引入的:物质体通过在某一时刻占据空间中的一个区域,即上述点集的一个子集,而为我们所感知。回顾一下通常用于说明连续介质力学基本思想的示意图就会发现,人们默认这个区域是“连通的”,并且通常具有“内部”和“边界”。

直观上,我们不难接受“连通”、“内部”和“边界”是拓扑性质。然而,还有其他性质,其拓扑特征远非如此显而易见。因此,问题便产生了:如何更精确地定义拓扑性质?下面的实验或许能给我们一些初步线索。给一个气球充气,直到能在上面画出几何图形。这可以称为初始构型。之后,将气球进一步充气(当前构型)可以检查这些图形,以找出那些在从初始构型过渡到当前构型时不变的性质。想到这个实验,人们或许会倾向于认为,拓扑性质就是那些在连续变换,即连续映射下不变的性质。然而,没有精确的连续性概念,这并非真正的定义,充其量只是一个启发思考的方式,最终由此构建出一个严谨的框架。此外,事实证明,并非所有连续映射都适合将拓扑性质与其他性质明确区分开来,而只有所谓的同胚映射,即双向连续的双射映射才适合。

涵盖上述问题的学科称为点集拓扑学,它可以通过多种方式来概述。也许最直观的方式是从度量空间入手,即一个点集连同一种允许我们测量点之间距离的结构。如图1是一根长度为  的杆拉伸到  ,  为空间模型的两个点,从初始构型到当前构型的简单映射,两种构型共用一个坐标系


利用物质坐标和空间坐标,便可以表述质点的位移。度量位移的定义是

在物质描述中,上式可写为

对于图1,  

大多数关于度量空间拓扑的教材首先关注序列的收敛性和连续性。像内部或边界这样的集 合性质,则放在后面讨论,以便为下一个抽象层次,即拓扑空间做准备。

 



来源:数值分析与有限元编程
科普
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2026-09-30
最近编辑:1天前
译码当先
本科 慢慢来
获赞 14粉丝 32文章 400课程 0
点赞
收藏
作者推荐

有限元方法求结构的临界荷载的最后一步该怎么算?

用有限元方法求结构的临界荷载时,仅通过能量变分或者虚功原理得到很多参考资料在举例时往往忽略了具体求解过程。本文重点就是如何对(1)进行数值求解。在(1)中, 称为梁单元的几何刚度矩阵或初应力矩阵,其与轴向力 成正比,与材料无关。以上推导中轴向力取拉为正,轴向力为压力时削弱了梁的抗弯刚度。如果结构的初应力矩阵是按照某个参考载荷 求出的,那么,结构在临界失稳状态时的屈曲载荷为 ,对应的初应力矩阵也随之改变为入 ,则式(1)为结构失稳的临界载荷对应于结构进入随遇平衡状态,此时在外载荷不变的情况下,结构可由原来的平衡位置转入邻近的平衡位置,因此齐次方程组(2)有非零解,则在以上推导过程中杆件轴力是以受拉为正的。一般在作刚架稳定性分析时习惯上将轴向力取受压为正。此时,式(2)应改写为例子1用有限元法来求解一端固支、一端简支,长度为 的杆的屈曲荷载(划分2个单元)。 ▲图1图1a的有限元模型如图1b所示。采用先处理法,整体结点未知位移列阵如下得到2个单元弹性刚度矩阵分别为单元1,2几何刚度矩阵整体弹性刚度矩阵为整体几何刚度矩阵为令 ,则 可得代入(3)得展开是关于 的3次方程,解得最小的 ,故临界荷载为 用sympy求解如下 import marimo as moimport sympy as sp# marimo类似于jupyter# 定义符号μ, l = sp.symbols('μ, l', real = True, positive = True )l2 = l**2# 定义矩阵M = sp.Matrix([[ 24-μ*12/5, 0, 6*l- l*μ/10], [ 0, 8*l2 - 4*l2*μ/15, 2*l2+l2*μ/30], [6*l - l*μ/10, 2*l2+l2*μ/30, 4*l2 - 2*l2*μ/15] ])# 计算行列式det_M = M.det()# 解关于μ的三次方程sol = sp.solve(det_M, μ)# 数值解sol_numeric = [s.evalf() for s in sol]# 格式化输出,f字符串包裹的是markdown格式mo.md(f"""**解的结果:**$$ |M| = {sp.latex(det_M)} $$$$ μ = {sp.latex(sol_numeric)} $$""") 例子2用有限单元法计算图2a所示刚架的临界荷载。 ▲图2图2a的有限元模型如图2b所示。采用先处理法,整体结点未知位移列阵如下得到3个单元弹性刚度矩阵分别为由于单元1没有轴向力作用,因此,单元1几何刚度矩阵忽略不计。单元2,3几何刚度矩阵整体弹性刚度矩阵为整体几何刚度矩阵为令 ,则 可得代入(3)得展开是关于 的3次方程,解得最小的 ,故临界荷载为 import marimo as moimport sympy as sp# marimo类似于jupyter# 定义符号μ, l = sp.symbols('μ, l', real = True, positive = True )l2 = l**2# 定义矩阵M = sp.Matrix([[12*l2-μ*4*l2, -24*l+6*l*μ, 4*l2+ l2*μ], [-24*l+6*l*μ, 192-288*μ, 0 ], [4*l2+ l2*μ, 0, 16*l2 - 8*l2*μ] ])# 计算行列式det_M = M.det()# 解关于μ的三次方程sol = sp.solve(det_M, μ)# 数值解sol_numeric = [s.evalf() for s in sol]# 格式化输出,f字符串包裹的是markdown格式mo.md(f"""**解的结果:**$$ |M| = {sp.latex(det_M)} $$$$ μ = {sp.latex(sol_numeric)} $$""") 有限元模型有3个自由度,这个方法最终求关于 的3次方程的根。也就是说,有 个自由度,就要解关于 的 次方程的根。 来源:数值分析与有限元编程

未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习计划 福利任务
下载APP
联系我们
帮助与反馈