I am having problems determining a scaling factor for a conformal mapping function.
The plan is to map the upper half plane into a rectangle (Schwarz Christoffel Transformation) to determine the values for lumped elements in an equivalent circuit diagram of a coplanar waveguide structure.
The first step would be to map my structure from the original domain into a rectangle in the w-domain. I am doing this by performing a series of conformal mapping steps but here I am already struggling to write code that creates a rectangle in the desired orientation. This is what I have got so far. This first section is meant to define the geometry of the original structure:
pieces = 500; GP1 = 500*10^(-6); GP2 = GP1; RF1 = 240*10^(-6); GAP1 = 50*10^(-6); GAP2 = GAP1; l = 500*10^(-6); h = 50*10^(-6); t = 5*10^(-6); \[Sigma] = 5.8*10^(7)(*[S/m]*); Rs = 0.015; \[Epsilon]r = 10; f = Range[50000000, 100000000, 1000000]; (*[Hz]*) \[Omega] = f*2*Pi(*[Hz]*); \[Epsilon]0 = 8.854187817*10^(-12)(*[As/Vm]*); \[Mu]0 = 1.25663706212*10^-6(*N/A^2*); c = 299792458(*[m/s]*); After this, I am dividing all the lengths into smaller pieces such that I can get ListPlots that look like the structures. Note: Due to symmetry only one half of the structure is taken into consideration.
zCor = {0, RF1/2, RF1/2 + GAP1, RF1/2 + GAP1 + GP1, RF1/2 + GAP1 + GP1 - h*I, 0 - h*I}; \[Delta]RF = (RF1/2)/(pieces - 1); zCorRFpieces = Range[0, RF1/2, \[Delta]RF]; \[Delta]GP = GP1/(pieces - 1); zCorGPpieces = Range[RF1/2 + GAP1, RF1/2 + GAP1 + GP1, \[Delta]GP]; zCorUpper = {{zCorRFpieces, zCorRFpieces + t*I}, {zCorGPpieces, zCorGPpieces + t*I}}; PLOT0 = ListPlot[{Re[#], Im[#]} & /@ Flatten[zCorUpper], PlotStyle -> Blue, PlotMarkers -> {Automatic, Small}]; Show[PLOT0, PlotRange -> All, AxesOrigin -> {0, 0}, AxesLabel -> {"Re", "Im"}, PlotLabel -> "Z-DOMAIN"] After this, I perform three conformal mapping steps:
SI1[z_] = z - (First[zCorUpper[[1, 1]]] + Last[zCorUpper[[2, 1]]])/2; PLOT1 = ListPlot[{Re[#], Im[#]} & /@ Flatten[SI1[zCorUpper]], PlotStyle -> Orange, PlotMarkers -> {Automatic, Small}]; Show[PLOT1, PlotRange -> All, AxesOrigin -> {0, 0}, AxesLabel -> {"Re", "Im"}, PlotLabel -> "SI1-DOMAIN"] \[Lambda]1 = SI1[zCorUpper[[2, 1, pieces]]] \[Alpha]Sol = Solve[0 == \[Lambda]1^2 (SI1[zCorUpper[[1, 1, pieces]]] + SI1[zCorUpper[[2, 1, 1]]])*a^2 + 2 (SI1[zCorUpper[[1, 1, pieces]]]* SI1[zCorUpper[[2, 1, 1]]] + \[Lambda]1^2)*a + SI1[zCorUpper[[1, 1, pieces]]] + SI1[zCorUpper[[2, 1, 1]]], a]; \[Alpha] = a /. \[Alpha]Sol[[1, 1]] k0 = (SI1[ zCorUpper[[2, 1, 1]]] + \[Alpha]*\[Lambda]1^2)/(\[Lambda]1 (1 + \[Alpha]* SI1[zCorUpper[[2, 1, 1]]])); SI2[z_] := ( SI1[z] + \[Alpha]*\[Lambda]1^2)/(\[Lambda]1 (1 + \[Alpha]* SI1[z]) k0); PLOT2 = ListPlot[{Re[#], Im[#]} & /@ Flatten[SI2[zCorUpper]], PlotStyle -> Cyan, PlotMarkers -> {Automatic, Small}]; Show[PLOT2, PlotRange -> All, AxesOrigin -> {0, 0}, AxesLabel -> {"Re", "Im"}, PlotLabel -> "SI2-DOMAIN"] SI3 = Conjugate[ I*Simplify[ Integrate[ 1/((\[Zeta] - 1)^(1/2) (\[Zeta] - 1/k0)^(1/2) (\[Zeta] + 1)^(1/ 2) (\[Zeta] + 1/k0)^(1/2)), {\[Zeta], 0, z}, Assumptions -> {Im[z] > 0}]]] map = SI3 /. {z -> Flatten[SI2[zCorRFpieces]]}; map2 = SI3 /. {z -> Flatten[SI2[zCorGPpieces]]}; PLOT5 = ListPlot[{Re[#], Im[#]} & /@ map, PlotStyle -> Orange, PlotMarkers -> {Automatic, Small}]; PLOT6 = ListPlot[{Re[#], Im[#]} & /@ map2, PlotStyle -> Cyan, PlotMarkers -> {Automatic, Small}]; Show[PLOT6, PLOT5, PlotRange -> All, AxesOrigin -> {0, 0}, AxesLabel -> {"Re", "Im"}, PlotLabel -> "SI3-DOMAIN"] I think could add some clever factors to the SI3[z_] function to map everything inside a rectangle in which the lower side is lying on the Real axis but I do not see how.
Also, I will need to determine a Scaling factor M that relates a differential length in the z-Plane to one in the w-plane such that M=Abs[dw/dz]. I tried this here but without any promising results results
W[z_] = SI3[SI2[SI1[z]]]; M[z_] = Abs[D[W[z], z]]; M[SI3[Flatten[zCorUpper]]] This scaling factor will later become a function in an integral integrating along the real axis from 0 to the endpoint of the rectangle.
Simplify[ Integrate[1/( I*w*bI*\[Mu]0 + Re[surfaceImpedanceGP[w]]*MSI[u] + Re[surfaceImpedanceRF[w]]*MSI[u + I*b]), {u, 0, a}] a corresponds to the endpoint of the rectangle side on the Real axis and b is the Imaginary part of the other side of the rectangle.




