Skip to content

Commit ee34a70

Browse files
authored
Merge pull request #149 from upb-lea/electrostatic_solver
Electrostatic solver
2 parents b7ac733 + 3f848ea commit ee34a70

43 files changed

Lines changed: 5876 additions & 318 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.gitignore

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,4 +79,4 @@ femmt/examples/paper_thermal_validation.py
7979
femmt/examples/example_results
8080

8181
# pyspelling
82-
dictionary.dic
82+
dictionary.dic

docs/wordlist

Lines changed: 73 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -452,9 +452,79 @@ NbSteps
452452

453453

454454

455-
456-
457-
455+
# electrostatic
456+
Kapton
457+
Capacitances
458+
capacitances
459+
pF
460+
ADE
461+
ACvsBDE
462+
ADvsBCE
463+
DvsABCE
464+
CvsABDE
465+
BvsACDE
466+
AvsBCDE
467+
ABEvsCD
468+
ABCDvsE
469+
ABvsCDE
470+
CDE
471+
NaN
472+
xlsx
473+
InsulationMaterial
474+
CoreMaterial
475+
ZeroVoltage
476+
MagD
477+
MagE
478+
EleSta
479+
airgaps
480+
OutBoundary
481+
DirResValsVoltage
482+
DirResValsCapacitance
483+
DirResValsCapacitanceFromQV
484+
DirResValsCharge
485+
QV
486+
DirResValsTurn
487+
Tetrafluoroethylene
488+
ETFE
489+
Fluorinated
490+
FEP
491+
Propylene
492+
ECTFE
493+
Ethylenechlorotrifluoroethylene
494+
PVDF
495+
Polyvinylidene
496+
Elastomers
497+
TPE
498+
Polyamide
499+
PBT
500+
Polybutylene
501+
Terephthalate
502+
PUR
503+
CPE
504+
TPR
505+
Polychloroprene
506+
Butadiene
507+
SBR
508+
Styrene
509+
EPR
510+
SBR
511+
CSPE
512+
Chlorosulfonated
513+
fluoropolymer
514+
PFA
515+
Perfluoroalkoxy
516+
PTFE
517+
Polytetrafluoroethylene
518+
LCP
519+
DAP
520+
Diallyl
521+
Phthalate
522+
Nomex
523+
Phenolic
524+
bOPET
525+
xlsxwriter
526+
Thermoset
527+
Polyphenylene
458528

459529
# logging
460530
FEMMTLogger

femmt/component.py

Lines changed: 1432 additions & 47 deletions
Large diffs are not rendered by default.

femmt/data.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,12 @@ def update_paths(self, working_directory: str, electro_magnetic_folder_path: str
9292

9393
# Setup file paths
9494
self.e_m_results_log_path = os.path.join(self.results_folder_path, "log_electro_magnetic.json")
95+
###
96+
# for electrostatic
97+
self.electrostatic_results_log_path = os.path.join(self.results_folder_path, "log_electro_static.json")
98+
self.capacitance_result_log_path = os.path.join(self.results_folder_path, "capacitance_result.json")
99+
self.capacitance_matrix_path = os.path.join(self.results_folder_path, "log_capacitance_matrix.json")
100+
###
95101
self.coordinates_description_log_path = os.path.join(self.results_folder_path, "log_coordinates_description.json")
96102
self.reluctance_log_path = os.path.join(self.results_folder_path, "log_reluctance_and_inductance.json")
97103
self.material_log_path = os.path.join(self.results_folder_path, "log_material.json")

femmt/drawing.py

Lines changed: 635 additions & 191 deletions
Large diffs are not rendered by default.

femmt/dtos.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,14 @@ class StackedCoreDimensions:
2222
window_h_top: float
2323
window_h_bot: float
2424

25+
@dataclass
26+
class BobbinDimensions:
27+
"""Defines the dimensions of a default core."""
28+
29+
bobbin_inner_diameter: float
30+
bobbin_window_w: float
31+
bobbin_window_h: float
32+
bobbin_h: float
2533

2634
@dataclass
2735
class ConductorRow:
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
PostOperation Map_local UsingPost EleSta {
2+
3+
// Potentials for the entire domain
4+
ExtGmsh = ".pos";
5+
Print[ u0, OnElementsOf Region[{Domain}], Name "Potential / V", File StrCat[DirResFields, "Potential", ExtGmsh], LastTimeStepOnly ] ;
6+
Print[ u0, OnElementsOf Region[{Core}], Name "Average Potential on Core / V", File StrCat[DirResFields, "Voltage_Core_Map", ExtGmsh], LastTimeStepOnly ];
7+
8+
// Electric Field vector in the entire domain
9+
Print[ e, OnElementsOf Region[{Domain}], Name "Electric Field", File StrCat[DirResFields, "Efield", ExtGmsh], LastTimeStepOnly ] ;
10+
//Print[ Welocal, OnElementsOf Region[{Domain}], Name "Stored Energy", File StrCat[DirResFields, "We", ExtGmsh], LastTimeStepOnly ] ;
11+
Print[ MagE, OnElementsOf Region[{Domain}], Name "Magnitude Electric Field / V/m", File StrCat[DirResFields, "MagE", ExtGmsh], LastTimeStepOnly ] ;
12+
13+
// Displacement Field vector in the entire domain
14+
Print[ d, OnElementsOf Region[{Domain}], Name "Electric Field Density", File StrCat[DirResFields, "Dfield", ExtGmsh], LastTimeStepOnly ] ;
15+
Print[ MagD, OnElementsOf Region[{Domain}], Name "Magnitude Electric Field Density / C/m^2", File StrCat[DirResFields, "MagD", ExtGmsh], LastTimeStepOnly ] ;
16+
17+
18+
// Settings for visualization output (optional)
19+
Echo[ Str["View[PostProcessing.NbViews-1].Light=0;
20+
View[PostProcessing.NbViews-1].LineWidth = 2;
21+
View[PostProcessing.NbViews-1].RangeType=3;
22+
View[PostProcessing.NbViews-1].IntervalsType=1;
23+
View[PostProcessing.NbViews-1].NbIso = 25;"],
24+
File OptionPos];
25+
}

0 commit comments

Comments
 (0)