ofblockmeshdicthelper
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)),
1))
# 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())
Metadata
Release files for ofblockmeshdicthelper 0.2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| ofblockmeshdicthelper-0.2.0.tar.gz | 7.1 kB | Without provenance | Details for ofblockmeshdicthelper-0.2.0.tar.gz |
Release files / ofblockmeshdicthelper-0.2.0.tar.gz
| Download URL | ofblockmeshdicthelper-0.2.0.tar.gz |
|---|---|
| Size | 7.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
3f845516cd29f15ab300c117d6c22e757d59d586468b69fb6b73e8adce877126
|
|
BLAKE2b-256 checksum How to use checksums |
860e74b1296c1f2c1da012bf13bbcebe4af1ee2cf8a898587a030c7bac281db7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
Security for ofblockmeshdicthelper 0.2.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.