Repository navigation
properties: a lossy metal for 3D bodies - #85
Open
unsettledroell404 wants to merge 1 commit into
Open
unsettledroell404 wants to merge 1 commit into
unsettledroell404 wants to merge 1 commit into
Conversation
LossyMetal is a metal with a finite conductivity and an optional surface roughness (RoughnessModel "none" or "gradient", rms roughness Rq). It is meant for ordinary 3D bodies; a solver applies the surface impedance to the faces of the body. Thickness is only used for 2D primitives. All attributes are optional, existing XML is untouched. Python AddLossyMetal() and Matlab AddLossyMetal(). The openEMS half, which applies the surface impedance, is a separate openEMS commit. Generated-by: Claude Opus 5.5 Signed-off-by: Roel Budé <roel.bude@proton.me>
unsettledroell404
force-pushed
the
lossy-metal
branch
from
October 25, 2026 22:12
9d8a1f0 to
cc37cb4
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Full disclosure: this code is entirely generated using Claude Opus 5.5, and my background in numerical EM is limited.
Adds a
LossyMetalproperty: a metal with a finite conductivity and an optional surface roughness, for ordinary 3D bodies. XML attributesConductivity,RoughnessModel(none|gradient),Rq(rms roughness, m) andThickness(m, 2D primitives only), all optional; existing XML is untouched. Python and MatlabAddLossyMetal. Type bitLOSSYMETAL = 0x080, the unused one, soANYis unchanged. The roughness model is the Gradient Model of Gold & Helmreich [1], as suggested by toammann in this discussion.The solver half, with a full description of the method and its validation, is thliebig/openEMS#.
Is a new property the right choice? In the same discussion, biergaizi suggested extending the existing
ConductingSheetinstead. Another option would be optionalConductivity/Rqattributes onMetal, which would stay PEC without them. I went with a new property because it leavesMetalandConductingSheetexactly as they are and makes the different treatment in the solver explicit. Which way to go is up to the maintainer; I am happy to rework it if one of the alternatives is preferred.[1] G. Gold, K. Helmreich, "A Physical Surface Roughness Model and Its Applications," IEEE Trans. Microw. Theory Techn., 2017, doi:10.1109/TMTT.2017.2695192