Skip to content

Commit

Permalink
comments
Browse files Browse the repository at this point in the history
  • Loading branch information
JerryI committed Oct 29, 2024
1 parent b326546 commit 239cd51
Showing 1 changed file with 23 additions and 2 deletions.
25 changes: 23 additions & 2 deletions Kernel/Transmission.wl
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,8 @@ root = DirectoryName[$InputFileName];

TransmissionObject::thickerr = "Thickness `1` is not valid";

(* :: Constructor :: *)

TransmissionObject[sam_TDTrace, ref_TDTrace, opts: OptionsPattern[]] := Module[{}, With[{
thickness = QuantityMagnitude[OptionValue["Thickness"], "Centimeters"],
gain = OptionValue["Gain"]
Expand Down Expand Up @@ -120,6 +122,8 @@ TransmissionObject[a_Association][prop_String] := If[!KeyExistsQ[a, prop],
a[prop]
]

(* :: Calculated properties :: *)

TransmissionObject[a_Association]["Kramers-Kronig n"] := With[{
n0 = a["n0"],
thickness = QuantityMagnitude[a["Thickness"], "Centimeters"],
Expand All @@ -134,6 +138,8 @@ TransmissionObject[a_Association]["Kramers-Kronig n"] := With[{

TransmissionObject[a_Association]["Transmission"] := QuantityArray[Transpose[{Normal @ a["Frequencies"], (*SpB[*)Power[(a["Gain"] Normal @ a["T"])(*|*),(*|*)2](*]SpB*)}], {1/"Centimeters", 1}]

(* :: Transition methods :: *)

updateThicknessDependent[a_Association ] := With[{

},
Expand All @@ -143,10 +149,14 @@ updateThicknessDependent[a_Association ] := With[{
|>]
]



TransmissionObject /: Append[TransmissionObject[a_Association], props_Association] := TransmissionObject[Join[a, props] // updateThicknessDependent ]
TransmissionObject /: Append[TransmissionObject[a_Association], prop_Rule] := TransmissionObject[Append[a, prop] // updateThicknessDependent ]
TransmissionObject /: Append[TransmissionObject[a_Association], props_List] := TransmissionObject[Append[a, props] // updateThicknessDependent ]

(* :: Normal properties :: *)

TransmissionObject[a_Association]["Frequencies"] := QuantityArray[Normal @ a["Frequencies"], 1/"Centimeters"]

TransmissionObject[a_Association]["Domain"] := Quantity[#, 1/"Centimeters"] &/@ MinMax[Normal @ a["Frequencies"]]
Expand Down Expand Up @@ -174,6 +184,8 @@ TransmissionObject[a_Association]["Phase Features"] := With[{
]


(* :: Approximated properties :: *)

TransmissionObject[a_Association]["Approximated k"] := With[{
thickness = QuantityMagnitude[a["Thickness"], "Centimeters"],
gain = a["Gain"]
Expand Down Expand Up @@ -203,7 +215,7 @@ TransmissionObject[a_Association]["Approximated n"] := With[{
, {1/"Centimeters", 1}]
]


(* :: FDCI Functions :: *)

TransmissionObject[a_Association]["FrequencyDomainConfidenceInterval"] := TransmissionObject[a]["FDCI"]

Expand All @@ -222,7 +234,7 @@ With[{phase = QuantityMagnitude[TransmissionObject[a]["Phase"], {1/"Centimeters"
]
]


(* :: internal :: *)

phaseState[phase_List] := With[{},
If[Fit[phase, {1, x}, x][[1]] > 10.0,
Expand All @@ -232,12 +244,17 @@ phaseState[phase_List] := With[{},
]
]

(* :: Properties list :: *)

TransmissionObject /: Keys[t_TransmissionObject] := t["Properties"]

TransmissionObject[a_Association]["Properties"] := Join[Options[TransmissionObject][[All,1]], {"Properties", "n0", "Approximated n", "Approximated k", "Approximated \[Alpha]", "Kramers-Kronig n", "Frequencies", "Transmission", "Phase", "Phase Features", "\[Delta]t", "Gain", "PhaseShift", "Thickness", "Domain", "FrequencyDomainConfidenceInterval", "FDCI", "FDCI2", "FrequencyDomainConfidenceInterval2"}]

Options[TransmissionObject] = {"Thickness"->Null, "Tags"-><||>, "Gain"->1.0, "PhaseShift"->0};


(* :: Options validator :: *)

TransmissionObject::invalidopts = "Invalid options provided"

Options[validateOptions] = Options[TransmissionObject]
Expand All @@ -254,6 +271,8 @@ validateOptions[OptionsPattern[] ] := With[{},
]
]

(* :: Automatic phase unwrapping :: *)

TransmissionUnwrap[t: TransmissionObject[a_], "Basic" | Automatic, OptionsPattern[]] := With[{
offset = offsetPhase[a],
th = OptionValue["PhaseThreshold"]//N,
Expand All @@ -276,6 +295,8 @@ TransmissionUnwrap[t: TransmissionObject[a_], "Basic" | Automatic, OptionsPatter
Options[TransmissionUnwrap] = {"PhaseThreshold"->5.6, "PhaseShift"->0};


(* :: Semi-automatic phase unwrapping :: *)

TransmissionUnwrap[t: TransmissionObject[a_], "Held" | "Hold", OptionsPattern[]] := With[{
th = OptionValue["PhaseThreshold"]//N,
phaseShift = OptionValue["PhaseShift"]
Expand Down

0 comments on commit 239cd51

Please sign in to comment.