美文网首页
dealii学习

dealii学习

作者: 不想当社畜 | 来源:发表于2018-12-27 19:55 被阅读0次

学习step-40的例子.

网格生成函数

dealii中使用的命名空间GridGenerator,里边包含了一些基本的几何模型网格生成,2维问题只能生成四边形网格,三维问题只能生成六面体网格.

里面有很多函数,作用的大同小异.

对使用到的一个函数进行分析:

hyper_cube (Triangulation< dim, spacedim > &tria, const double left=0., const double right=1., const bool colorize=false)

作用:
生成一个正方形网格.模型尺寸为:(left,left)和(right,right)构成的正方体.

# 参数说明:
tria 是一个用来存放网格数据格式.它的参数说明:有两个参数 dim 和spacedim.
当dim<spacedim时,比如dim=2,spacedim=3,此时网格本质是二维(dim)网格,但其使用的坐标(spacedim)是三维的,即坐标是z方向的坐标值为0.即生成的网格是二维的网格. dim 代表模型网格属性 spacedim 代表模型的空间位置

left 坐标轴方向的最小值
right 坐标轴方向的最大值 当left=-1,right=1时,生成一个网格,顶点坐标(-1,-1),(1,1)的一个立方体.
colorize 表示是否对边界进行染色(标记),当为否的话,默认所有边界的标记都是0;当使用标记的话,x方向上,对应的标记值为0,1(左右),y方向的标记值为2,3(上下),z方向的标记值为4,5.(前后)

参考坐标:
                  y
                  |
                  |
                  |
                  |
                  |__ __ __ __ __ __x
                 /               
                /
               /
              /
            z  

参考链接函数

处理约束的函数

使用到VectorTools命名空间中的一些函数,该命名空间的主要作用是提供了一些关于向量的操作。其中包括标准矢量的组合,有限元解和连续函数的差的积分,连续函数的插值和投影到有限元空间和其他操作。

里面有很多很方便的函数,具体好的其他功能,之后学习之后更新.

下面主要学习这个边界差值函数:interpolate_boundary_values,它有很多的

interpolate_boundary_values(const DoFHandlerType <dim,spacedim>&dof,const types :: boundary_id boundary_component,const Function <spacedim,number>&boundary_function,ConstraintMatrix&constraints,const ComponentMask&component_mask = ComponentMask())

作用:
根据网格的拓扑信息和自由度信息(两个信息存放在dof上),对该模型中制定的边界上使用差值函数boundary_function进行操作,让后将该边界上差值后的值放到constraints矩阵中.componentMarsk在处理向量值问题的时候使用.暂时还不知道作用.

eg:
VectorTools::interpolate_boundary_values (dof_handler,
                                              0,
                                              Functions::ZeroFunction<dim>(),
                                              constraints);

当我这样调用时,就是想把边界id编号为0的边界使用差值函数(Functions::ZeroFunction<dim>()(0差值函数,导致最后所有点的值为0)),放到constranints上.
当我生成网格的时候,没有对边界进行显示标记时,此时所有边界都是标记为0,则使用该函数说明把所有边界各个方向的自由度有约束住了.

constraints就是用来处理约束问题的.

参考链接函数


问题
当我就想约束中每个节点上的某些自由度时,估计就应该直接使用ConstraintMatrix该类中的一些函数了.(具体还不太清楚)

相关文章

  • dealii学习

    学习step-40的例子. 网格生成函数 在dealii中使用的命名空间,里边包含了一些基本的几何模型网格生成,2...

  • dealii例子

    阅读dealii源码过程中的理解 step-1 例子 主要使用自带的grid类生成网格数据,还能生成图片,如何实现...

  • MAC OS下安装和使用aspect

    aspect是目前比较活跃的地幔对流求解器,基于Deallii。 安装Dealii 在mac系统下安装也很简单,直...

  • 学习学习学习

    第三天了,连续三天,早上睁眼开始,看视频,做课件,连续作业,直到晚上十二点才睡觉。吃饭不规律,想起来就吃,感觉不饿...

  • 学习学习学习

    23岁的我,才真正明白,什么是学习,什么是努力,努力和不努力真的不同,就好比同样是一篇稿子,我用一周背下来,有的人...

  • 学习学习学习!

    妈妈总是让我学习,我只能用装当办法。 方法一: 方法二: 方法三: 方法四: ...

  • 学习学习学习

    001.今天看财富自由之路看了第二遍,而且看了一半,算是完成任务很开心。中间有想放弃的念头,坚持看完。眼睛痛,一直...

  • 学习学习学习

    马自达为什么坚持高压缩比自吸

  • 学习!学习!学习!

    学习的痛苦是暂时的 没有学到的痛苦是永恒的 因为学习而特别充实的一天 很踏实 ~~~~ 2015.11.28.阴天...

  • 学习!学习!学习!

    无数次想要去逃离,可这封闭的世界根本出不去。你没有什么可以抛弃、只能咬着牙带着面具微笑的活下去。 没有那个人、他也...

网友评论

      本文标题:dealii学习

      本文链接:https://www.haomeiwen.com/subject/ndvdlqtx.html