ABEC experts - help!

Status
This old topic is closed. If you want to reopen this topic, contact a moderator using the "Report Post" button.
Hi Frederik,

Good to see that everything seems to work fine.

Just a few comments...

Regarding the mesh-frequency I'd second Don:
MeshFrequency checks the edge length of all facets to see if they are at least 1/2 lambda. ABEC will remesh (subdivide facets) if there is a violation. It is also used to create the observation field meshes. It's a good way to check if your external generated meshes are fine enough. Set the MeshFreq to a low value, select mesh only in ABEC, then look at the #elements in the Solve tab. Change the MeshFreq to what you really need, then select mesh only in ABEC, and check the #elements in the Solve tab. If it changed alot (>10%) your mesh is not fine enough and you should remesh again in gmsh.

i.e. I woud not use 20kHz s mesh frequency in ABEC, if you already checked your mesh as described by Don above. I usually set mesh frequency in the solving script relatively low, if I work with imported meshes from GMSH.
Control_Solver
f1=1000
f2=10000
NumFrequencies=6
Abscissa=log
Dim=3D
MeshFrequency=20kHz
Sym=yz

Regarding the infinite baffle or back-enclosure:
Quote:
Another question on your sim:
Did you simulate using an infinite baffle, or did you simulate with a back-enclosure?
No infinite baffle. I tried simulating a enclosure just around the back of the membrane. There is no outside wall on the WG itself. Is that necessary?
Yes, you have to deal with this in some way at least. You already introduced an infinite baffle, so this is no issue any more. Nevertheless, you should construct an enclosure around the entire horn, if you do not want to use an infinite baffle. You could as well use a 'trick' suggested in the example file of the Expo400 horn (see example files/BEM)...

Does anyone have code example for plotting several SPL curves like Gaga did here?
You can do this as you suggested in your next contribution. However, there is a direct way in VACS: With a 'Polar Plot' opened in VACS, select 'Graph' and 'Convert Curves --- Contour' and VACS will give you the respective SPL curves.

The directivity plot of your waveguide after optimization looks very good. Would you mind to show / indicate the stpes away from the OS-waveguide to your optimized contour?

BW,
Christoph
 
Good to see you got it working.

MeshFrequency checks the edge length of all facets to see if they are at least 1/2 lambda. ABEC will remesh (subdivide facets) if there is a violation. It is also used to create the observation field meshes. It's a good way to check if your external generated meshes are fine enough. Set the MeshFreq to a low value, select mesh only in ABEC, then look at the #elements in the Solve tab. Change the MeshFreq to what you really need, then select mesh only in ABEC, and check the #elements in the Solve tab. If it changed alot (>10%) your mesh is not fine enough and you should remesh again in gmsh.

I adjusted the mesh frequency both up and down and I see no change in elements before 23kHz. The question then is if this is enough resolution to accurately model my waveguide. I guess this would have to be done by gradually making the mesh coarser or finer and see when the solutions converge?


Jagged edge is from an observation facet intersecting another object and its not mesh aligned (as per @Andy19191, @Gaga). The facet cannot be resolved and its shown as a "whitespace". I just ignore them. However if you really want a clean edge, a) design your observation fields so they do not touch other objects or b) create the fields externally and mesh them so their facets are edge and vertex aligned to the waveguide/horn/cabinet. Increasing the MeshFreq will not prevent this.

I see. I don't care if they are jagged near the walls, as long as it doesn't do serious harm to the accuracy in the far field.

FredrikC,

Thank you so much. I'd given up on ABEC for similar reasons. Looks like it's time to fire up my workstation and try out these solutions.

I know how you feel, it's not the easiest software to learn. But I think for people like us, who enjoys creating speakers for a hobby, 3D printing waveguides and so on, BEM is a very nice tool. One would rarely design a box without calculating the bass response through TS parameters. We should be able to predict our radiation pattern aswell!

Hi Frederik,

Good to see that everything seems to work fine.

Just a few comments...

Regarding the mesh-frequency I'd second Don:


i.e. I woud not use 20kHz s mesh frequency in ABEC, if you already checked your mesh as described by Don above. I usually set mesh frequency in the solving script relatively low, if I work with imported meshes from GMSH.

Why is that? Is there any harm done in using a high frequency if ABEC doesn't remesh the geometry? Wouldn't a high mesh frequency usually provide more accurate results for high frequencies?

Regarding the infinite baffle or back-enclosure:

