This is a pre-production deployment of Warehouse, however changes made here WILL affect the production instance of PyPI.
Latest Version Dependencies status unknown Test status unknown Test coverage unknown
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)),
                                            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())
Release History

Release History

0.1.9

This version

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.1.8

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.1.7

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.1.5

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.1.4

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.1.3

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.1.2

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.1.1

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.1.0

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

Download Files

Download Files

TODO: Brief introduction on what you do with files - including link to relevant help section.

File Name & Checksum SHA256 Checksum Help Version File Type Upload Date
ofblockmeshdicthelper-0.1.9.tar.gz (6.9 kB) Copy SHA256 Checksum SHA256 Source Jul 9, 2015

Supported By

WebFaction WebFaction Technical Writing Elastic Elastic Search Pingdom Pingdom Monitoring Dyn Dyn DNS HPE HPE Development Sentry Sentry Error Logging CloudAMQP CloudAMQP RabbitMQ Heroku Heroku PaaS Kabu Creative Kabu Creative UX & Design Fastly Fastly CDN DigiCert DigiCert EV Certificate Rackspace Rackspace Cloud Servers DreamHost DreamHost Log Hosting