src.acoustools.Utilities.Boards

 1import torch
 2from torch import Tensor
 3from acoustools.Utilities.Setup import device, deprecated, supress_warnings
 4from acoustools.Constants import pitch
 5
 6import warnings
 7
 8
 9def create_board(N:int, z:float, pitch:float = pitch) -> Tensor: 
10    '''
11    Create a single transducer array \n
12    :param N: Number of transducers per side eg for 16 transducers `N=16` NOTE: before AcousTools 1.1.2 this behavioour was different. In the past N-1 Transducers were created. Run using --deprecated for old bahaviour
13    :param z: z-coordinate of board
14    :param pitch: The pitch of the transducers (gap between them)
15    :return: tensor of transducer positions
16    '''
17
18    if N == 17 and not supress_warnings: warnings.warn(
19      'acoustools.Boards.create_board: behavious has changed from acoustools 1.1.2 onwards.' \
20      ' N equals number of transducers, triggered by requesting baord of size 17 (the parameter to get a standard 16x16 PAT under old bahviour) ' \
21      '- if a 17x17 array  is required then ignore this warning and run AcousTools with --supress_warninigs'
22    )
23    
24    if not deprecated:
25       N = N + 1
26    else:
27       if not supress_warnings: warnings.warn(
28        'acoustools.Boards.create_board: running in deprecated mode -' \
29        ' old behavious is for N to be number of transducers+1, ' \
30        'new behaviour is N equals number of transducers'
31       )
32    
33       
34    grid_vec=pitch*(torch.arange(-N/2+1, N/2, 1)).to(device)
35    x, y = torch.meshgrid(grid_vec,grid_vec,indexing="ij")
36    x = x.to(device)
37    y= y.to(device)
38    trans_x=torch.reshape(x,(torch.numel(x),1))
39    trans_y=torch.reshape(y,(torch.numel(y),1))
40    trans_z=z*torch.ones((torch.numel(x),1)).to(device)
41    trans_pos=torch.cat((trans_x, trans_y, trans_z), axis=1)
42    return trans_pos
43
44# BOARD_POSITIONS = .234/2
45BOARD_POSITIONS:float = 0.2365/2
46'''
47Static variable for the z-position of the boards, positive for top board, negative for bottom board
48'''
49  
50def transducers(N=16,z=BOARD_POSITIONS) -> Tensor:
51  '''
52  :return: the 'standard' transducer arrays with 2 16x16 boards at `z = +-234/2 `
53  '''
54  return torch.cat((create_board(N,z),create_board(N,-1*z)),axis=0).to(device)
55
56
57
58TRANSDUCERS:Tensor = transducers()
59'''
60Static variable for `transducers()` result
61'''
62TOP_BOARD:Tensor = create_board(16,BOARD_POSITIONS)
63'''
64Static variable for a 16x16 array at `z=.234/2` - top board of a 2 array setup
65'''
66BOTTOM_BOARD:Tensor = create_board(16,-1*BOARD_POSITIONS)
67'''
68Static variable for a 16x16 array at `z=-.234/2` - bottom board of a 2 array setup
69'''
def create_board(N: int, z: float, pitch: float = 0.0105) -> torch.Tensor:
10def create_board(N:int, z:float, pitch:float = pitch) -> Tensor: 
11    '''
12    Create a single transducer array \n
13    :param N: Number of transducers per side eg for 16 transducers `N=16` NOTE: before AcousTools 1.1.2 this behavioour was different. In the past N-1 Transducers were created. Run using --deprecated for old bahaviour
14    :param z: z-coordinate of board
15    :param pitch: The pitch of the transducers (gap between them)
16    :return: tensor of transducer positions
17    '''
18
19    if N == 17 and not supress_warnings: warnings.warn(
20      'acoustools.Boards.create_board: behavious has changed from acoustools 1.1.2 onwards.' \
21      ' N equals number of transducers, triggered by requesting baord of size 17 (the parameter to get a standard 16x16 PAT under old bahviour) ' \
22      '- if a 17x17 array  is required then ignore this warning and run AcousTools with --supress_warninigs'
23    )
24    
25    if not deprecated:
26       N = N + 1
27    else:
28       if not supress_warnings: warnings.warn(
29        'acoustools.Boards.create_board: running in deprecated mode -' \
30        ' old behavious is for N to be number of transducers+1, ' \
31        'new behaviour is N equals number of transducers'
32       )
33    
34       
35    grid_vec=pitch*(torch.arange(-N/2+1, N/2, 1)).to(device)
36    x, y = torch.meshgrid(grid_vec,grid_vec,indexing="ij")
37    x = x.to(device)
38    y= y.to(device)
39    trans_x=torch.reshape(x,(torch.numel(x),1))
40    trans_y=torch.reshape(y,(torch.numel(y),1))
41    trans_z=z*torch.ones((torch.numel(x),1)).to(device)
42    trans_pos=torch.cat((trans_x, trans_y, trans_z), axis=1)
43    return trans_pos