Yes, you have to deal with this in some way at least. You already introduced an infinite baffle, so this is no issue any more. Nevertheless, you should construct an enclosure around the entire horn, if you do not want to use an infinite baffle. You could as well use a 'trick' suggested in the example file of the Expo400 horn (see example files/BEM)...

Great, enclosure around the entire horn in my next non IB attempt then.

You can do this as you suggested in your next contribution. However, there is a direct way in VACS: With a 'Polar Plot' opened in VACS, select 'Graph' and 'Convert Curves --- Contour' and VACS will give you the respective SPL curves.

Nice, this also makes it easy to get normalized FR curves:
VACS normalized curves.png


The directivity plot of your waveguide after optimization looks very good. Would you mind to show / indicate the stpes away from the OS-waveguide to your optimized contour?

I abandoned the conical section and replaced it with a radius that tangents the throat and the "baffle". Then I played with the radius of the wall section and the throat radius. wgCountour.png
 
Last edited:
Hi Frederik,

Is there any harm done in using a high frequency if ABEC doesn't remesh the geometry?
No - I just do this to ensure that ABEC does not re-mesh the GMSH-mesh.

Wouldn't a high mesh frequency usually provide more accurate results for high frequencies?
Yes. However, I prefer not to mix GMSH-meshes and ABEC-meshing. If I feel the GMSH-mesh is not fine enough to resolve high frequencies, I go back to GMSH.

I abandoned the conical section and replaced it with a radius that tangents the throat and the "baffle". Then I played with the radius of the wall section and the throat radius.
Thanks for pointing this out!
 
Synergized version

While I am not gonna spam this threads with my own designs as this thread should be reserved to ABEC specific questions, I'd like to share how a typical synergy conversion of the promising waveguie contour looks like:

I created 0.5cm x 3cm slots in on the diagonals of the WG like this:

slotted waveguide.jpg

After remeshing with a quite fine mesh around the slots, this is what the polars look like:

synergy vs normal.png

Can it be improved? Most likely, and this is what makes ABEC/BEM such an interesting tool. You can easily do 10 iteration a day. And while the specifics, might be a bit off I think the general trends will apply to real life aswell.

Interesting stuff!
 
...this thread should be reserved to ABEC specific questions, I'd like to share...

I think your results are relevant to this thread, as well as educational for unity horns, I'm definitely interested - thanks.

with a quite fine mesh around the slots, this is what the polars look like
The plots certainly look plausible in their overall behaviour.
Can you show your mesh, with some sort of scale?
How much time did it take on what hardware?

Best wishes
David
 
Last edited:
I think your results are relevant to this thread, as well as educational for unity horns, I'm definitely interested - thanks.


The plots certainly look plausible in their overall behaviour.
Can you show your mesh, with some sort of scale?
How much time did it take on what hardware?

Best wishes
David

Glad to hear that,

here is the mesh and settings used in Gmesh:

synergymesh.PNG
As you can see I activated the option "compute element size from curvature" which automatically refines the mesh around curvature. The slot is 5mm wide, that gives you an indication of the mesh edge lengths.

I didn't time it but that sim took approx 30 min on my 8 core Ryzen running 16 threads. Normally I run with 0.3 mesh scale factor, and with no special refinement and that is solved in approx 5-10 minutes.

Further experiments showed that with no solid face on the backside of the slot facing the midrange driver (the orange surface in the mesh picture above) the diffraction effects almost disappears, except for some slightly less energy directly on-axis around 7kHz which appears as a widening in the polar plot at that frequency when normalized to 0 degrees.

synergyhorizontalopenholes.PNG

So what is correct? I'd say probably something in between those two cases judging by measurements from measurements of actual implementations with before and after measurements.

Best, Fredrik
 
Last edited:
...Further experiments showed that with no solid face on the backside of the slot...

Tends to imply that the fine details of the mesh around the curved slot ends probably doesn't matter too much, it is the behaviour into the slot.
That would enable a bit of simplification of your very detailed mesh, and faster solution.
More importantly provides a bit of intuition about what matters, it makes sense but I have never seen it discussed.
Thanks once more, that is very informative.

Best wishes
David
 
During my experiments with ABEC, I found that it would 'hit a wall' with a lot of the simulations that I did.

At that time, I was doing the work on my laptop. It was a quad core Ryzen with 8gb of ram, that I'd replaced the "stock" hard drive with a fairly cheap SSD.

I doubled the ram from 8GB to 16GB and that helped a lot, at a cost of about $100 IIRC.

