def register_gridfunctions_for_single_rank2(gf_type, gf_basename, symmetry_option, DIM=-1): # Step 0: Verify the gridfunction basename is valid: gri.verify_gridfunction_basename_is_valid(gf_basename) # Step 1: Declare a list of lists of SymPy variables, # where IDX_OBJ_TMP[i][j] = gf_basename+str(i)+str(j) IDX_OBJ_TMP = declarerank2(gf_basename, symmetry_option, DIM) # Step 2: register each gridfunction, being careful not # not to store duplicates due to rank-2 symmetries. if DIM == -1: DIM = par.parval_from_str("DIM") # Register only unique gridfunctions. Otherwise # rank-2 symmetries might result in duplicates gf_list = [] for i in range(DIM): for j in range(DIM): save = True for l in range(len(gf_list)): if gf_list[l] == str(IDX_OBJ_TMP[i][j]): save = False if save == True: gf_list.append(str(IDX_OBJ_TMP[i][j])) gri.register_gridfunctions(gf_type, gf_list, rank=2, is_indexed=True, DIM=DIM) # Step 3: Return array of SymPy variables return IDX_OBJ_TMP
def register_gridfunctions_for_single_rank1(gf_type,gf_basename, DIM=-1, f_infinity=0.0, wavespeed=1.0): # Step 0: Verify the gridfunction basename is valid: gri.verify_gridfunction_basename_is_valid(gf_basename) # Step 1: Declare a list of SymPy variables, # where IDX_OBJ_TMP[i] = gf_basename+str(i) IDX_OBJ_TMP = declarerank1(gf_basename, DIM) # Step 2: Register each gridfunction if DIM==-1: DIM = par.parval_from_str("DIM") gf_list = [] for i in range(DIM): gf_list.append(str(IDX_OBJ_TMP[i])) gri.register_gridfunctions(gf_type, gf_list, rank=1, is_indexed=True, DIM=DIM, f_infinity=f_infinity, wavespeed=wavespeed) # Step 3: Return array of SymPy variables return IDX_OBJ_TMP