using TypeTree
using BEAST
print(join(tt(BEAST.Operator), ""))
print(join(tt(BEAST.SpaceTimeOperator), ""))
BEAST.Operator
├─ BEAST.DyadicOp
├─ BEAST.IntegralOperator
│ ├─ BEAST.HelmholtzOperator2D
│ │ ├─ DoubleLayer
│ │ ├─ DoubleLayerTransposed
│ │ ├─ HyperSingular
│ │ └─ SingleLayer
│ ├─ BEAST.MaxwellOperator3D
│ │ ├─ BEAST.CurlSingleLayerDP3D
│ │ ├─ BEAST.Helmholtz3DOp
│ │ │ ├─ BEAST.HH3DDoubleLayerFDBIO
│ │ │ ├─ BEAST.HH3DDoubleLayerSng
│ │ │ ├─ BEAST.HH3DDoubleLayerTransposedFDBIO
│ │ │ ├─ BEAST.HH3DDoubleLayerTransposedSng
│ │ │ ├─ BEAST.HH3DHyperSingularSng
│ │ │ ├─ BEAST.HH3DSingleLayerFDBIO
│ │ │ ├─ BEAST.HH3DSingleLayerSng
│ │ │ └─ HH3DHyperSingularFDBIO
│ │ ├─ BEAST.MWDoubleLayer3DSng
│ │ ├─ BEAST.MWSingleLayer3DSng
│ │ ├─ BEAST.MaxwellOperator3DReg
│ │ │ ├─ BEAST.Helmholtz3DOpReg
│ │ │ │ ├─ BEAST.HH3DDoubleLayerReg
│ │ │ │ ├─ BEAST.HH3DDoubleLayerTransposedReg
│ │ │ │ ├─ BEAST.HH3DHyperSingularReg
│ │ │ │ └─ BEAST.HH3DSingleLayerReg
│ │ │ ├─ BEAST.MWDoubleLayer3DReg
│ │ │ └─ BEAST.MWSingleLayer3DReg
│ │ ├─ DoubleLayerRotatedMW3D
│ │ ├─ MWDoubleLayer3D
│ │ ├─ MWSingleLayer3D
│ │ ├─ NitscheHH3
│ │ └─ SingleLayerTrace
│ └─ VIEOperator
│ ├─ BEAST.BoundaryOperator
│ │ ├─ BEAST.VIEBoundary
│ │ ├─ BEAST.VIEBoundary2
│ │ └─ BEAST.VIEhhBoundary
│ └─ BEAST.VolumeOperator
│ ├─ BEAST.VIEDoubleLayer
│ ├─ BEAST.VIESingleLayer
│ ├─ BEAST.VIESingleLayer2
│ ├─ BEAST.VIEhhVolume
│ ├─ BEAST.VIEhhVolumegradG
│ └─ BEAST.VIEhhVolumek0
└─ BEAST.LocalOperator
├─ BEAST.Multiplicative
├─ Identity
└─ NCross
BEAST.SpaceTimeOperator
├─ BEAST.RetardedPotential
│ ├─ BEAST.EmptyRP
│ ├─ BEAST.HH3DTDBIO
│ │ ├─ BEAST.HH3DHyperSingularTDBIO
│ │ ├─ HH3DDoubleLayerTDBIO
│ │ └─ HH3DSingleLayerTDBIO
│ ├─ BEAST.MWDoubleLayerTransposedTDIO
│ ├─ MWDoubleLayerTDIO
│ └─ MWSingleLayerTDIO
└─ BEAST.TensorOperator