Basically I was able to simulate larger models and at higher frequency. There were still situations where the laptop would never finish a sim, but 80% of the time, things were fine.

In order to increase my computing power, I started tinkering with Xeon workstations from about seven years back. Basically you can put together a sixteen core Xeon beast for about $500 if you buy the parts used. I'm too lazy to check, but I believe my Xeon workstation has about 32 or 48GB of RAM.

When I went with a XEON platform, I ran into a NEW problem with ABEC, which is that I started to be constrained by the CPU. Although the XEON has four times as many cores, they're running at a clock speed of about half. And since each core needs it's own allocation of RAM, a sixteen core system needs about 4X as much ram as a 4 core system. That meant that I really need to have about 64-128GB of ram.

So, once again, the system is very very expensive.

Today at work, I was working on some network attached storage, and ran into something that I thought was very interesting:

I haven't been paying much attention to the consumer SSD scene, and they've quietly come out with some INSANELY fast SSDs.

For instance, the aData XPG 240GB SSD is around SIX times faster than the SSD that's in my laptop. The XPG is so darn fast, it's nearly as fast as DDR RAM from about ten years ago.

To me, this is utterly inconceivable; SSDs aren't as fast as ram, but they're getting "in the ballpark."

This is just nuts.

Even crazier, that SSD is a whopping $65 on Amazon. For 240GB.

To put that in perspective, 256GB of DDR4 RAM is $2000!

Now, obviously, RAM is faster than an SSD. By about a factor of four. But, yowza, that SSD is 97% cheaper than buying RAM.

Now, obviously, using a really fast SSD might not be possible. I don't know how ABEC is written. But based on my use, and how my simulations seemed to 'hit a wall', I have a feeling that ABEC is swapping to disk when it runs out of ram.

That would explain why the sim is just motoring along, and then grinds to a halt out of nowhere. Basically ABEC runs out of ram, then has to copy this humongous file to disk, and then has to make a feeble attempt to do the simulation using the disk instead of ram.

Considering that the SSD in my laptop isn't particularly fast, that might explain why ABEC is behaving the way it is. Basically it could grind out a simulation in four to eight hours if it can do it in RAM, but once it has to swap to disk, that timeframe could grow tenfold, from 4-8hrs to 40-80hrs. (Because the RAM is about 10X faster.)

But if you get yourself one of these ultra-fast M2 SSDs, it might be possible to whittle that down to about 12-16 hours.

Some food for thought. I think I'll order one and see how it goes.
 
During my experiments with ABEC, I found that it would 'hit a wall' with a lot of the simulations that I did.

At that time, I was doing the work on my laptop. It was a quad core Ryzen with 8gb of ram, that I'd replaced the "stock" hard drive with a fairly cheap SSD.

I doubled the ram from 8GB to 16GB and that helped a lot, at a cost of about $100 IIRC.

Basically I was able to simulate larger models and at higher frequency. There were still situations where the laptop would never finish a sim, but 80% of the time, things were fine.

In order to increase my computing power, I started tinkering with Xeon workstations from about seven years back. Basically you can put together a sixteen core Xeon beast for about $500 if you buy the parts used. I'm too lazy to check, but I believe my Xeon workstation has about 32 or 48GB of RAM.

When I went with a XEON platform, I ran into a NEW problem with ABEC, which is that I started to be constrained by the CPU. Although the XEON has four times as many cores, they're running at a clock speed of about half. And since each core needs it's own allocation of RAM, a sixteen core system needs about 4X as much ram as a 4 core system. That meant that I really need to have about 64-128GB of ram.

So, once again, the system is very very expensive.

Today at work, I was working on some network attached storage, and ran into something that I thought was very interesting:

I haven't been paying much attention to the consumer SSD scene, and they've quietly come out with some INSANELY fast SSDs.

For instance, the aData XPG 240GB SSD is around SIX times faster than the SSD that's in my laptop. The XPG is so darn fast, it's nearly as fast as DDR RAM from about ten years ago.

To me, this is utterly inconceivable; SSDs aren't as fast as ram, but they're getting "in the ballpark."

This is just nuts.

Even crazier, that SSD is a whopping $65 on Amazon. For 240GB.

To put that in perspective, 256GB of DDR4 RAM is $2000!

Now, obviously, RAM is faster than an SSD. By about a factor of four. But, yowza, that SSD is 97% cheaper than buying RAM.

Now, obviously, using a really fast SSD might not be possible. I don't know how ABEC is written. But based on my use, and how my simulations seemed to 'hit a wall', I have a feeling that ABEC is swapping to disk when it runs out of ram.

