Skip to content

Classes to detach from MATLAB #285

@willGraham01

Description

@willGraham01

Essentially a tracker for our progress towards #70.

Logging which tdms classes need to be detached from MATLAB

Non-MATLAB classes we might want to flatten

Whilst it won't be necessary (we can just reshape buffers before writing/reading) we might want to rework the classes below to have flat, strided vectors to store their data rather than pointers to pointers.

  • Tensor3D
  • Matrix

Storage classes

Classes that are inherited from by other classes, or are simply used to store or interact with MATLAB objects.

Classes that are only read into

Classes that are read from the input file, or initialised by passing mxArray pointers.

Classes that are written out

Classes that need some (or all) of their data written to the output file.

  • FieldComponentsVectors (inherits Vector, part of VertexPhasors) (Detach Vectors from MATLAB #328)
  • Vertices (inherits Matrix, part of VertexPhasors)
  • ElectricField (inherits Field)
  • MagneticField (inherits Field)
  • FieldSample
  • SurfacePhasors
  • VertexPhasors
  • IDVariables

Classes that are both read and written

WYTII.

  • TDFieldExporter2D
  • GridLabels
  • SimulatonManager

Dependent Functions

Files that define functions that operate on MATLAB objects.

  • array_init.h/cpp
  • mesh_base.h/cpp
  • matlabio.h/cpp (likely will be deleted)
  • mat_io.h/cpp (likely will be deleted)

Other Classes

  • InputMatrices can be removed once all functions that need to read into have MATLAB removed. simulation_manager will need to be passed the name of the HDF5 file, or a HDF5Reader instance.
  • OutputMatrices no longer needs to hold MATLAB pointers, instead should use HDF5Writer to produce the output. Removing MATLAB from each of the written out classes should involve implementing such functionality in this class, in which case it might be redundant / separated from MATLAB by this stage anyway.

Test Classes

  • AbstractArrayTestClass and all its dependencies will need to be adjusted accordingly. Recommend doing this whilst tackling each class that is tested by this.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requesttechnicalTechnical and meta issues, not related to physics but infrastructure.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions