## Surface Control Parameters

These parameters are used to set up the geometric parameters defining the surfaces of interest.

• Nwall_type(int): Number of Surface types in the system (i.e. two surfaces may be identical).
• Nwall(int): Number of Surfaces in the system.
• Nlink(int): Number of unique groups of surfaces (i.e. fixed atoms may be connected as molecules so Nlink may be small even though Nwall is large).
• Lauto_center(int): Logical that signals whether the surfaces should be centered in the domain based on max and min coordinates (0=FALSE; 1=TRUE).
• Lauto_size(int): Logical to have Tramonto choose the domain size based on the surface positions (0=FALSE; 1=TRUE).
• Xtest_reflect_TF[Nlink][Ndim](int array): A logical array (0=FALSE: 1=TRUE). Only set an entry to True if there are reflective boundaries and if the surfaces in the next domain are to be treated as different surfaces than those in the computational domain. For example, consider a cylindrical surface with the long axis parallel to the z-coordinate of the system and assume all boundaries of the 3D domain are reflective. In the x and y directions, there are independent surfaces beyond the boundaries while in the z direction, the same cylinder is extended.
• Surf_type[Nwall_type](int vector): Vector to store surface geometries. Options are:
• 0: Infinite Planar Wall
• 1: Finite Planar Wall
• 2: Colloids (cylindrical wedge in 2D/spheres in 3D)
• 3: Atoms (spheres in 3D)
• 4: Point Atoms (3D only)
• 5: Finite Length Cylinder (3D only)
• 6: Cylinder with Periodic function for the radius (3D only)
• 7: Pore (cylinder in 2D, spherical cavity in 3D)
• 8: Finite Pore (slit in 2D, cylindrical in 3D)
• 9: Tapered Pore (slit in 2D, cylindrical in 3D)
• Orientation[Nwall_type](int vector): Vector to store the orientation of each surface type. Note that this parameter does not have meaning for all of the surface geometries. For surfaces where it does not have meaning just leave a 0 for the entry (there must be an entry for each surface type). The meaning of the Orientation parameter in various cases is:
• Infinite Planar Wall: surface normal.
• Finite Planar Wall: surface normal.
• Colloids (cylindrical wedge in 2D/spheres in 3D): N/A
• Atoms (spheres in 3D): N/A
• Point Atoms (3D only): N/A
• Finite Length Cylinder (3D only): Long axis of cylinder.
• Cylinder with Periodic function for the radius (3D only): Long axis of cylinder.
• Pore (cylinder in 2D, spherical cavity in 3D): N/A
• Finite Pore (slit in 2D, cylindrical in 3D): Long axis of pore
• Tapered Pore (slit in 2D, cylindrical in 3D): Long axis of pore.
• WallParam[Nwall_type](real vector): Vector to store first parameter associated with a given surface. Every surface type must have an entry in the input file. The meaning of WallParam in various cases is:
• Infinite Planar Wall: half thickness (note this is generally coupled with Type_bc=IN_WALL).
• Finite Planar Wall: half thickness (x0 dimension).
• Colloids (cylindrical wedge in 2D/spheres in 3D): radius.
• Atoms (spheres in 3D): N/A (use Sigma_ww to define the radius instead of this parameter).
• Point Atoms (3D only): N/A (use Esize_x to define the size of this surface type).
• Finite Length Cylinder (3D only): radius.
• Cylinder with Periodic function for the radius (3D only): mean radius.
• Pore (cylinder in 2D, spherical cavity in 3D): radius
• Finite Pore (slit in 2D, cylindrical in 3D): pore radius
• Tapered Pore (slit in 2D, cylindrical in 3D): pore radius on left(x0 dim), bottom(x1 dim), or back(x2 dim) side of tapered pore depending on the orientation of the pore.
• WallParam2[Nwall_type](real vector): Vector to store second parameter associated with a given surface. Every surface type must have an entry in the input file. The meaning of WallParam2 in various cases is:
• Infinite Planar Wall: N/A
• Finite Planar Wall: half thickness (x1 dimension).
• Colloids (cylindrical wedge in 2D/spheres in 3D): N/A
• Atoms (spheres in 3D): N/A
• Point Atoms (3D only): N/A
• Finite Length Cylinder (3D only): half-length.
• Cylinder with Periodic function for the radius (3D only): amplitude of periodic function superimposed on radius
• Pore (cylinder in 2D, spherical cavity in 3D): N/A
• Finite Pore (slit in 2D, cylindrical in 3D): half-length
• Tapered Pore (slit in 2D, cylindrical in 3D): pore radius on right(x0 dim), top(x1 dim), or front(x2 dim) side of tapered pore depending on the orientation of the pore.
• WallParam3[Nwall_type](real vector): Vector to store third parameter associated with a given surface. Every surface type must have an entry in the input file. The meaning of WallParam3 in various cases is:
• Infinite Planar Wall: N/A
• Finite Planar Wall: half thickness (x2 dimension).
• Colloids (cylindrical wedge in 2D/spheres in 3D): start point for wedge (angle in degrees from x0 axis)
• Atoms (spheres in 3D): N/A
• Point Atoms (3D only): N/A
• Finite Length Cylinder (3D only): start point for wedge (angle in degrees from x0 axis - if Orientation=x2)
• Cylinder with Periodic function for the radius (3D only): length of periodic function superimposed on radius
• Pore (cylinder in 2D, spherical cavity in 3D): N/A
• Finite Pore (slit in 2D, cylindrical in 3D): N/A
• Tapered Pore (slit in 2D, cylindrical in 3D): pore half-length.
• WallParam4[Nwall_type](real vector): Vector to store a fourth parameter associated with a given surface. Every surface type must have an entry in the input file. The meaning of WallParam4 in various cases is:
• Infinite Planar Wall: N/A
• Finite Planar Wall: N/A
• Colloids (cylindrical wedge in 2D/spheres in 3D): end point for wedge (angle in degrees from x0 axis)
• Atoms (spheres in 3D): N/A
• Point Atoms (3D only): N/A
• Finite Length Cylinder (3D only): end point for wedge (angle in degrees from x0 axis - if Orientation=x2)
• Cylinder with Periodic function for the radius (3D only): N/A
• Pore (cylinder in 2D, spherical cavity in 3D): N/A
• Finite Pore (slit in 2D, cylindrical in 3D): N/A
• Tapered Pore (slit in 2D, cylindrical in 3D): N/A
• Lrough_surf[Nwall_type](int vector): Vector to store a logical (0=FALSE 1=TRUE) indicating if a surface should be roughened. This option is only available for cylindrical wedges (2D and 3D) at this time; nevertheless all surface types must have an entry in the input file.
• Rough_param_max[Nwall_type](real vector): Vector to specify the magnitude of the roughness. The code then makes the radius of the cylinder = radius +/- tau, where tau is a random number with a maximum magnitude of rough_param_max.
• Rough_length[Nwall_type](real vector): Vector to specify the length scale for the roughness along the long axis of the cylinder (i.e. how many different $\tau$ values should occur along the cylinder). Applies to the 3D case only.