That would explain why the sim is just motoring along, and then grinds to a halt out of nowhere. Basically ABEC runs out of ram, then has to copy this humongous file to disk, and then has to make a feeble attempt to do the simulation using the disk instead of ram.

Considering that the SSD in my laptop isn't particularly fast, that might explain why ABEC is behaving the way it is. Basically it could grind out a simulation in four to eight hours if it can do it in RAM, but once it has to swap to disk, that timeframe could grow tenfold, from 4-8hrs to 40-80hrs. (Because the RAM is about 10X faster.)

But if you get yourself one of these ultra-fast M2 SSDs, it might be possible to whittle that down to about 12-16 hours.

Some food for thought. I think I'll order one and see how it goes.
I'm guessing you are referring to NVMe-drives (SX8200 in this case)? In that case you have to make sure to have a computer that supports them. The M.2-slot can be both SATA (maximum bandwidth of 600 MB/s) and NVMe (maximum bandwidth of 4000 MB/s).

The Samsung 970 Evo Plus 250 GB is twice as fast during writing and costs the same, at least here in Sweden (70 USD on amazon). For 127 USD you get the 500 GB version which is even faster.

/Anton
 
Hi Patrick:
I would spend my money on DRAM; once you get into swapping memory to and from storage, your simulation performance will suck even with faster SSD. That SSD you referenced has higher throughput but its latency is about the same so, with a short swap file, that latency might be the critical factor, with only a marginal improvement from the higher throughput.

You may be able to get Optane SSD for your swap file which does have much faster latency but its still expensive. Conventional SSD has internal shift register organization that accounts for its initial latency; Optane is based on an cross point architecture so it can go directly to the desired data.
 
In order to increase my computing power, I started tinkering with Xeon workstations from about seven years back. Basically you can put together a sixteen core Xeon beast for about $500 if you buy the parts used.
Go with Ivy Bridge - Xeon E5 v2 - for minimal price increase. Some careful Ebay watching should get you 16GB, ECC PC3L sticks at $32 each. Platforms with lots of DDR3 have been the sweet spot for years.

Also, run an ABEC sim that hits the wall, and check HD busy time, RAM load, etc. No point in upgrading an underutilized resource.
 
Hi Patrick:
I would spend my money on DRAM; once you get into swapping memory to and from storage, your simulation performance will suck even with faster SSD. That SSD you referenced has higher throughput but its latency is about the same so, with a short swap file, that latency might be the critical factor, with only a marginal improvement from the higher throughput.

You may be able to get Optane SSD for your swap file which does have much faster latency but its still expensive. Conventional SSD has internal shift register organization that accounts for its initial latency; Optane is based on an cross point architecture so it can go directly to the desired data.

+1000!
 
GPU

I haven't find this question in any thread, so i am placing it here. Is there any possibility to benefit from a GPU with ABEC3 ? I am also juggling with CPU's and RAM, but mature SW gets use of GPU. I am assuming that there is no support for this, but maybe there is a way.......
 
Hi Patrick:
I would spend my money on DRAM; once you get into swapping memory to and from storage, your simulation performance will suck even with faster SSD. That SSD you referenced has higher throughput but its latency is about the same so, with a short swap file, that latency might be the critical factor, with only a marginal improvement from the higher throughput.

You may be able to get Optane SSD for your swap file which does have much faster latency but its still expensive. Conventional SSD has internal shift register organization that accounts for its initial latency; Optane is based on an cross point architecture so it can go directly to the desired data.

Second to that, IF a swap file doesn't work or isn't covering everything, running into a "vritual" harddrive in your RAM is also A LOT faster.
BTW, this is a perfect case for actually renting one of these in the cloud solutions. Especially since ABEC isn't that big

There is a lot to improve on ABEC, I do believe that GPU's are actually much better in solving math problems, but correct me if I'm wrong.
 
Hi,

Jörg Panzer is about to release a new ABEC-version:

AKABAK v 3.1.2 Beta (Mar 2019)

The next upgrade of ABEC is called AKABAK. A new ABEC-license would include an upgrade to AKABAK.

AKABAK is on display at hall 8 stand B90 of ProLight and Sound in Frankfurt and at the upcoming AES Convention in New York.

This might be faster an improved in terms of calculation time, use of GPU etc...
 
Status
This old topic is closed. If you want to reopen this topic, contact a moderator using the "Report Post" button.