Changelog¶
0.4.0¶
New fortran field line tracer¶
pfsspy.tracing
contains a new tracer,
FortranTracer
. This requires and uses the
streamtracer package
which does streamline tracing rapidly in python-wrapped
fortran code. For large numbers of field lines this results in an ~50x
speedup compared to the PythonTracer
.
Changing existing code to use the new tracer is as easy as swapping out
tracer = pfsspy.tracer.PythonTracer()
for
tracer = pfsspy.tracer.FortranTracer()
. If you notice any issues with the
new tracer, please report them at https://github.com/dstansby/pfsspy/issues.
Changes to field line objects¶
pfsspy.FieldLines
andpfsspy.FieldLine
have moved topfsspy.fieldline.FieldLines
andpfsspy.fieldline.FieldLine
.FieldLines
no longer hassource_surface_feet
andsolar_feet
properties. Instead these have moved to the newpfsspy.fieldline.OpenFieldLines
class. All the open field lines can be accessed from aFieldLines
instance using the newopen_field_lines
property.
Changes to Output
¶
pfsspy.Output.bg
is now returned as a 4D array instead of three 3D arrays. The final index now indexes the vector components; see the docstring for more information.
0.3.2¶
Fixed a bug in
pfsspy.FieldLine.is_open
, where some open field lines were incorrectly calculated to be closed.
0.3.1¶
Fixed a bug that incorrectly set closed line field polarities to -1 or 1 (instead of the correct value of zero).
FieldLine.footpoints
has been removed in favour of the newpfsspy.FieldLine.solar_footpoint
andpfsspy.FieldLine.source_surface_footpoint
. These each return a single footpoint. For a closed field line, see the API docs for further details on this.pfsspy.FieldLines
has been added, as a convenience class to store a collection of field lines. This means convenience attributes such aspfsspy.FieldLines.source_surface_feet
can be used, and their values are cached greatly speeding up repeated use.
0.3.0¶
The API for doing magnetic field tracing has changed. The new
pfsspy.tracing
module containsTracer
classes that are used to perform the tracing. Code needs to be changed from:fline = output.trace(x0)
to:
tracer = pfsspy.tracing.PythonTracer() tracer.trace(x0, output) flines = tracer.xs
Additionally
x0
can be a 2D array that contains multiple seed points to trace, taking advantage of the parallelism of some solvers.The
pfsspy.FieldLine
class no longer inherits fromSkyCoord
, but theSkyCoord
coordinates are now stored inpfsspy.FieldLine.coords
attribute.pfsspy.FieldLine.expansion_factor
now returnsnp.nan
instead ofNone
if the field line is closed.pfsspy.FieldLine
now has afootpoints
attribute that returns the footpoint(s) of the field line.
0.2.0¶
pfsspy.Input
andpfsspy.Output
now take the optional keyword argument dtime, which stores the datetime on which the magnetic field measurements were made. This is then propagated to the obstime attribute of computed field lines, allowing them to be transformed in to coordinate systems other than Carrignton frames.pfsspy.FieldLine
no longer overrrides the SkyCoord__init__
; this should not matter to users, as FieldLine objects are constructed internally by callingpfsspy.Output.trace()
0.1.5¶
Output.plot_source_surface now accepts keyword arguments that are given to Matplotlib to control the plotting of the source surface.
0.1.4¶
Added more explanatory comments to the examples
Corrected the dipole solution calculation
Added
pfsspy.coords.sph2cart()
to transform from spherical to cartesian coordinates.
0.1.3¶
pfsspy.Output.plot_pil()
now accepts keyword arguments that are given to Matplotlib to control the style of the contour.pfsspy.FieldLine.expansion_factor
is now cached, and is only calculated once if accessed multiple times.