• fenics 笔记 2 —— 程序组成


    总的来说,基于 fenics 的程序,可大致划分为 4 个部分:问题域边界条件问题描述求解


    1 - 问题域

    首先,需要定义需要求解的问题域。通常,问题域可离散为网格单元。此外,为了准确表示问题域中的不同区域,如多种材料、边界等,常常在网格中加入标记。

    一般来说,流程如下:

    1> 创建网格,即 dolfin.Mesh 。一般来说,可以借助 mashr 从文件中读取,也可以借助内置函数创建简单/规则形状的网格。例如:

    mesh = dolfin.UnitSquareMesh(8,8)
    

    2> 创建函数空间,即 dolfin.FunctionSpace 。一般来说,如下定义:

    V = dolfin.FunctionSpace(mesh, 'p', 1)
    

    3> 子域 / 标记

    在 fenics / dolfin 中,需要区分网格中的不用部分,如不同具有不同参数,或边界等,一般需涉及 子域 以及 标记

    子域

    dolfin.SubDomain

    标记

    标记则一般通过 dolfin.MeshFunction 来进行标记,或通过其他软件绘制网格的时候,可以提前加入标记

    2 - 边界条件

    一般,三种边界条件 dolfin.DirichletBCdolfin.NeumannBCxx

    3 - 问题描述

    通过变分后,描述需要求解的问题

    4 - 求解

    直接求解就可以了

  • 相关阅读:
    groovy Date 格式化
    MySql Delete不走索引问题
    java解析文件
    H5自动准备杂记
    ubuntu 安装php ,apache 问题总结
    git 添加已被忽略的文件夹
    jenkins + nodejs + git 自动化部署前端
    分享到微信填坑之路
    jenkins 自动化部署php
    natapp 穿透访问 vue项目 Invalid Host header
  • 原文地址:https://www.cnblogs.com/wghou09/p/14396299.html
Copyright © 2020-2023  润新知