Functions | |
int | appr_get_ent_owner (int Field_id, int Ent_type, int Ent_id) |
int | appr_get_ent_id_at_owner (int Field_id, int Ent_type, int Ent_id) |
int | appr_adjust_field (int Field_id) |
int | appr_init_exchange_tables (int Nr_proc, int My_proc_id, int Field_id, int Nreq_offset, int Nreq, int Nr_levels) |
int | appr_create_exchange_tables (int Table_index, int Level_id, int Nr_dof_ent, int *L_dof_ent_type, int *L_dof_ent_id, int *L_bl_nrdof, int *L_bl_posg, int *L_elem_to_bl, int *L_face_to_bl, int *L_edge_to_bl, int *L_vert_to_bl) |
int | appr_exchange_dofs (int Table_index, int Level_id, double *Vec_dofs) |
double | appr_sol_vec_norm (int Table_index, int Level_id, int Nrdof, double *Vector) |
double | appr_sol_sc_prod (int Table_index, int Level_id, int Nrdof, double *Vector1, double *Vector2) |
int | appr_get_nr_dofs_owned (int Table_index) |
int | appr_free_exchange_tables (int Table_index) |
int appr_adjust_field | ( | int | Field_id | ) |
--------------------------------------------------------- appr_adjust_field - to adjust DOFs after domain decomposition ---------------------------------------------------------
int appr_create_exchange_tables | ( | int | Table_index, | |
int | Level_id, | |||
int | Nr_dof_ent, | |||
int * | L_dof_ent_type, | |||
int * | L_dof_ent_id, | |||
int * | L_bl_nrdof, | |||
int * | L_bl_posg, | |||
int * | L_elem_to_bl, | |||
int * | L_face_to_bl, | |||
int * | L_edge_to_bl, | |||
int * | L_vert_to_bl | |||
) |
-------------------------------------------------------- appr_create_exchange_tables - to create lists of dofs exchanged between pairs of processors. REMARK. a simplified setting is used, where dof structures are modified (updated) only by their owners and data send to other processors. Thus both exchange1 and exchange2 groups of arrays are empty and only send and receive arrays are filled. In the routine appr_create_exchange_tables each processor constructs lists of dof structures needed for solver (dofrecv group) and sends them to owning processors. It also receives from other processors requests for owned dof structures needed by other processors (dofsend group). ---------------------------------------------------------
Table_index | returns: >=0 -success code, <0 -error code | |
Nr_dof_ent | in: level ID | |
L_dof_ent_type | in: number of DOF entities in the level all four subsequent arrays are indexed by block IDs with 1(!!!) offset | |
L_dof_ent_id | in: list of DOF entities associated with DOF blocks | |
L_bl_nrdof | in: list of DOF entities associated with DOF blocks | |
L_bl_posg | in: list of nrdofs for each dof block | |
L_elem_to_bl | in: list of positions within the global vector of dofs for each dof block | |
L_face_to_bl | in: list of DOF blocks associated with DOF entities | |
L_edge_to_bl | in: list of DOF blocks associated with DOF entities | |
L_vert_to_bl | in: list of DOF blocks associated with DOF entities in: list of DOF blocks associated with DOF entities |
int appr_exchange_dofs | ( | int | Table_index, | |
int | Level_id, | |||
double * | Vec_dofs | |||
) |
-------------------------------------------------------- appr_exchange_dofs - to exchange dofs between processors ---------------------------------------------------------
Vec_dofs | in: level ID in: vector of dofs to be exchanged |
int appr_free_exchange_tables | ( | int | Table_index | ) |
-------------------------------------------------------- appr_free_exchange_tables - to free data structure related to exchange of dofs ---------------------------------------------------------
Table_index | returns: >=0 -success code, <0 -error code |
int appr_get_ent_id_at_owner | ( | int | Field_id, | |
int | Ent_type, | |||
int | Ent_id | |||
) |
-------------------------------------------------------- appr_get_ent_id_at_owner ---------------------------------------------------------
Field_id | returns: >=0 -success code - entity local ID, <0 -error code | |
Ent_type | in: approximation field ID | |
Ent_id | in: type of mesh entity in: mesh entity ID |
int appr_get_ent_owner | ( | int | Field_id, | |
int | Ent_type, | |||
int | Ent_id | |||
) |
-------------------------------------------------------- appr_get_ent_owner - to return owning process(or) ID ---------------------------------------------------------
Field_id | returns: >=0 -success code - owner ID, <0 -error code | |
Ent_type | in: approximation field ID | |
Ent_id | in: type of mesh entity in: mesh entity ID |
int appr_get_nr_dofs_owned | ( | int | Table_index | ) |
-------------------------------------------------------- appr_get_nr_dofs_owned - utility to calculate the number of dofs owned at the finest level ---------------------------------------------------------
int appr_init_exchange_tables | ( | int | Nr_proc, | |
int | My_proc_id, | |||
int | Field_id, | |||
int | Nreq_offset, | |||
int | Nreq, | |||
int | Nr_levels | |||
) |
-------------------------------------------------------- appr_init_exchange_tables - to initialize data structure related to exchange of dofs ---------------------------------------------------------
double appr_sol_sc_prod | ( | int | Table_index, | |
int | Level_id, | |||
int | Nrdof, | |||
double * | Vector1, | |||
double * | Vector2 | |||
) |
-------------------------------------------------------- appr_sol_sc_prod - to compute a scalar product of two global vectors ---------------------------------------------------------
Table_index | retruns: scalar product of Vector1 and Vector2 | |
Nrdof | in: level ID | |
Vector1 | in: number of vector components | |
Vector2 | in: local part of global Vector in: local part of global Vector |
double appr_sol_vec_norm | ( | int | Table_index, | |
int | Level_id, | |||
int | Nrdof, | |||
double * | Vector | |||
) |
-------------------------------------------------------- appr_sol_vec_norm - to compute a norm of global vector in parallel ---------------------------------------------------------
Table_index | returns: L2 norm of global Vector | |
Nrdof | in: level ID | |
Vector | in: number of vector components in: local part of global Vector |