Waveguide model

Status
This old topic is closed. If you want to reopen this topic, contact a moderator using the "Report Post" button.
I understand the concept of "grid independence" but since I have to mesh the geometry once before importing(in gmsh) and once after(in ABEC), I am trying to find a balanced meshing method. ABEC suggests on using coarse mesh in gmsh but doing so affects the high frequency response.
I am not familiar with ABEC but meshing twice is not normal. What geometry formats can ABEC read? What mesh formats can it read? (I briefly tried to read the ABEC documentation but it is some old proprietary MS format).
 
Text from the Help file:

ABEC can link to a range of mesh-file formats. Currently supported are

GMSH (*.msh, text)
GID (*.msh, text)
STL (*.stl, text + binary )
Collada (*.dae)
SVG (*.svg, Dim=2D)


The mesh-file may contain Mesh-File-Tags, which facilitates the organization of linking the mesh-file to the ABEC-script.

1-2-3...



The idea is to draw a structure in a 3D-CAD application and to use the meshing-tool to create high quality meshes, which eventually can be used by ABEC.

The CAD drawing is the starting point. The drawing should show only acoustic boundaries and be as simple as possible.

Your CAD-application allows to export your draft as STEP or IGES formatted file. Export groups or layers into multiple files if necessary.

Open the STEP or IGES-file, or whatever format you have used during exporting the CAD drawing, in the meshing-tool application, such as GMESH, GID or FEMAP. Here you create the first mesh. This mesh should be as coarse as possible. Note, that eventually ABEC will provide its own meshing on top of the first mesh. ABEC can refine the mesh but can not simplify it. See at chapter Meshing.

In GMESH, GID or FEMAP save the mesh as mesh-file, best into the folder or sub-folder of the associated ABEC-project.

In ABEC register each mesh-file, so created, with the ABEC-project and provide an alias, which can be used in the scripts as a reference, see parameter MeshFileAlias=.

In ABEC-scripts use the planes of a mesh-file in sections Elements and Field and wherever a Position= needs to be specified. For each script it is possible to manipulate mesh-files with the help of section MeshFile_Properties.
 
Last edited:
Open the STEP or IGES-file, or whatever format you have used during exporting the CAD drawing, in the meshing-tool application, such as GMESH, GID or FEMAP. Here you create the first mesh. This mesh should be as coarse as possible. Note, that eventually ABEC will provide its own meshing on top of the first mesh. ABEC can refine the mesh but can not simplify it. See at chapter Meshing.
It seems ABEC is not reading geometry at all, is reading the mesh you give it and, presumably, uses it at low frequencies and subdivides at higher frequencies when the wavelength is too small for the element size. The problem is that without the geometry it doesn't know where to place the new vertices. If ABEC linearly interpolates the vertices of the original mesh then the edges of the original mesh will remain in the waveguide causing errors in the solution. Can you see this in the results?

One fairly common option is to interpolate using the vertices and the normals at the vertices which will make the coarse triangles curved and closer to the curved waveguide. However, this causes some complications such as vertices lying on real edges of the geometry needing two normals for the two meeting surfaces. The grid generator will need to know this information is required in the file and not just the vertices. Does ABEC discuss this as an option?

Another alternative would be a sequence of grids from coarse to fine created by the grid generator. Is this discussed by ABEC?

Another alternative could be to give ABEC a grid fine enough for the highest frequency and accept the low frequencies will have an unnecessarily fine grid. There will be no accuracy issues but the simulation will take much longer to run.
 
It seems ABEC is not reading geometry at all, is reading the mesh you give it and, presumably, uses it at low frequencies and subdivides at higher frequencies when the wavelength is too small for the element size. The problem is that without the geometry it doesn't know where to place the new vertices. If ABEC linearly interpolates the vertices of the original mesh then the edges of the original mesh will remain in the waveguide causing errors in the solution. Can you see this in the results?

Yes, I see this happening when I try to use a coarse mesh at the first meshing stage. After importing this mesh to ABEC, it creates a finer mesh but the original sharp edges remain. I am not sure if this is affecting my result.

One fairly common option is to interpolate using the vertices and the normals at the vertices which will make the coarse triangles curved and closer to the curved waveguide. However, this causes some complications such as vertices lying on real edges of the geometry needing two normals for the two meeting surfaces. The grid generator will need to know this information is required in the file and not just the vertices. Does ABEC discuss this as an option?

I don't think ABEC has such an option. As you said, it splits elements according to the specified parameters. It also offers two meshing methods:

'ABEC offers two types of mesh-generation: Bifurcation and Delaunay. Bifurcation is a technique where each specified quadrilateral and triangle is split into two new items in an attempt to yield a regular shape and simultaneously satisfy the specified mesh-criteria. Delaunay is an advanced schema [8], which triangulizes any shape directly in a most regular way. For most elements in ABEC the mesh-type can be selected and there are optional control parameters.'(The parameters are element size, angle constraint and number of iterations)
Perhaps someone reading this thread might have more information?
Another alternative would be a sequence of grids from coarse to fine created by the grid generator. Is this discussed by ABEC?
I don't think so.
Another alternative could be to give ABEC a grid fine enough for the highest frequency and accept the low frequencies will have an unnecessarily fine grid. There will be no accuracy issues but the simulation will take much longer to run.
Yes, currently this is the method I am following. What I am also trying to do is to mesh parts of the structure using different element sizes so that computation time can be reduced. I tried using larger element sizes for the enclosure and smaller ones for the waveguide but ABEC just does not like it! The directivity plot loses accuracy beyond a certain frequency.
 
