YAC 3.12.0
Yet Another Coupler
Loading...
Searching...
No Matches
toy_multi_curve2d Namespace Reference

Functions

 lonlat2xyz (lon, lat)
 
 xyz2lonlat (x, y, z)
 
 rotmat (theta, plane_dims, d=2)
 
 msg (m)
 
 data (lon, lat)
 

Variables

 yac = YAC()
 
str my_comp_name = "PISM"
 
 comp = yac.def_comp(my_comp_name)
 
 size = comp.comp_comm.size
 
 rank = comp.comp_comm.rank
 
 fac = int(np.sqrt(size))
 
list dim2d = [100, 50]
 
list size2d = [fac, size//fac]
 
list rank2d = [rank % fac, rank//fac]
 
list chunk2d = [math.ceil(dim2d[0]/size2d[0]), math.ceil(dim2d[1]/size2d[1])]
 
list slice2d
 
 x = np.linspace(-.5, .5, dim2d[0])
 
 y = np.linspace(-.5, .5, dim2d[1])
 
 vx
 
 vy
 
 r = rotmat(-.45*np.pi, [0, 2], 3)@rotmat(0.1*np.pi, [0, 1], 3)
 
 v_xyz = np.stack(lonlat2xyz(vx, vy), axis=-1)
 
float c_xyz = 0.25*(v_xyz[:-1, :-1, :]+v_xyz[1:, :-1, :]+v_xyz[:-1, 1:, :]+v_xyz[1:, 1:, :])
 
 cx
 
 cy
 
 grid = Curve2dGrid(f"{my_comp_name}_grid", vx, vy)
 
 corner_idx = np.arange(math.prod(dim2d)).reshape(dim2d)[slice2d[0], slice2d[1]]
 
 cell_idx
 
 points_cell = grid.def_points(Location.CELL, cx, cy)
 
 points_vertex = grid.def_points(Location.CORNER, vx, vy)
 
list interpolations
 
dict field
 
 data_vertex = data(vx, vy)
 
 data_cell = data(cx, cy)
 
dict data = field[f"{interp[0]}_{comp_name}_field_out"].get()
 

Function Documentation

◆ data()

toy_multi_curve2d.data ( lon,
lat )

Definition at line 108 of file toy_multi_curve2d.py.

◆ lonlat2xyz()

toy_multi_curve2d.lonlat2xyz ( lon,
lat )

Definition at line 14 of file toy_multi_curve2d.py.

◆ msg()

toy_multi_curve2d.msg ( m)

Definition at line 43 of file toy_multi_curve2d.py.

◆ rotmat()

toy_multi_curve2d.rotmat ( theta,
plane_dims,
d = 2 )

Definition at line 26 of file toy_multi_curve2d.py.

◆ xyz2lonlat()

toy_multi_curve2d.xyz2lonlat ( x,
y,
z )

Definition at line 20 of file toy_multi_curve2d.py.

Variable Documentation

◆ c_xyz

float toy_multi_curve2d.c_xyz = 0.25*(v_xyz[:-1, :-1, :]+v_xyz[1:, :-1, :]+v_xyz[:-1, 1:, :]+v_xyz[1:, 1:, :])

Definition at line 70 of file toy_multi_curve2d.py.

◆ cell_idx

toy_multi_curve2d.cell_idx
Initial value:
1= np.arange(math.prod([d-1 for d in dim2d])).reshape([d-1 for d in dim2d])[
2 slice(rank2d[0]*chunk2d[0], (rank2d[0]+1)*chunk2d[0]),
3 slice(rank2d[1]*chunk2d[1], (rank2d[1]+1)*chunk2d[1])]

Definition at line 79 of file toy_multi_curve2d.py.

◆ chunk2d

list toy_multi_curve2d.chunk2d = [math.ceil(dim2d[0]/size2d[0]), math.ceil(dim2d[1]/size2d[1])]

Definition at line 57 of file toy_multi_curve2d.py.

◆ comp

toy_multi_curve2d.comp = yac.def_comp(my_comp_name)

Definition at line 37 of file toy_multi_curve2d.py.

◆ corner_idx

toy_multi_curve2d.corner_idx = np.arange(math.prod(dim2d)).reshape(dim2d)[slice2d[0], slice2d[1]]

Definition at line 76 of file toy_multi_curve2d.py.

◆ cx

toy_multi_curve2d.cx

Definition at line 72 of file toy_multi_curve2d.py.

◆ cy

toy_multi_curve2d.cy

Definition at line 72 of file toy_multi_curve2d.py.

◆ data

dict toy_multi_curve2d.data = field[f"{interp[0]}_{comp_name}_field_out"].get()

Definition at line 122 of file toy_multi_curve2d.py.

◆ data_cell

toy_multi_curve2d.data_cell = data(cx, cy)

Definition at line 113 of file toy_multi_curve2d.py.

◆ data_vertex

toy_multi_curve2d.data_vertex = data(vx, vy)

Definition at line 112 of file toy_multi_curve2d.py.

◆ dim2d

list toy_multi_curve2d.dim2d = [100, 50]

Definition at line 54 of file toy_multi_curve2d.py.

◆ fac

int toy_multi_curve2d.fac = int(np.sqrt(size))

Definition at line 49 of file toy_multi_curve2d.py.

◆ field

dict toy_multi_curve2d.field
Initial value:
1= {f"{interp[0]}_{comp_name}_field_out":
2 Field.create(f"{interp[0]}_{comp_name}_field_out", comp,
3 points_vertex if interp[1] == Location.CORNER else points_cell,
4 1, "2", TimeUnit.SECOND)
5 for comp_name, interp in product(yac.component_names, interpolations)}

Definition at line 96 of file toy_multi_curve2d.py.

◆ grid

toy_multi_curve2d.grid = Curve2dGrid(f"{my_comp_name}_grid", vx, vy)

Definition at line 74 of file toy_multi_curve2d.py.

◆ interpolations

list toy_multi_curve2d.interpolations
Initial value:
1= [("conserv", Location.CELL),
2 ("2nd_conserv", Location.CELL),
3 ("avg", Location.CORNER),
4 ("hcsbb", Location.CELL),
5 ("rbf", Location.CELL)]

Definition at line 87 of file toy_multi_curve2d.py.

◆ my_comp_name

str toy_multi_curve2d.my_comp_name = "PISM"

Definition at line 36 of file toy_multi_curve2d.py.

◆ points_cell

toy_multi_curve2d.points_cell = grid.def_points(Location.CELL, cx, cy)

Definition at line 84 of file toy_multi_curve2d.py.

◆ points_vertex

toy_multi_curve2d.points_vertex = grid.def_points(Location.CORNER, vx, vy)

Definition at line 85 of file toy_multi_curve2d.py.

◆ r

toy_multi_curve2d.r = rotmat(-.45*np.pi, [0, 2], 3)@rotmat(0.1*np.pi, [0, 1], 3)

Definition at line 67 of file toy_multi_curve2d.py.

◆ rank

toy_multi_curve2d.rank = comp.comp_comm.rank

Definition at line 40 of file toy_multi_curve2d.py.

◆ rank2d

list toy_multi_curve2d.rank2d = [rank % fac, rank//fac]

Definition at line 56 of file toy_multi_curve2d.py.

◆ size

toy_multi_curve2d.size = comp.comp_comm.size

Definition at line 39 of file toy_multi_curve2d.py.

◆ size2d

list toy_multi_curve2d.size2d = [fac, size//fac]

Definition at line 55 of file toy_multi_curve2d.py.

◆ slice2d

list toy_multi_curve2d.slice2d
Initial value:
1= [slice(rank2d[0]*chunk2d[0], (rank2d[0]+1)*chunk2d[0]+1),
2 slice(rank2d[1]*chunk2d[1], (rank2d[1]+1)*chunk2d[1]+1)]

Definition at line 58 of file toy_multi_curve2d.py.

◆ v_xyz

toy_multi_curve2d.v_xyz = np.stack(lonlat2xyz(vx, vy), axis=-1)

Definition at line 68 of file toy_multi_curve2d.py.

◆ vx

toy_multi_curve2d.vx

Definition at line 65 of file toy_multi_curve2d.py.

◆ vy

toy_multi_curve2d.vy

Definition at line 65 of file toy_multi_curve2d.py.

◆ x

toy_multi_curve2d.x = np.linspace(-.5, .5, dim2d[0])

Definition at line 61 of file toy_multi_curve2d.py.

◆ y

toy_multi_curve2d.y = np.linspace(-.5, .5, dim2d[1])

Definition at line 62 of file toy_multi_curve2d.py.

◆ yac

toy_multi_curve2d.yac = YAC()

Definition at line 35 of file toy_multi_curve2d.py.