def r_shape_cubic(cell_position, index):
flip_factor = 1.
ir = int64(math.floor(cell_position)) - 1
if index == 0:
if ir < 0:
flip_factor = -1.
return flip_factor*(-1./6.)*((cell_position-ir)-2)**3
if index == 1:
if ir+1 < 0:
flip_factor = -1.
return flip_factor*(1./6.)*(3*((cell_position-(ir+1))**3)-6*((cell_position-(ir+1))**2)+4)
if index == 2:
if ir+2 < 0:
flip_factor = -1.
return flip_factor*(1./6.)*(3*(((ir+2)-cell_position)**3)-6*(((ir+2)-cell_position)**2)+4)
if index == 3:
if ir+3 < 0:
flip_factor = -1.
return flip_factor*(-1./6.)*(((ir+3)-cell_position)-2)**3
# -------------------------------
# Field deposition - linear - rho
# -------------------------------
评论列表
文章目录