Source code for o3seespy.command.region
from o3seespy.base_model import OpenSeesObject
from o3seespy.command.common import get_node_tags, get_ele_tags
[docs]class NodeRegion(OpenSeesObject):
op_base_type = "region"
op_type = None
def __init__(self, osi, nodes, rayleigh=None):
"""
A region defined by a group of nodes
Parameters
----------
osi : opensees_pack.opensees_instance.OpenSeesInstance object
An instance of opensees
nodes : str or list
list of Nodes
rayleigh: dict
Dictionary of Rayleigh parameters
"""
self.osi = osi
osi.n_region += 1
self._tag = osi.n_region
self._parameters = [self._tag, "-node"]
if isinstance(nodes, str) and nodes == 'all':
self.nodes = 'all'
self._parameters += get_node_tags(osi)
else:
self.nodes = [x.tag for x in nodes]
self._parameters += self.nodes
self.rayleigh = rayleigh
if rayleigh is not None:
pms = ['alpha_m', 'beta_k', 'beta_k_init', 'beta_k_comm']
self._parameters.append('-rayleigh')
for pm in pms:
if pm in rayleigh:
self._parameters.append(rayleigh[pm])
else:
self._parameters.append(0.0)
self.to_process(osi)
[docs]class ElementRegion(OpenSeesObject):
op_base_type = "region"
op_type = None
def __init__(self, osi, eles, rayleigh=None):
"""
A region defined by a group of elements
Parameters
----------
osi : opensees_pack.opensees_instance.OpenSeesInstance object
An instance of opensees
eles : str or list
list of elements
rayleigh: dict
Dictionary of Rayleigh parameters
"""
self.osi = osi
osi.n_region += 1
self._tag = osi.n_region
self._parameters = [self._tag, "-ele"]
if isinstance(eles, str) and eles == 'all':
self.eles = 'all'
self._parameters += get_ele_tags(osi)
else:
self.eles = [x.tag for x in eles]
self._parameters += self.eles
self.rayleigh = rayleigh
if rayleigh is not None:
pms = ['alpha_m', 'beta_k', 'beta_k_init', 'beta_k_comm']
self._parameters.append('-rayleigh')
for pm in pms:
if pm in rayleigh:
self._parameters.append(rayleigh[pm])
else:
self._parameters.append(0.0)
self.to_process(osi)