Skip to content

EXAMPLE: busbar joule heating #511

Draft
gchaturve wants to merge 1 commit intomainfrom
example/gc_busbar_joule_heating
Draft

EXAMPLE: busbar joule heating #511
gchaturve wants to merge 1 commit intomainfrom
example/gc_busbar_joule_heating

Conversation

@gchaturve
Copy link
Collaborator

Description

Created a multi terminal busbar joule heating example under eddy current solution type.

Checklist

Please complete the following checklist before submitting your pull request:

  • I have followed the example template and guide lines to add/update an example.
  • I have tested the example locally and verified that it is working with the latest version of AEDT.
  • I have verified that these changes to the best of my knowledge do not introduce any security vulnerabilities.

@gchaturve gchaturve mentioned this pull request Feb 3, 2026
3 tasks
@gchaturve gchaturve self-assigned this Feb 3, 2026
#
# This example demonstrates how to set up and solve a busbar Joule heating analysis using PyAEDT.
# The analysis captures frequency-dependent phenomena including skin effect, current redistribution,
# and AC losses in power electronics systems.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not only in electronic systems, but all bus bar applications.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sure I will update it

# Get faces at left and right ends
left_faces = [f for f in faces_sorted if abs(f.center[0] - left_x) < 1e-3]
right_faces = [f for f in faces_sorted if abs(f.center[0] - right_x) < 1e-3]

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

How about adding a comment explaining that the faces' IDs can be retrieved from the UI and entered here as well?

assignment=conductor.name,
maximum_length=3.0, # 3mm elements for skin effect resolution
name="ConductorMesh",
)
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why not a skin depth mesh operation?


# Loss density
loss_density = (total_loss / busbar_volume) if busbar_volume else 0.0
print(f"Loss density: {loss_density:.8f} W/mm³")
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is the volume returning mm3? or m3?

omega = 2 * math.pi * FREQ
skin_depth_m = math.sqrt(2 / (omega * mu0 * sigma_cu))
skin_depth_mm = skin_depth_m * 1000
print(f"Skin depth at {FREQ} Hz: {skin_depth_mm:.3f} mm")
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why here?
Add the Skin depth calculation before the mesh operation.

print(f"Power per A²: {power_per_amp_squared*1e6:.2f} µW/A²")

# Comparison with conductor thickness
if BUSBAR_H < 2 * skin_depth_mm:
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This comparison may not be accurate. How about cases when the bar dimension is marginally bigger or smaller than 2 * skin_depth_mm?
You can also move it to the beginning and create a section for the skin depth analysis.

@gchaturve gchaturve marked this pull request as draft February 3, 2026 12:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants