• 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 - 求解

    直接求解就可以了

  • 相关阅读:
    css3渐变色
    css3背景
    css3边框
    css3弹性盒子
    计算机概论
    中断和异常的处理与抢占式多任务
    分页机制和动态页面分配
    任务切换
    任务的隔离和特权级保护
    程序的动态加载和执行
  • 原文地址:https://www.cnblogs.com/wghou09/p/14396299.html
Copyright © 2020-2023  润新知