CTX_Mate: To Do List

Major jobs in rough order of priority

Couple Mate with finite element.

Implement deckloss.

Do damage box correctly with Mate figuring out the ys point(x) on the shell/bulkheads from the user's xs, zs, and damage extent ys's. Separate ys of point on tank exterior from transverse extent of damage. Note Mate does not currently handle situation where damage extends to both sides of a compartment.

Get 3D visualization working

Do GTK GUI. First step will be to do the start-up form which will free the package from dependence on itcl/itk/iwdiget. See Version 0.60 for a first attempt at this. Also we can get rid of ugly ctx_mate.fleets kluge. This data should be xml and part of ctx_mate.config. (This could also be done with tclxml.)

Implement VBodies and TBodeis.

Implement non-rigid hydrostatics. Do we do this by a single vertical adjustment at each section? Does this work only for LBodies? Or do we have a deformed ship coordinate system? Probably should start with former. When we get FE can worry about latter.

Implement ctx_Surveyor by bringing code over from MLOAD.

The code for cargo SG greater than sea water is only partially implemented, and completely untested.

Minor jobs in no particular order

Put BSD license in legal sub-dir. Put start-up form and helper scripts under BSD.

Put tcl scripts, in own directory in share/ctxmate

Set up some kind of bug reporting system

Get rid of redundant report options in ctx_mate_init, etc everything should be based on the --reports(-O) string. Implement multiple formats?

Make Mate's lbhds.xml consistent with CTX SDF. Issue is back references to decks.

CTX DNA requires a D in the knuckle field in frame in order to do deckpoints, framedata, etc. Yet Mate has no provision for this. Turns out ctx_lines needs it as well. Should be d or D (D if real knuckle at deck, or d if rolled gunnel).

There is no way from within CTX_Mate to delete a load file. Is this a bug or a feature? Probably should have a remove option in FILE menu. But what are the rules?

Get rid of api column on mainscreen. Has been redundant since we've had the Parcel's screen.

Get rid of color column on parcel screen, since color is now being chosen by Mate. Or maybe use it to display chosen color.

Re-implement bonjean curves at sub-body level.

Vertical L's and horizontal L's not yet implemented in section modulus calculation.

Investigate bending moment error in damaged situations. Almost certainly due to layered balance but non layered spikes. Investigate 1-3% lower deflection for Ual and emba (but not A1321 and not Margaux?) Somehow get liquid layering into strength calculations.

Prettier bending moment/shear force curve, maybe with ship's profile. We now (0.70.2) know which bulkheads actually cross centerline.

Full set of native html reports rob, obq, ull, uld, out, mom, arm, flood, reg25 Then Mate would not need latex or troff to be usable.

Redo righting arm code getting rid of redundant code. Go to two righting arm structs. More graceful treatment of righting arm areas when equilibrium heel > 10 degrees. Put any convergence errors on right arm screen. Not just dialog.

Implement sealed ullage space for grouped tanks.

Re-implement sloshing resonance by bringing code over from MLOAD.

Put three curves on hot spot screen. Add max stress and max compressive stress. Work on buckling. But in long run, this will be superceded by FE. We need local pressures as well as bucking.

Implement wave_opt == P allowing user to input a longitudinal wave profile. See notes in ctx_Ship_buoyancy. This could be the first step in a time domain simulation.

Validate command for edit parcels which rejects >&< dont have to worry about initial read in wont get passed parser (what about &xxx;)

Move calc of lowest/highest wl's out of ctx_Volume etc, make these arguments of waterline search routines. Save a lot of redundant work, and add flexibility.

All return codes that are errors should be negative to allow routines to return a real integer This is enforced in all new code since 0.58.

Conditionally include own blt in package (just graph, busy, postscript and ...).

Implement stress_mate.pl, randomly set V in auto modes as well as U and I. See admin manual source.