HomerReid / scuff-em

A comprehensive and full-featured computational physics suite for boundary-element analysis of electromagnetic scattering, fluctuation-induced phenomena (Casimir forces and radiative heat transfer), nanophotonics, RF device engineering, electrostatics, and more. Includes a core library with C++ and python APIs as well as many command-line applications.
http://www.homerreid.com/scuff-em
GNU General Public License v2.0
125 stars 50 forks source link

Substrate #145

Open tomsiday opened 7 years ago

tomsiday commented 7 years ago

Hi,

I am no BEM expert, so please forgive me if these are obvious questions;

I haven't been able to find much on substrates on the documentation for scuff-scatter - is it possible to define a single scattering object on an 'infinite' substrate? or would this have to be explicitly defined as with any other object

I also see in the source there is a folder 'RotationalSymmetry', with msh & geo files. can these symmetries (or more generally, rotational symmetry for asymmetric structures) be implemented for scuff-scatter? If not right now do you think this is something that could be implemented by working directly with libscuff?

Thanks for sharing this useful software!

Best, Tom

HomerReid commented 7 years ago

The --substrate is brand new, and I'm still working updating the documentation. To your questions, yes, the purpose of this option is to obviate the need for explicitly meshing a substrate, and yes it is possible to define a finite-size object on an infinite substrate. This is done in these examples:

As for the rotational symmetry, there is no explicit support for this. However, if your structure consists of multiple copies of a template structure that are rotated and translated with respect to one another, then you can speed the calculation by using the same .msh file for that template combined with ROTATED and DISPLACED statements in the .scuffgeo file. The files in the folder you referenced were the beginnings of an example illustrating this, but I never finished that and should probably remove that folder.

Feel free to ask more questions, or close the issue if satisfied.