One further thought. Does ABEC support higher order elements? If it does and you are currently using 3 node triangles then switching to ones with more nodes will mean the geometry with a coarse grid will be much better represented with curved elements (and so will the sound field enabling less elements for a given level of accuracy).

After importing this mesh to ABEC, it creates a finer mesh but the original sharp edges remain. I am not sure if this is affecting my result.
It will at higher frequencies. The SEAS DXT for example uses diffraction from creases as part of the design of the waveguide.
 
Hi all,

I read through the thread and perhaps I can give you some tips on ABEC.
Unfortunately ABEC doesn't support higher order elements, so we have to use the pretty old style straight elements.
ABEC also does not use frequency dependent mesh size - also low frequencies are calculated with full mesh resolution.
One should not use ABECs mesher, it is not that good at all - for even planes it's ok, but not when some curvature or radii come into the model.

So the way mentioned a bit earlier to import coarse mesh (from GMSH i.e.) and make it fine in ABEC is just completely wrong. ABEC does not know on which geometry the coarse mesh lies on - so if coarse mesh is imported -which cannot represent small radii or curvature- a fine mesh generated by ABEC will neither and thus lead to wrong HF performance.

Also the mesh algorithms from GMSH are way better - make the mesh as fine as necessary in GMSH (or any other external mesher) and then import it to ABEC, this is unfortunately the only way to go. As fine as necessary means: meeting the frequency requirement and representing the geometry correctly - and sometimes this needs to be even more fine then the freq. criteria.

Reducing mesh size from lets say "not so import appearing surfaces" unfortunately is no way to save mesh elements, neither. The HF perfomance of the simu model depends on the mesh size from the whole model - if some surfaces are too coarse, some errors will appear in HF. You can simply identify them in your simu results (also the one you showed earlier): they appear as vertical lines going through the dispersion contour plots and the freq. response starts to become very snappy.
However you can slightly reduce mesh size in some surfaces: the theory says that surfaces with "less pressure on it" and "more away from sources" can be a little bit more coarse. You should simply play with it and find out when the mentioned errors disappear.

Good ways to reduce calculation time is
- playing with different mesh algorithms in GMSH to reduce amount of elements
- optimize your simu model and throw away issues you don't need to simu
- using interfaces as they reduce number of freedoms
- using symmetries (!)
- buying an actual multi core processor (haha ;))

Grüße aus Berlin
 
You really hit the nail on the head! I used a fine mesh in GMSH this time. To my surprise, ABEC computes faster when I use a higher meshing frequency(in ABEC)! This might be due to the dense mesh I made in GMSH. Yeah seems like a multi core processor will make it a lot easier. Thank you Andy and NailHead.
 
Last edited:
Sad part is that even though I only require the directivity plot for the waveguide, I have to model an enclosure to avoid low frequency radiation appearing in the directivity plot. Also I have to mesh the enclosure using the same fine mesh as the waveguide. This again increases the computation time.
 
Using one quadrant has reduced the computation time considerably. I was wondering if I have assigned the right subdomains to parts of the waveguide. I am using only two subdomains(1-Interior and 2-Exterior). I have assigned the diaphragm and waveguide as interior subdomain and the enclosure as exterior. This configuration does not give me the right directivity plot. Since the waveguide is actually part of exterior of the enclosure, I tried assigning the waveguide to exterior subdomain. This gave me a much better dirctivity plot showing fairly constant directivity from 2000 to 10000Hz. Is this method right?
 
I have used an interface at the mouth of the waveguide.
Side.JPG

Full.JPG

Interface.JPG
 
In the last model you showed us, you also had modelled the back of the waveguide - this is not shown here. Is this a different model?


Ok, if you are using an interface like it is shown here, diaphragm and waveguide should be in same interior subdomain. But you also would need an exterior subdomain i.e. an enclosure or an infinite baffle.

For checking you can leave the interface and put everything together in one exterior subdomain.

Also you can feel free to upload it here and I'll have a look into it.
 
Sorry for the late reply. I have been experimenting with two models. In one model I have made the waveguide a solid(with an interior and exterior). In the other, I have modeled only the waveguide interior and have approximated the exterior using a simple wall(Like in the H400 example). I am getting good results with the latter. However, changing the damping value of the waveguide seem to be affecting the directivity pattern greatly. I was wondering what value of damping would be close to real world values.
Note:The waveguide has a depth of only 30mm.
 
ABEC (and BEM in general) is not able to handle volume related effects like damping of sound waves in air as only surfaces are discretised.

It's just about the reflection factor of the walls. A damping value of 0.05 thus means 95% of incoming waves are reflected. It is a tool to manage not 100% rigid bodys or stiff walls.
 
Status
This old topic is closed. If you want to reopen this topic, contact a moderator using the "Report Post" button.