Create a single transducer array

Parameters
  • N: Number of transducers per side eg for 16 transducers N=16 NOTE: before AcousTools 1.1.2 this behavioour was different. In the past N-1 Transducers were created. Run using --deprecated for old bahaviour
  • z: z-coordinate of board
  • pitch: The pitch of the transducers (gap between them)
Returns

tensor of transducer positions

BOARD_POSITIONS: float = 0.11825

Static variable for the z-position of the boards, positive for top board, negative for bottom board

def transducers(N=16, z=0.11825) -> torch.Tensor:
51def transducers(N=16,z=BOARD_POSITIONS) -> Tensor:
52  '''
53  :return: the 'standard' transducer arrays with 2 16x16 boards at `z = +-234/2 `
54  '''
55  return torch.cat((create_board(N,z),create_board(N,-1*z)),axis=0).to(device)
Returns

the 'standard' transducer arrays with 2 16x16 boards at z = +-234/2

TRANSDUCERS: torch.Tensor = tensor([[-0.0787, -0.0787, 0.1182], [-0.0787, -0.0683, 0.1182], [-0.0787, -0.0577, 0.1182], ..., [ 0.0787, 0.0577, -0.1182], [ 0.0787, 0.0683, -0.1182], [ 0.0787, 0.0787, -0.1182]])

Static variable for transducers() result

