# ofblockmeshdicthelper Release 0.2.0

Helper utilities for OpenFOAM blockMeshDict generation.

MIT
Install
``` pip install ofblockmeshdicthelper==0.2.0 ```

# 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
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(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...
for v in basevs:

# 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.
b0 = bmd.add_hexblock(vnamegen('v0', 'v1', 'v2', 'v3'),
(19, 1, 300),
'b0',
((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