File : volumes.ads


with Messages, Ints, Reps, Reps.Ops, Lin, Lin.IO, Lattice;
use Messages, Ints, Reps, Reps.Ops, Lin, Lin.IO, Lattice;

package Volumes is  -- providing computed volumes

  function BasicVol return Rep;
  function StoredVols(PType,PSize: in Positive) return PolysPtr;
  function StoredVols(PType,MaxSize: in Positive) return PExpPtr;

private

  MaxNumPolymers: constant Natural := 512;

  GSize:  Natural := 0;
  GType:  Natural := 0;
  CLast:  Natural := 0;
  GPolys: PolysPtr;
  CPoly:  PolyPtr;

  procedure Store_Last_Polymer;
  procedure New_Polymer(T: in Positive);
  procedure Add_Ball(P1,P2,P3: in Integer);
  procedure Add_Multiplicity(M: in Natural);
  procedure Add_Value(R: in Rep);

-- concatenated .ada files produced by running polymervol

  procedure VolumesFCC1;
  procedure VolumesHCP1;
  procedure VolumesFCC2;
  procedure VolumesHCP2;
  procedure VolumesFCC3;
  procedure VolumesHCP3;
  procedure VolumesFCC4;
  procedure VolumesHCP4;
  procedure VolumesFCC5;
  procedure VolumesHCP5;

end Volumes;