object OnetepTypes {
object FunctionBasis extends StructType {
+ addProperty(new FortranModule("function_basis"))
+ def getName = "FUNC_BASIS"
+
val numPPDsInSphere = {
val fieldType = new PointerType[ArrayType[IntType]](new ArrayType[IntType](1))
new FieldSymbol[PointerType[ArrayType[IntType]]]("n_ppds_sphere", fieldType)
val fieldType = new PointerType[ArrayType[StructType]](new ArrayType[StructType](1, Sphere))
new FieldSymbol[PointerType[ArrayType[StructType]]]("spheres", fieldType)
}
-
- def getName = "FUNC_BASIS"
}
object Sphere extends StructType {
+ addProperty(new FortranModule("basis"))
+ def getName = "SPHERE"
+
val ppdList = {
val fieldType = new PointerType[ArrayType[IntType]](new ArrayType[IntType](2))
new FieldSymbol[PointerType[ArrayType[IntType]]]("ppd_list", fieldType)
}
val offset = new FieldSymbol[IntType]("offset")
- def getName = "SPHERE"
}
object Point extends StructType {
+ addProperty(new FortranModule("geometry"))
+ def getName = "POINT"
+
val x = new FieldSymbol[FloatType]("X")
val y = new FieldSymbol[FloatType]("Y")
val z = new FieldSymbol[FloatType]("Z")
val coord = List(x,y,z)
- def getName = "POINT"
}
object CellInfo extends StructType {
+ private val module = new FortranModule("simulation_cell")
+ addProperty(module)
+ def getName = "CELL_INFO"
+
val public = new NamedUnboundVarSymbol[StructType]("pub_cell", OnetepTypes.CellInfo)
+ public.addProperty(module)
+
val ppdWidth = {for (dim <- 1 to 3) yield new FieldSymbol[IntType]("n_pt"+dim)}.toSeq
val numPPDs = {for (dim <- 1 to 3) yield new FieldSymbol[IntType]("n_ppds_a"+dim)}.toSeq
val pointsInPPD = new FieldSymbol[IntType]("n_pts")
val latticeReciprocal = for(dim <- 1 to 3) yield new FieldSymbol[StructType]("b"+dim, Point)
val weight = new FieldSymbol[FloatType]("weight")
- def getName = "CELL_INFO"
}
object TightBox extends StructType {
+ addProperty(new FortranModule("basis"))
+ def getName = "FUNCTION_TIGHT_BOX"
+
val startPts = {for (dim <- 1 to 3) yield new FieldSymbol[IntType]("start_pts"+dim)}.toSeq
val finishPts = {for (dim <- 1 to 3) yield new FieldSymbol[IntType]("finish_pts"+dim)}.toSeq
val startPPD = {for (dim <- 1 to 3) yield new FieldSymbol[IntType]("start_ppds"+dim)}.toSeq
val finishPPD = {for (dim <- 1 to 3) yield new FieldSymbol[IntType]("finish_ppds"+dim)}.toSeq
- def getName = "FUNCTION_TIGHT_BOX"
}
object FFTBoxInfo extends StructType {
+ addProperty(new FortranModule("fourier"))
+ def getName = "FFTBOX_INFO"
+
val public = new NamedUnboundVarSymbol[StructType]("pub_fftbox", FFTBoxInfo)
+ public.addProperty(new FortranModule("simulation_cell"))
+
val latticeReciprocal = for(dim <- 1 to 3) yield new FieldSymbol[StructType]("b"+dim, Point)
val totalPts = {for (dim <- 1 to 3) yield new FieldSymbol[IntType]("total_pt"+dim)}.toSeq
- def getName = "FFTBOX_INFO"
}
object SPAM3 extends StructType {
+ addProperty(new FortranModule("sparse"))
def getName = "SPAM3"
}
}