TOP_BOARD: torch.Tensor = tensor([[-0.0787, -0.0787, 0.1182], [-0.0787, -0.0683, 0.1182], [-0.0787, -0.0577, 0.1182], [-0.0787, -0.0472, 0.1182], [-0.0787, -0.0367, 0.1182], [-0.0787, -0.0262, 0.1182], [-0.0787, -0.0158, 0.1182], [-0.0787, -0.0052, 0.1182], [-0.0787, 0.0052, 0.1182], [-0.0787, 0.0158, 0.1182], [-0.0787, 0.0262, 0.1182], [-0.0787, 0.0367, 0.1182], [-0.0787, 0.0472, 0.1182], [-0.0787, 0.0577, 0.1182], [-0.0787, 0.0683, 0.1182], [-0.0787, 0.0787, 0.1182], [-0.0683, -0.0787, 0.1182], [-0.0683, -0.0683, 0.1182], [-0.0683, -0.0577, 0.1182], [-0.0683, -0.0472, 0.1182], [-0.0683, -0.0367, 0.1182], [-0.0683, -0.0262, 0.1182], [-0.0683, -0.0158, 0.1182], [-0.0683, -0.0052, 0.1182], [-0.0683, 0.0052, 0.1182], [-0.0683, 0.0158, 0.1182], [-0.0683, 0.0262, 0.1182], [-0.0683, 0.0367, 0.1182], [-0.0683, 0.0472, 0.1182], [-0.0683, 0.0577, 0.1182], [-0.0683, 0.0683, 0.1182], [-0.0683, 0.0787, 0.1182], [-0.0577, -0.0787, 0.1182], [-0.0577, -0.0683, 0.1182], [-0.0577, -0.0577, 0.1182], [-0.0577, -0.0472, 0.1182], [-0.0577, -0.0367, 0.1182], [-0.0577, -0.0262, 0.1182], [-0.0577, -0.0158, 0.1182], [-0.0577, -0.0052, 0.1182], [-0.0577, 0.0052, 0.1182], [-0.0577, 0.0158, 0.1182], [-0.0577, 0.0262, 0.1182], [-0.0577, 0.0367, 0.1182], [-0.0577, 0.0472, 0.1182], [-0.0577, 0.0577, 0.1182], [-0.0577, 0.0683, 0.1182], [-0.0577, 0.0787, 0.1182], [-0.0472, -0.0787, 0.1182], [-0.0472, -0.0683, 0.1182], [-0.0472, -0.0577, 0.1182], [-0.0472, -0.0472, 0.1182], [-0.0472, -0.0367, 0.1182], [-0.0472, -0.0262, 0.1182], [-0.0472, -0.0158, 0.1182], [-0.0472, -0.0052, 0.1182], [-0.0472, 0.0052, 0.1182], [-0.0472, 0.0158, 0.1182], [-0.0472, 0.0262, 0.1182], [-0.0472, 0.0367, 0.1182], [-0.0472, 0.0472, 0.1182], [-0.0472, 0.0577, 0.1182], [-0.0472, 0.0683, 0.1182], [-0.0472, 0.0787, 0.1182], [-0.0367, -0.0787, 0.1182], [-0.0367, -0.0683, 0.1182], [-0.0367, -0.0577, 0.1182], [-0.0367, -0.0472, 0.1182], [-0.0367, -0.0367, 0.1182], [-0.0367, -0.0262, 0.1182], [-0.0367, -0.0158, 0.1182], [-0.0367, -0.0052, 0.1182], [-0.0367, 0.0052, 0.1182], [-0.0367, 0.0158, 0.1182], [-0.0367, 0.0262, 0.1182], [-0.0367, 0.0367, 0.1182], [-0.0367, 0.0472, 0.1182], [-0.0367, 0.0577, 0.1182], [-0.0367, 0.0683, 0.1182], [-0.0367, 0.0787, 0.1182], [-0.0262, -0.0787, 0.1182], [-0.0262, -0.0683, 0.1182], [-0.0262, -0.0577, 0.1182], [-0.0262, -0.0472, 0.1182], [-0.0262, -0.0367, 0.1182], [-0.0262, -0.0262, 0.1182], [-0.0262, -0.0158, 0.1182], [-0.0262, -0.0052, 0.1182], [-0.0262, 0.0052, 0.1182], [-0.0262, 0.0158, 0.1182], [-0.0262, 0.0262, 0.1182], [-0.0262, 0.0367, 0.1182], [-0.0262, 0.0472, 0.1182], [-0.0262, 0.0577, 0.1182], [-0.0262, 0.0683, 0.1182], [-0.0262, 0.0787, 0.1182], [-0.0158, -0.0787, 0.1182], [-0.0158, -0.0683, 0.1182], [-0.0158, -0.0577, 0.1182], [-0.0158, -0.0472, 0.1182], [-0.0158, -0.0367, 0.1182], [-0.0158, -0.0262, 0.1182], [-0.0158, -0.0158, 0.1182], [-0.0158, -0.0052, 0.1182], [-0.0158, 0.0052, 0.1182], [-0.0158, 0.0158, 0.1182], [-0.0158, 0.0262, 0.1182], [-0.0158, 0.0367, 0.1182], [-0.0158, 0.0472, 0.1182], [-0.0158, 0.0577, 0.1182], [-0.0158, 0.0683, 0.1182], [-0.0158, 0.0787, 0.1182], [-0.0052, -0.0787, 0.1182], [-0.0052, -0.0683, 0.1182], [-0.0052, -0.0577, 0.1182], [-0.0052, -0.0472, 0.1182], [-0.0052, -0.0367, 0.1182], [-0.0052, -0.0262, 0.1182], [-0.0052, -0.0158, 0.1182], [-0.0052, -0.0052, 0.1182], [-0.0052, 0.0052, 0.1182], [-0.0052, 0.0158, 0.1182], [-0.0052, 0.0262, 0.1182], [-0.0052, 0.0367, 0.1182], [-0.0052, 0.0472, 0.1182], [-0.0052, 0.0577, 0.1182], [-0.0052, 0.0683, 0.1182], [-0.0052, 0.0787, 0.1182], [ 0.0052, -0.0787, 0.1182], [ 0.0052, -0.0683, 0.1182], [ 0.0052, -0.0577, 0.1182], [ 0.0052, -0.0472, 0.1182], [ 0.0052, -0.0367, 0.1182], [ 0.0052, -0.0262, 0.1182], [ 0.0052, -0.0158, 0.1182], [ 0.0052, -0.0052, 0.1182], [ 0.0052, 0.0052, 0.1182], [ 0.0052, 0.0158, 0.1182], [ 0.0052, 0.0262, 0.1182], [ 0.0052, 0.0367, 0.1182], [ 0.0052, 0.0472, 0.1182], [ 0.0052, 0.0577, 0.1182], [ 0.0052, 0.0683, 0.1182], [ 0.0052, 0.0787, 0.1182], [ 0.0158, -0.0787, 0.1182], [ 0.0158, -0.0683, 0.1182], [ 0.0158, -0.0577, 0.1182], [ 0.0158, -0.0472, 0.1182], [ 0.0158, -0.0367, 0.1182], [ 0.0158, -0.0262, 0.1182], [ 0.0158, -0.0158, 0.1182], [ 0.0158, -0.0052, 0.1182], [ 0.0158, 0.0052, 0.1182], [ 0.0158, 0.0158, 0.1182], [ 0.0158, 0.0262, 0.1182], [ 0.0158, 0.0367, 0.1182], [ 0.0158, 0.0472, 0.1182], [ 0.0158, 0.0577, 0.1182], [ 0.0158, 0.0683, 0.1182], [ 0.0158, 0.0787, 0.1182], [ 0.0262, -0.0787, 0.1182], [ 0.0262, -0.0683, 0.1182], [ 0.0262, -0.0577, 0.1182], [ 0.0262, -0.0472, 0.1182], [ 0.0262, -0.0367, 0.1182], [ 0.0262, -0.0262, 0.1182], [ 0.0262, -0.0158, 0.1182], [ 0.0262, -0.0052, 0.1182], [ 0.0262, 0.0052, 0.1182], [ 0.0262, 0.0158, 0.1182], [ 0.0262, 0.0262, 0.1182], [ 0.0262, 0.0367, 0.1182], [ 0.0262, 0.0472, 0.1182], [ 0.0262, 0.0577, 0.1182], [ 0.0262, 0.0683, 0.1182], [ 0.0262, 0.0787, 0.1182], [ 0.0367, -0.0787, 0.1182], [ 0.0367, -0.0683, 0.1182], [ 0.0367, -0.0577, 0.1182], [ 0.0367, -0.0472, 0.1182], [ 0.0367, -0.0367, 0.1182], [ 0.0367, -0.0262, 0.1182], [ 0.0367, -0.0158, 0.1182], [ 0.0367, -0.0052, 0.1182], [ 0.0367, 0.0052, 0.1182], [ 0.0367, 0.0158, 0.1182], [ 0.0367, 0.0262, 0.1182], [ 0.0367, 0.0367, 0.1182], [ 0.0367, 0.0472, 0.1182], [ 0.0367, 0.0577, 0.1182], [ 0.0367, 0.0683, 0.1182], [ 0.0367, 0.0787, 0.1182], [ 0.0472, -0.0787, 0.1182], [ 0.0472, -0.0683, 0.1182], [ 0.0472, -0.0577, 0.1182], [ 0.0472, -0.0472, 0.1182], [ 0.0472, -0.0367, 0.1182], [ 0.0472, -0.0262, 0.1182], [ 0.0472, -0.0158, 0.1182], [ 0.0472, -0.0052, 0.1182], [ 0.0472, 0.0052, 0.1182], [ 0.0472, 0.0158, 0.1182], [ 0.0472, 0.0262, 0.1182], [ 0.0472, 0.0367, 0.1182], [ 0.0472, 0.0472, 0.1182], [ 0.0472, 0.0577, 0.1182], [ 0.0472, 0.0683, 0.1182], [ 0.0472, 0.0787, 0.1182], [ 0.0577, -0.0787, 0.1182], [ 0.0577, -0.0683, 0.1182], [ 0.0577, -0.0577, 0.1182], [ 0.0577, -0.0472, 0.1182], [ 0.0577, -0.0367, 0.1182], [ 0.0577, -0.0262, 0.1182], [ 0.0577, -0.0158, 0.1182], [ 0.0577, -0.0052, 0.1182], [ 0.0577, 0.0052, 0.1182], [ 0.0577, 0.0158, 0.1182], [ 0.0577, 0.0262, 0.1182], [ 0.0577, 0.0367, 0.1182], [ 0.0577, 0.0472, 0.1182], [ 0.0577, 0.0577, 0.1182], [ 0.0577, 0.0683, 0.1182], [ 0.0577, 0.0787, 0.1182], [ 0.0683, -0.0787, 0.1182], [ 0.0683, -0.0683, 0.1182], [ 0.0683, -0.0577, 0.1182], [ 0.0683, -0.0472, 0.1182], [ 0.0683, -0.0367, 0.1182], [ 0.0683, -0.0262, 0.1182], [ 0.0683, -0.0158, 0.1182], [ 0.0683, -0.0052, 0.1182], [ 0.0683, 0.0052, 0.1182], [ 0.0683, 0.0158, 0.1182], [ 0.0683, 0.0262, 0.1182], [ 0.0683, 0.0367, 0.1182], [ 0.0683, 0.0472, 0.1182], [ 0.0683, 0.0577, 0.1182], [ 0.0683, 0.0683, 0.1182], [ 0.0683, 0.0787, 0.1182], [ 0.0787, -0.0787, 0.1182], [ 0.0787, -0.0683, 0.1182], [ 0.0787, -0.0577, 0.1182], [ 0.0787, -0.0472, 0.1182], [ 0.0787, -0.0367, 0.1182], [ 0.0787, -0.0262, 0.1182], [ 0.0787, -0.0158, 0.1182], [ 0.0787, -0.0052, 0.1182], [ 0.0787, 0.0052, 0.1182], [ 0.0787, 0.0158, 0.1182], [ 0.0787, 0.0262, 0.1182], [ 0.0787, 0.0367, 0.1182], [ 0.0787, 0.0472, 0.1182], [ 0.0787, 0.0577, 0.1182], [ 0.0787, 0.0683, 0.1182], [ 0.0787, 0.0787, 0.1182]])

Static variable for a 16x16 array at z=.234/2 - top board of a 2 array setup

BOTTOM_BOARD: torch.Tensor = tensor([[-0.0787, -0.0787, -0.1182], [-0.0787, -0.0683, -0.1182], [-0.0787, -0.0577, -0.1182], [-0.0787, -0.0472, -0.1182], [-0.0787, -0.0367, -0.1182], [-0.0787, -0.0262, -0.1182], [-0.0787, -0.0158, -0.1182], [-0.0787, -0.0052, -0.1182], [-0.0787, 0.0052, -0.1182], [-0.0787, 0.0158, -0.1182], [-0.0787, 0.0262, -0.1182], [-0.0787, 0.0367, -0.1182], [-0.0787, 0.0472, -0.1182], [-0.0787, 0.0577, -0.1182], [-0.0787, 0.0683, -0.1182], [-0.0787, 0.0787, -0.1182], [-0.0683, -0.0787, -0.1182], [-0.0683, -0.0683, -0.1182], [-0.0683, -0.0577, -0.1182], [-0.0683, -0.0472, -0.1182], [-0.0683, -0.0367, -0.1182], [-0.0683, -0.0262, -0.1182], [-0.0683, -0.0158, -0.1182], [-0.0683, -0.0052, -0.1182], [-0.0683, 0.0052, -0.1182], [-0.0683, 0.0158, -0.1182], [-0.0683, 0.0262, -0.1182], [-0.0683, 0.0367, -0.1182], [-0.0683, 0.0472, -0.1182], [-0.0683, 0.0577, -0.1182], [-0.0683, 0.0683, -0.1182], [-0.0683, 0.0787, -0.1182], [-0.0577, -0.0787, -0.1182], [-0.0577, -0.0683, -0.1182], [-0.0577, -0.0577, -0.1182], [-0.0577, -0.0472, -0.1182], [-0.0577, -0.0367, -0.1182], [-0.0577, -0.0262, -0.1182], [-0.0577, -0.0158, -0.1182], [-0.0577, -0.0052, -0.1182], [-0.0577, 0.0052, -0.1182], [-0.0577, 0.0158, -0.1182], [-0.0577, 0.0262, -0.1182], [-0.0577, 0.0367, -0.1182], [-0.0577, 0.0472, -0.1182], [-0.0577, 0.0577, -0.1182], [-0.0577, 0.0683, -0.1182], [-0.0577, 0.0787, -0.1182], [-0.0472, -0.0787, -0.1182], [-0.0472, -0.0683, -0.1182], [-0.0472, -0.0577, -0.1182], [-0.0472, -0.0472, -0.1182], [-0.0472, -0.0367, -0.1182], [-0.0472, -0.0262, -0.1182], [-0.0472, -0.0158, -0.1182], [-0.0472, -0.0052, -0.1182], [-0.0472, 0.0052, -0.1182], [-0.0472, 0.0158, -0.1182], [-0.0472, 0.0262, -0.1182], [-0.0472, 0.0367, -0.1182], [-0.0472, 0.0472, -0.1182], [-0.0472, 0.0577, -0.1182], [-0.0472, 0.0683, -0.1182], [-0.0472, 0.0787, -0.1182], [-0.0367, -0.0787, -0.1182], [-0.0367, -0.0683, -0.1182], [-0.0367, -0.0577, -0.1182], [-0.0367, -0.0472, -0.1182], [-0.0367, -0.0367, -0.1182], [-0.0367, -0.0262, -0.1182], [-0.0367, -0.0158, -0.1182], [-0.0367, -0.0052, -0.1182], [-0.0367, 0.0052, -0.1182], [-0.0367, 0.0158, -0.1182], [-0.0367, 0.0262, -0.1182], [-0.0367, 0.0367, -0.1182], [-0.0367, 0.0472, -0.1182], [-0.0367, 0.0577, -0.1182], [-0.0367, 0.0683, -0.1182], [-0.0367, 0.0787, -0.1182], [-0.0262, -0.0787, -0.1182], [-0.0262, -0.0683, -0.1182], [-0.0262, -0.0577, -0.1182], [-0.0262, -0.0472, -0.1182], [-0.0262, -0.0367, -0.1182], [-0.0262, -0.0262, -0.1182], [-0.0262, -0.0158, -0.1182], [-0.0262, -0.0052, -0.1182], [-0.0262, 0.0052, -0.1182], [-0.0262, 0.0158, -0.1182], [-0.0262, 0.0262, -0.1182], [-0.0262, 0.0367, -0.1182], [-0.0262, 0.0472, -0.1182], [-0.0262, 0.0577, -0.1182], [-0.0262, 0.0683, -0.1182], [-0.0262, 0.0787, -0.1182], [-0.0158, -0.0787, -0.1182], [-0.0158, -0.0683, -0.1182], [-0.0158, -0.0577, -0.1182], [-0.0158, -0.0472, -0.1182], [-0.0158, -0.0367, -0.1182], [-0.0158, -0.0262, -0.1182], [-0.0158, -0.0158, -0.1182], [-0.0158, -0.0052, -0.1182], [-0.0158, 0.0052, -0.1182], [-0.0158, 0.0158, -0.1182], [-0.0158, 0.0262, -0.1182], [-0.0158, 0.0367, -0.1182], [-0.0158, 0.0472, -0.1182], [-0.0158, 0.0577, -0.1182], [-0.0158, 0.0683, -0.1182], [-0.0158, 0.0787, -0.1182], [-0.0052, -0.0787, -0.1182], [-0.0052, -0.0683, -0.1182], [-0.0052, -0.0577, -0.1182], [-0.0052, -0.0472, -0.1182], [-0.0052, -0.0367, -0.1182], [-0.0052, -0.0262, -0.1182], [-0.0052, -0.0158, -0.1182], [-0.0052, -0.0052, -0.1182], [-0.0052, 0.0052, -0.1182], [-0.0052, 0.0158, -0.1182], [-0.0052, 0.0262, -0.1182], [-0.0052, 0.0367, -0.1182], [-0.0052, 0.0472, -0.1182], [-0.0052, 0.0577, -0.1182], [-0.0052, 0.0683, -0.1182], [-0.0052, 0.0787, -0.1182], [ 0.0052, -0.0787, -0.1182], [ 0.0052, -0.0683, -0.1182], [ 0.0052, -0.0577, -0.1182], [ 0.0052, -0.0472, -0.1182], [ 0.0052, -0.0367, -0.1182], [ 0.0052, -0.0262, -0.1182], [ 0.0052, -0.0158, -0.1182], [ 0.0052, -0.0052, -0.1182], [ 0.0052, 0.0052, -0.1182], [ 0.0052, 0.0158, -0.1182], [ 0.0052, 0.0262, -0.1182], [ 0.0052, 0.0367, -0.1182], [ 0.0052, 0.0472, -0.1182], [ 0.0052, 0.0577, -0.1182], [ 0.0052, 0.0683, -0.1182], [ 0.0052, 0.0787, -0.1182], [ 0.0158, -0.0787, -0.1182], [ 0.0158, -0.0683, -0.1182], [ 0.0158, -0.0577, -0.1182], [ 0.0158, -0.0472, -0.1182], [ 0.0158, -0.0367, -0.1182], [ 0.0158, -0.0262, -0.1182], [ 0.0158, -0.0158, -0.1182], [ 0.0158, -0.0052, -0.1182], [ 0.0158, 0.0052, -0.1182], [ 0.0158, 0.0158, -0.1182], [ 0.0158, 0.0262, -0.1182], [ 0.0158, 0.0367, -0.1182], [ 0.0158, 0.0472, -0.1182], [ 0.0158, 0.0577, -0.1182], [ 0.0158, 0.0683, -0.1182], [ 0.0158, 0.0787, -0.1182], [ 0.0262, -0.0787, -0.1182], [ 0.0262, -0.0683, -0.1182], [ 0.0262, -0.0577, -0.1182], [ 0.0262, -0.0472, -0.1182], [ 0.0262, -0.0367, -0.1182], [ 0.0262, -0.0262, -0.1182], [ 0.0262, -0.0158, -0.1182], [ 0.0262, -0.0052, -0.1182], [ 0.0262, 0.0052, -0.1182], [ 0.0262, 0.0158, -0.1182], [ 0.0262, 0.0262, -0.1182], [ 0.0262, 0.0367, -0.1182], [ 0.0262, 0.0472, -0.1182], [ 0.0262, 0.0577, -0.1182], [ 0.0262, 0.0683, -0.1182], [ 0.0262, 0.0787, -0.1182], [ 0.0367, -0.0787, -0.1182], [ 0.0367, -0.0683, -0.1182], [ 0.0367, -0.0577, -0.1182], [ 0.0367, -0.0472, -0.1182], [ 0.0367, -0.0367, -0.1182], [ 0.0367, -0.0262, -0.1182], [ 0.0367, -0.0158, -0.1182], [ 0.0367, -0.0052, -0.1182], [ 0.0367, 0.0052, -0.1182], [ 0.0367, 0.0158, -0.1182], [ 0.0367, 0.0262, -0.1182], [ 0.0367, 0.0367, -0.1182], [ 0.0367, 0.0472, -0.1182], [ 0.0367, 0.0577, -0.1182], [ 0.0367, 0.0683, -0.1182], [ 0.0367, 0.0787, -0.1182], [ 0.0472, -0.0787, -0.1182], [ 0.0472, -0.0683, -0.1182], [ 0.0472, -0.0577, -0.1182], [ 0.0472, -0.0472, -0.1182], [ 0.0472, -0.0367, -0.1182], [ 0.0472, -0.0262, -0.1182], [ 0.0472, -0.0158, -0.1182], [ 0.0472, -0.0052, -0.1182], [ 0.0472, 0.0052, -0.1182], [ 0.0472, 0.0158, -0.1182], [ 0.0472, 0.0262, -0.1182], [ 0.0472, 0.0367, -0.1182], [ 0.0472, 0.0472, -0.1182], [ 0.0472, 0.0577, -0.1182], [ 0.0472, 0.0683, -0.1182], [ 0.0472, 0.0787, -0.1182], [ 0.0577, -0.0787, -0.1182], [ 0.0577, -0.0683, -0.1182], [ 0.0577, -0.0577, -0.1182], [ 0.0577, -0.0472, -0.1182], [ 0.0577, -0.0367, -0.1182], [ 0.0577, -0.0262, -0.1182], [ 0.0577, -0.0158, -0.1182], [ 0.0577, -0.0052, -0.1182], [ 0.0577, 0.0052, -0.1182], [ 0.0577, 0.0158, -0.1182], [ 0.0577, 0.0262, -0.1182], [ 0.0577, 0.0367, -0.1182], [ 0.0577, 0.0472, -0.1182], [ 0.0577, 0.0577, -0.1182], [ 0.0577, 0.0683, -0.1182], [ 0.0577, 0.0787, -0.1182], [ 0.0683, -0.0787, -0.1182], [ 0.0683, -0.0683, -0.1182], [ 0.0683, -0.0577, -0.1182], [ 0.0683, -0.0472, -0.1182], [ 0.0683, -0.0367, -0.1182], [ 0.0683, -0.0262, -0.1182], [ 0.0683, -0.0158, -0.1182], [ 0.0683, -0.0052, -0.1182], [ 0.0683, 0.0052, -0.1182], [ 0.0683, 0.0158, -0.1182], [ 0.0683, 0.0262, -0.1182], [ 0.0683, 0.0367, -0.1182], [ 0.0683, 0.0472, -0.1182], [ 0.0683, 0.0577, -0.1182], [ 0.0683, 0.0683, -0.1182], [ 0.0683, 0.0787, -0.1182], [ 0.0787, -0.0787, -0.1182], [ 0.0787, -0.0683, -0.1182], [ 0.0787, -0.0577, -0.1182], [ 0.0787, -0.0472, -0.1182], [ 0.0787, -0.0367, -0.1182], [ 0.0787, -0.0262, -0.1182], [ 0.0787, -0.0158, -0.1182], [ 0.0787, -0.0052, -0.1182], [ 0.0787, 0.0052, -0.1182], [ 0.0787, 0.0158, -0.1182], [ 0.0787, 0.0262, -0.1182], [ 0.0787, 0.0367, -0.1182], [ 0.0787, 0.0472, -0.1182], [ 0.0787, 0.0577, -0.1182], [ 0.0787, 0.0683, -0.1182], [ 0.0787, 0.0787, -0.1182]])

Static variable for a 16x16 array at z=-.234/2 - bottom board of a 2 array setup