artsim - acoustic real- time simulation package a european collaboration based on the open source...

14
ARTSIM - Acoustic ARTSIM - Acoustic Real-Time Real-Time Simulation Package Simulation Package A European Collaboration A European Collaboration based on the Open Source based on the Open Source Concept Concept ADSLib – Acoustic Duct Simulation Library ASPack – Acoustic Simulation Package ARTSPAC – Acoustic Real-Time Simulation Package EMAS – European Musical Acoustics Simulation Library EADS.Lib – European Acoustic Duct Simulation Library ADSS – Acoustic Duct Simulation Software

Upload: spencer-childers

Post on 16-Dec-2015

218 views

Category:

Documents


1 download

TRANSCRIPT

ARTSIM - Acoustic ARTSIM - Acoustic Real-Time Real-Time Simulation Simulation

PackagePackageA European Collaboration A European Collaboration based on the Open Source based on the Open Source

ConceptConcept

ADSLib – Acoustic Duct Simulation Library ASPack – Acoustic Simulation Package

ARTSPAC – Acoustic Real-Time Simulation Package

EMAS – European Musical Acoustics Simulation Library

EADS.Lib – European Acoustic Duct Simulation Library

ADSS – Acoustic Duct Simulation Software

Goal of the projectGoal of the project

Simulation package for arbitrary topologies of Simulation package for arbitrary topologies of acoustical ducts with realistic termination conditionsacoustical ducts with realistic termination conditions..

ApplicationsApplications

Computer Optimization of Wind InstrumentsComputer Optimization of Wind Instruments Interactive Design of Wind InstrumentsInteractive Design of Wind Instruments Accurate Modeling of arbitrary topologies Accurate Modeling of arbitrary topologies

(e.g. ventilation duct systems, exhaust (e.g. ventilation duct systems, exhaust systems)systems)

Bore reconstructionBore reconstruction Surface condition related loss Surface condition related loss

reconstructionreconstruction Determination of true termination Determination of true termination

impedance impedance

Final StageFinal Stage

Single Mode, Multi Mode, 2D+3D CFDSingle Mode, Multi Mode, 2D+3D CFD Frequency Domain, Time DomainFrequency Domain, Time Domain Basic building blocksBasic building blocks

straight and bent tubes and conesstraight and bent tubes and cones various kinds of side holes, bellsvarious kinds of side holes, bells various realistic (measured) termination conditionsvarious realistic (measured) termination conditions loss coefficients related to certain surface loss coefficients related to certain surface

conditionsconditions Easy interactive I/O, numerical & semi-Easy interactive I/O, numerical & semi-

graphicalgraphical

Primary ConceptsPrimary Concepts EfficiencyEfficiency – never calculate something – never calculate something

twicetwice FlexibilityFlexibility – allow any shape with shunt – allow any shape with shunt

impedances (tone holes)impedances (tone holes) ExtendibilityExtendibility – add new models at any – add new models at any

time without invalidating application time without invalidating application softwaresoftware

GeneralityGenerality – don’t restrict future models in – don’t restrict future models in any way, allow mixed mode simulationany way, allow mixed mode simulation

PortabilityPortability – generate code from abstract – generate code from abstract descriptions, don’t rely on specific descriptions, don’t rely on specific compiler/OScompiler/OS

Team Development Team Development – strict interfaces – strict interfaces

EfficiencyEfficiency Hierarchical representation with pre-Hierarchical representation with pre-

calculated propagation matrices of calculated propagation matrices of whole sections which are rarely whole sections which are rarely modified.modified.

Impedance cache for each section to Impedance cache for each section to avoid recalculation in case of constant avoid recalculation in case of constant upstream conditions.upstream conditions.

Notification mechanism invalidates only Notification mechanism invalidates only those cache entries which are affected those cache entries which are affected by the change of a geometric or by the change of a geometric or acoustical property value.acoustical property value.

Example: Pressing a keyExample: Pressing a key

Input Impedance known by CFD (e.g. Lattice-Boltzmann)

ZBell

ZOpen

Key up/down switches termination conditions

ZTerm= const !

ZUp

A 1 A 2

ZIn

A 3

Example: Pressing a keyExample: Pressing a key

Input Impedance known by CFD (e.g. Lattice-Boltzmann)

ZBell

ZOpen

Key up/down switches termination conditions

ZTerm= const !

ZDown

A 1 A 2

ZIn

A 3

Extendibility, GeneralityExtendibility, Generality

Object oriented approach Object oriented approach (inheritance of functionality, partial (inheritance of functionality, partial overload, new properties)overload, new properties)

Generic application interfaceGeneric application interface Enumeration of model capabilitiesEnumeration of model capabilities Model communicates its properties by Model communicates its properties by

name, type and descriptionname, type and description Application can register any property Application can register any property

for subsequent modificationsfor subsequent modifications Generic model and wave datatypesGeneric model and wave datatypes

PortabilityPortability

ANSI C++ANSI C++ No OS dependent librariesNo OS dependent libraries Generic graphical outputGeneric graphical output Simple application interface Simple application interface

compatible with VB, C++, Java, compatible with VB, C++, Java, Delphi… Delphi…

Open Source policy allows everybody Open Source policy allows everybody to create its own applications from to create its own applications from tested and proven technologies.tested and proven technologies.

Team DevelopmentTeam Development

UML DesignUML Design Abstract description of class Abstract description of class

dependencies enforces interface dependencies enforces interface disciplinediscipline

Documentation already on abstract Documentation already on abstract levellevel

Skeleton code generation for C++ Skeleton code generation for C++ includes all commentsincludes all comments

Version control systemVersion control system

UML RepresentationUML RepresentationCListNode

Succ : CListNodePred : CListNode

Create()Destroy()Replace()Pick()InsertBefore()InsertAfter()FindRoot()

CLinkedListHere : CListNodeHead : CListNodeTail : CListNode

Create()Destroy()Count()Empty()First()Last()Prev()Next()Goto()Find()

CAcousticElementName : stringUnits : doubleInstances : CLinkedListValidModel : BoolpProperties : CLinkedListpTerminals : int

CAcousticElement()~CAcousticElement()Terminals()Terminate()<<virtual>> RequestModel()<<virtual>> Evaluate()

CAcousticPropagation

<<virtual>> RequestModel()<<virtual>> Evaluate()

CConicalSliceLength : CRelValLeftDiameter : CRelValRightDiameter : CRelVal

RequestModel()Evaluate()

CContainer

<<virtual>> RequestModel()<<virtual>> Evaluate()

CCircularElement

RequestModel()Evaluate()

CHyperbolicElementInitialDiameter : CRelValInitialSlope : CRelValLength : CRelValOrder : CRelValRelativeError : CRelVal

RequestModel()Evaluate()

CAcousticTermination

RequestModel()<<virtual>> Evaluate()

COpenAirTemperature : double

Evaluate()

CPerfectReflection

Evaluate()

CComplexTerminationTerminationImpedance : CImpedance

Evaluate()CAcousticBranch

RequestModel()Evaluate()

CExponentialSlice

RequestModel()Evaluate()

CCylindricalSlice

RequestModel()Evaluate()

CToneholeElelement

RequestModel()Evaluate()

0,0mm

Real-Time SimulationReal-Time Simulation

0,2mm

Real-Time SimulationReal-Time Simulation