Helper utilities for OpenFOAM blockMeshDict generation.
Project description
Helper utilities for OpenFOAM blockMeshDict generation.
For what?
The aim of ofblocmeshdicthekper is to provide name-based access to the elements of blockDictMesh file, such as vertex, block, face, etc.
Installation
From PyPI simply,
pip install ofblockmeshdicthelper
Or, it is allowed to install directory from github repository (this or your own forked one).
Example
Here is an example which generate wedged model shown at https://openfoamwiki.net/index.php/Main_ContribExamples/AxiSymmetric
""" example of ofblockmeshdicthelper try to generate wedged pype object shown at https://openfoamwiki.net/index.php/Main_ContribExamples/AxiSymmetric """ from __future__ import unicode_literals, print_function import math from ofblockmeshdicthelper import BlockMeshDict, Vertex, SimpleGrading wedgedegree = 5.0 # geometries radius_x = 0.19 length_z = 1.1 # prepare ofblockmeshdicthelper.BlockMeshDict instance to # gather vertices, blocks, faces and boundaries. bmd = BlockMeshDict() # set metrics bmd.set_metric('m') # base vertices which are rotated +- 2.5 degrees basevs = [ Vertex(0, 0, 0, 'v0'), Vertex(radius_x, 0, 0, 'v1'), Vertex(radius_x, 0, length_z, 'v2'), Vertex(0, 0, length_z, 'v3')] # rotate wedgedegree/2 around z axis # rotated vertices are named with '-y' or '+y' suffix. # these verteces are added to BlockMeshDict instence to be referred # by following blocks and faces... cosd = math.cos(math.radians(wedgedegree/2.0)) sind = math.sin(math.radians(wedgedegree/2.0)) for v in basevs: bmd.add_vertex(v.x*cosd, -v.x*sind, v.z, v.name+'-y') bmd.add_vertex(v.x*cosd, v.x*sind, v.z, v.name+'+y') # v0+y and v3+y have same coordinate as v0-y and v3-y, respectively. bmd.reduce_vertex('v0-y', 'v0+y') bmd.reduce_vertex('v3-y', 'v3+y') # utility to to generate vertex names def vnamegen(x0z0, x1z0, x1z1, x0z1): return (x0z0+'-y', x1z0+'-y', x1z0+'+y', x0z0+'+y', x0z1+'-y', x1z1+'-y', x1z1+'+y', x0z1+'+y') # Noted that 'v0+y' and 'v3+y' are still valid. # you may define simplegrading and multigrading (for OF>=2.4) optionally. b0 = bmd.add_hexblock(vnamegen('v0', 'v1', 'v2', 'v3'), (19, 1, 300), 'b0', grading=SimpleGrading(0.1, ((0.2, 0.3, 4), (0.6, 0.4, 1), (0.2, 0.3, 1.0/4.0)), # face element of block can be generated by Block.face method bmd.add_boundary('wedge', 'front', [b0.face('s')]) bmd.add_boundary('wedge', 'back', [b0.face('n')]) bmd.add_boundary('wall', 'tankWall', [b0.face('e')]) bmd.add_boundary('patch', 'inlet', [b0.face('b')]) bmd.add_boundary('patch', 'outlet', [b0.face('t')]) bmd.add_boundary('empty', 'axis', [b0.face('w')]) # prepare for output bmd.assign_vertexid() # output print(bmd.format())
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Filename, size | File type | Python version | Upload date | Hashes |
---|---|---|---|---|
Filename, size ofblockmeshdicthelper-0.1.7.tar.gz (6.9 kB) | File type Source | Python version None | Upload date | Hashes View |
Close
Hashes for ofblockmeshdicthelper-0.1.7.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | d5cca0e8da7f5b266b52982c6e6040d2ede1bba325cc69d36e2954477cef22da |
|
MD5 | bce0fc73bd5368a0f36e9395adf66b5a |
|
BLAKE2-256 | d4172f592b829928c07bd83b895f4c34590a0604af8d50b41ecaf4fa2a1b66c8 |