In [1]:
from seapy import System
import numpy as np
%matplotlib inline
To create a SEA model we begin by creating an instance of System
.
In [2]:
system1 = System()
We are only interested in a limited frequency range.
In [3]:
from acoustics.signal import OctaveBand
f = OctaveBand(fstart=1000.0, fstop=4000.0, fraction=3)
system1.frequency.center = f.center
system1.frequency.lower = f.lower
system1.frequency.upper = f.upper
system1.frequency.enabled = f.center.astype(bool)
The room is filled with air.
In [4]:
air = system1.addMaterial('air',
'MaterialGas',
density = 1.296,
temperature = 293.0,
bulk = 1.01e5,
loss_factor=np.ones(len(system1.frequency.center))*0.01)
The plate is made of steel.
In [5]:
steel = system1.addMaterial('steel',
'MaterialSolid',
young=1.0e7,
poisson=0.30,
density=8.0e3,
loss_factor=np.ones(len(system1.frequency.center))*0.02)
In [6]:
from seapy.materials.materialsolid import modulus
steel.shear = modulus('shear', young=steel.young, poisson=steel.poisson)
print(steel.shear)
The room is modelled as a 2D cavity.
In [7]:
room1 = system1.addComponent('room1',
'Component3DAcoustical',
material='air',
volume=50.0,)
In [8]:
#fig = room1.subsystem_long.plot("resistance_point_average")
In [9]:
plate1 = system1.addComponent('plate1',
'Component2DPlate',
material='steel',
length=3.0,
width=3.0,
height=0.01)
In [10]:
junction1 = system1.addJunction('junction1', 'Junction', shape='Surface',
components=['room1', 'plate1'])
In [11]:
excitation1 = plate1.subsystem_bend.addExcitation('excitation1',
'ExcitationPointForce',
velocity=1.0)
In [12]:
#system1.objects_info()
In [13]:
#fig = excitation1.plot('resistance')
In [14]:
room1.subsystem_long.info(['soundspeed_group', 'modal_density'])
Out[14]:
In [15]:
plate1.subsystem_bend.info(['soundspeed_group', 'modal_density'])
Out[15]:
In [16]:
plate1.subsystem_shear.info(['soundspeed_group', 'modal_density'])
Out[16]:
In [17]:
system1.info(system1.subsystems, 'tlf')
Out[17]:
In [18]:
system1.info(system1.subsystems, 'modal_density')
Out[18]:
In [19]:
system1.solveSystem()
Out[19]:
In [20]:
system1.info(system1.subsystems, 'modal_energy')
Out[20]:
In [21]:
system1.info(system1.subsystems, 'velocity_level')
Out[21]:
In [22]:
system1.info(system1.subsystems, 'pressure_level')
Out[22]:
In [23]:
system1.info(system1.components, 'velocity_level')
Out[23]:
In [24]:
system1.info(system1.components, 'pressure_level')
Out[24]:
In [ ]:
system1.info(system1.couplings, 'critical_frequency')
In [ ]:
room1.subsystem_long.info(['soundspeed_group'])
In [ ]:
plate1.subsystem_long.info(['soundspeed_group'])
In [ ]:
plate1.subsystem_bend.info(['soundspeed_group', 'flexural_rigidity'])
In [ ]:
print(plate1.mass_per_area)
In [ ]:
print(plate1.frequency.angular)
In [ ]:
print(plate1.subsystem_bend.soundspeed_group)
In [ ]: