Source code for svcco.implicit.solver.solver_functions.init_normals_given

import numpy as np

[docs]def init_normals_given(ic_norms): init_norms = np.zeros(ic_norms.shape[0]*(ic_norms.shape[1]-1)) for i in range(ic_norms.shape[0]): #for j in range(ic_norms.shape[1]-1): # if j == ic_norms.shape[1] - 1: # if ic_norms[i,j] >= 0: # init_norms[i*(ic_norms.shape[1]-1)+j] = np.arccos(ic_norms[i,j]/np.linalg.norm(ic_norms[i,j:])) # else: # init_norms[i*(ic_norms.shape[1]-1)+j] = 2*np.pi - np.arccos(ic_norms[i,j]/np.linalg.norm(ic_norms[i,j:])) # else: # init_norms[i*(ic_norms.shape[1]-1)+j] = np.arccos(ic_norms[i,j]/np.linalg.norm(ic_norms[i,j:])) init_norms[i*2] = np.arctan2((ic_norms[i,0]**2+ic_norms[i,1]**2)**(1/2),ic_norms[i,2]) init_norms[i*2+1] = np.arctan2(ic_norms[i,1],ic_norms[i,0]) return init_norms