Source code for butterfly.g
# coding=utf-8
"""g[ravity] class."""
from foamfile import FoamFile, foam_file_from_file
from collections import OrderedDict
[docs]class G(FoamFile):
"""G (gravity) class."""
# set default valus for this class
__default_values = OrderedDict()
__default_values['dimensions'] = '[0 1 -2 0 0 0 0]'
__default_values['#include'] = None
__default_values['value'] = '(0 0 -9.81)'
def __init__(self, values=None):
"""Init class."""
FoamFile.__init__(self, name='g',
cls='uniformDimensionedVectorField',
location='constant',
default_values=self.__default_values,
values=values)
[docs] @classmethod
def from_file(cls, filepath):
"""Create a FoamFile from a file.
Args:
filepath: Full file path to dictionary.
"""
return cls(values=foam_file_from_file(filepath, cls.__name__))
@property
def dimensions(self):
return self.values['dimensions']
@property
def value(self):
"""Gravity vector."""
return eval(self.values['value'].replace(' ', ','))
@value.setter
def value(self, vec):
"""Set gravity vector."""
assert len(vec) == 3, \
ValueError('Gravity vector must be a tuple with 3 values.')
self.values['value'] = '({})'.format(' '.join((str(v) for v in vec)))