-
Notifications
You must be signed in to change notification settings - Fork 17
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
New style #106
Conversation
…roved usability" -m "Functions added so far: configuration, lasers, modes, xmdes, ymodes, zmodes, ions, modecutoff!, groundstate. Changes: get_vibrational_modes -> modes, get_\eta -> lambdicke, get_basis -> basis
Convenience functions for setting laser wavelengths
Apply renaming of structs to new-style branch
…es, and change LinearChain.vibrational_modes to LinearChain.selected_modes
Change Ion.position to Ion.ionposition to match the getter function. Change set_sublevel_alias! and set_manual_shift! to sublevel_alias! and manual_shift!
ionnumber and ionposition functions now warn if not in an IonTrap. Base overrides for getproperty and setproperty removed; no function for setting sublevels added. Also, functions einsteinA and transitionmultipole now require transition to be a Tuple rather than allowing two separate arguments.
Changes: two_ion_ms -> molmersorensen2ion, rabi_flop -> rabiflop, global_beam\! -> globalbeam\!, Efield_from_pi_time(\!) -> efield_from_pitime(\!), Efield_from_rabi_frequency(\!) -> efield_from_rabifrequency(\!), bfield, matrix_element -> matrixelement, zeeman_shift -> zeemanshift, lambdicke
Function basis(Chamber) changed so that it constructs the basis. Chamber object no longer has a property Chamber.basis.
Functions: sublevel_aliases -> sublevelaliases, manual_shift -> manualshift, zero_manual_shift! -> zeromanualshift!, alias2sublevel -> sublevel, sublevel2level -> level, sublevel_alias! -> sublevelalias!, (clear_sublevel_alias!+clear_all_sublevel_aliases!) -> clearsublevelalias!, mode_structure -> modestructure. Ion fields: species_properties -> speciesproperties, sublevel_aliases -> sublevelaliases, manual_shift -> manualshift. VibrationalMode fields: mode_structure -> modestructure
selected_modes -> selectedmodes, com_frequencies -> comfrequencies, ion_traps.jl -> iontraps.jl. Also, IonTrap structs no longer have a field full_normal_mode_desicription; instead, there is a function full_normal_mode_description(LinearChain).
Now requires a single vector of states rather than different arguments
Format check will fail; I think we should get rid of this for now, since it does a few undesirable things, for example spacing around math operators and spacing around the |
Codecov ReportBase: 91.5% // Head: 88.5% // Decreases project coverage by
Additional details and impacted files@@ Coverage Diff @@
## master #106 +/- ##
========================================
- Coverage 91.5% 88.5% -3.0%
========================================
Files 15 15
Lines 1166 1240 +74
========================================
+ Hits 1067 1098 +31
- Misses 99 142 +43
Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here. ☔ View full report at Codecov. |
update docs |
Broadly gives IonSim a more "functional" programming feel.
Some major changes:
chamber.iontrap.ions
, we call should callions(chamber)
.!
at the end of the function name. Setter functions always take in the object that's being modified as the first argument.)Trap
->Chamber
IonConfiguration
->IonTrap
stark_shift
->manualshift
vibrational_modes
->selectedmodes
Some minor changes:
timescale
inhamiltonian
changed from 1e-6 to 1 (however, there is a problem whentimescale=1
is actually used; see Lamb-Dicke orders cut off if timescale in hamiltonian is too large #104)LinearChain
constructorIon
s to be constructed with sublevel aliasesChamber
and aLaser
and/orIon
to optionally index theLaser
/Ion
with anInt