#include <stdlib.h>
#include <stdio.h>
#include <math.h>
#include <time.h>
#include <string.h>
#include "uth_intf.h"
#include "mmh_intf.h"
#include "aph_intf.h"
#include "tmh_intf.h"
#include "sih_intf.h"
#include "pdh_intf.h"
#include "pdh_control_intf.h"
#include "../include/pdh_conv_diff.h"
#include "../include/pdh_conv_diff_problem.h"
Defines | |
#define | SMALL 1.0e-10 |
Functions | |
int | pdr_conv_diff_select_el_coeff_vect (int Problem_id, int *Coeff_vect_ind) |
double * | pdr_conv_diff_select_el_coeff (int Problem_id, double **Mval, double **Axx, double **Axy, double **Axz, double **Ayx, double **Ayy, double **Ayz, double **Azx, double **Azy, double **Azz, double **Bx, double **By, double **Bz, double **Tx, double **Ty, double **Tz, double **Cval, double **Lval, double **Qx, double **Qy, double **Qz, double **Sval) |
int | pdr_conv_diff_el_coeff (int Problem_id, int Elem, int Mat_num, double Hsize, int Pdeg, double *X_loc, double *Base_phi, double *Base_dphix, double *Base_dphiy, double *Base_dphiz, double *Xcoor, double *Uk_val, double *Uk_x, double *Uk_y, double *Uk_z, double *Un_val, double *Un_x, double *Un_y, double *Un_z, double *Mval, double *Axx, double *Axy, double *Axz, double *Ayx, double *Ayy, double *Ayz, double *Azx, double *Azy, double *Azz, double *Bx, double *By, double *Bz, double *Tx, double *Ty, double *Tz, double *Cval, double *Lval, double *Qx, double *Qy, double *Qz, double *Sval) |
int | pdr_conv_diff_comp_el_stiff_mat_app (int Problem_id, int El_id, int Comp_sm, int Pdeg_in, int *Nr_dof_ent, int *List_dof_ent_type, int *List_dof_ent_id, int *List_dof_ent_nrdof, int *Nrdofs_loc, double *Stiff_mat, double *Rhs_vect, char *Rewr_dofs) |
int | pdr_conv_diff_comp_el_stiff_mat (int Problem_id, int El_id, int Comp_sm, int Pdeg_in, int *Nr_dof_ent, int *List_dof_ent_type, int *List_dof_ent_id, int *List_dof_ent_nrdofs, int *Nrdofs_loc, double *Stiff_mat, double *Rhs_vect, char *Rewr_dofs) |
void | pdr_fa_coeff (int Face, int BC_flag, int Elem, int Mat_num, double Hsize, double Time, int Pdeg, double *Xcoor, double *Vec_norm, double *U_val, double *U_x, double *U_y, double *U_z, double *Anx, double *Any, double *Anz, double *Bn, double *Fval, double *Gval, double *Qn, double *Vel_norm) |
void | pdr_pde_coeff (int Mat_num, double *Xcoor, double Time, double *U_val, double *U_x, double *U_y, double *U_z, double *Axx, double *Axy, double *Axz, double *Ayx, double *Ayy, double *Ayz, double *Azx, double *Azy, double *Azz, double *Bx, double *By, double *Bz, double *Tx, double *Ty, double *Tz, double *Cval, double *Mval, double *Lval, double *Sval, double *Qx, double *Qy, double *Qz) |
void | pdr_bc_diri_coeff (int Face, int Mat_num, double *Xcoor, double *Vec_norm, double Time, double *U_val, double *U_x, double *U_y, double *U_z, double *Fval) |
void | pdr_bc_neum_coeff (int Face, int Mat_num, double *Xcoor, double *Vec_norm, double Time, double *U_val, double *U_x, double *U_y, double *U_z, double *Gval) |
void | pdr_bc_mixed_coeff (int Face, int Mat_num, double *Xcoor, double *Vec_norm, double Time, double *U_val, double *U_x, double *U_y, double *U_z, double *Fval, double *Kr) |
int | pdr_bc_val (int Problem_id, int Num, double *Val) |
int | pdr_ic_val (int Problem_id, int Num, double *Val) |
int | pdr_get_bc_type (int Fa_bc) |
int | pdr_conv_diff_comp_fa_stiff_mat_app (int Problem_id, int Fa_id, int Comp_sm, int Pdeg_in, int *Nr_dof_ent, int *List_dof_ent_type, int *List_dof_ent_id, int *List_dof_ent_nrdofs, int *Nrdofs_loc, double *Stiff_mat, double *Rhs_vect, char *Rewr_dofs) |
int | pdr_conv_diff_comp_fa_stiff_mat (int Problem_id, int Fa_id, int Comp_sm, int Pdeg_in, int *Nr_dof_ent, int *List_dof_ent_type, int *List_dof_ent_id, int *List_dof_ent_nrdofs, int *Nrdofs_loc, double *Stiff_mat, double *Rhs_vect, char *Rewr_dofs) |
int | pdr_conv_diff_compute_CFL (int Problem_id, double *CFL_min_p, double *CFL_max_p, double *CFL_ave_p) |
#define SMALL 1.0e-10 |
void pdr_bc_diri_coeff | ( | int | Face, | |
int | Mat_num, | |||
double * | Xcoor, | |||
double * | Vec_norm, | |||
double | Time, | |||
double * | U_val, | |||
double * | U_x, | |||
double * | U_y, | |||
double * | U_z, | |||
double * | Fval | |||
) |
-------------------------------------------------------- pdr_bc_diri_coeff - to return DIRICHLET boundary coeficients (routine substitutes only non-zero values) ----------------------------------------------------------
void pdr_bc_mixed_coeff | ( | int | Face, | |
int | Mat_num, | |||
double * | Xcoor, | |||
double * | Vec_norm, | |||
double | Time, | |||
double * | U_val, | |||
double * | U_x, | |||
double * | U_y, | |||
double * | U_z, | |||
double * | Fval, | |||
double * | Kr | |||
) |
-------------------------------------------------------- pdr_bc_mixed_coeff - to return ROBIN (mixed) boundary coeficients ----------------------------------------------------------
void pdr_bc_neum_coeff | ( | int | Face, | |
int | Mat_num, | |||
double * | Xcoor, | |||
double * | Vec_norm, | |||
double | Time, | |||
double * | U_val, | |||
double * | U_x, | |||
double * | U_y, | |||
double * | U_z, | |||
double * | Gval | |||
) |
-------------------------------------------------------- pdr_bc_neum_coeff - to return NEUMANN boundary coeficients (routine substitutes only non-zero values) ----------------------------------------------------------
int pdr_bc_val | ( | int | Problem_id, | |
int | Num, | |||
double * | Val | |||
) |
------------------------------------------------------------------------- pdr_bc_val - to get the boundary condition values ---------------------------------------------------------------------------
int pdr_conv_diff_comp_el_stiff_mat | ( | int | Problem_id, | |
int | El_id, | |||
int | Comp_sm, | |||
int | Pdeg_in, | |||
int * | Nr_dof_ent, | |||
int * | List_dof_ent_type, | |||
int * | List_dof_ent_id, | |||
int * | List_dof_ent_nrdofs, | |||
int * | Nrdofs_loc, | |||
double * | Stiff_mat, | |||
double * | Rhs_vect, | |||
char * | Rewr_dofs | |||
) |
----------------------------------------------------------- pdr_conv_diff_comp_el_stiff_mat - to construct a stiffness matrix and a load vector for an element ------------------------------------------------------------
int pdr_conv_diff_comp_el_stiff_mat_app | ( | int | Problem_id, | |
int | El_id, | |||
int | Comp_sm, | |||
int | Pdeg_in, | |||
int * | Nr_dof_ent, | |||
int * | List_dof_ent_type, | |||
int * | List_dof_ent_id, | |||
int * | List_dof_ent_nrdof, | |||
int * | Nrdofs_loc, | |||
double * | Stiff_mat, | |||
double * | Rhs_vect, | |||
char * | Rewr_dofs | |||
) |
int pdr_conv_diff_comp_fa_stiff_mat | ( | int | Problem_id, | |
int | Fa_id, | |||
int | Comp_sm, | |||
int | Pdeg_in, | |||
int * | Nr_dof_ent, | |||
int * | List_dof_ent_type, | |||
int * | List_dof_ent_id, | |||
int * | List_dof_ent_nrdofs, | |||
int * | Nrdofs_loc, | |||
double * | Stiff_mat, | |||
double * | Rhs_vect, | |||
char * | Rewr_dofs | |||
) |
----------------------------------------------------------- pdr_conv_diff_comp_fa_stiff_mat - to construct a stiffness matrix and a load vector for a face ------------------------------------------------------------
int pdr_conv_diff_comp_fa_stiff_mat_app | ( | int | Problem_id, | |
int | Fa_id, | |||
int | Comp_sm, | |||
int | Pdeg_in, | |||
int * | Nr_dof_ent, | |||
int * | List_dof_ent_type, | |||
int * | List_dof_ent_id, | |||
int * | List_dof_ent_nrdofs, | |||
int * | Nrdofs_loc, | |||
double * | Stiff_mat, | |||
double * | Rhs_vect, | |||
char * | Rewr_dofs | |||
) |
!! need some trick for coarse solve with different Pdeg !!!
!! coarse element dofs should be supplied by calling routine !!!
!! need some trick for coarse solve with different Pdeg !!!
!! need some trick for coarse solve with different Pdeg !!!
!! coarse element dofs should be supplied by calling routine !!!
int pdr_conv_diff_compute_CFL | ( | int | Problem_id, | |
double * | CFL_min_p, | |||
double * | CFL_max_p, | |||
double * | CFL_ave_p | |||
) |
----------------------------------------------------------- pdr_conv_diff_compute_CFL - to compute global CFL numbers (for a subdomain) ------------------------------------------------------------
int pdr_conv_diff_el_coeff | ( | int | Problem_id, | |
int | Elem, | |||
int | Mat_num, | |||
double | Hsize, | |||
int | Pdeg, | |||
double * | X_loc, | |||
double * | Base_phi, | |||
double * | Base_dphix, | |||
double * | Base_dphiy, | |||
double * | Base_dphiz, | |||
double * | Xcoor, | |||
double * | Uk_val, | |||
double * | Uk_x, | |||
double * | Uk_y, | |||
double * | Uk_z, | |||
double * | Un_val, | |||
double * | Un_x, | |||
double * | Un_y, | |||
double * | Un_z, | |||
double * | Mval, | |||
double * | Axx, | |||
double * | Axy, | |||
double * | Axz, | |||
double * | Ayx, | |||
double * | Ayy, | |||
double * | Ayz, | |||
double * | Azx, | |||
double * | Azy, | |||
double * | Azz, | |||
double * | Bx, | |||
double * | By, | |||
double * | Bz, | |||
double * | Tx, | |||
double * | Ty, | |||
double * | Tz, | |||
double * | Cval, | |||
double * | Lval, | |||
double * | Qx, | |||
double * | Qy, | |||
double * | Qz, | |||
double * | Sval | |||
) |
-------------------------------------------------------- pdr_conv_diff_el_coeff - to return coefficients for element integrals ----------------------------------------------------------
double* pdr_conv_diff_select_el_coeff | ( | int | Problem_id, | |
double ** | Mval, | |||
double ** | Axx, | |||
double ** | Axy, | |||
double ** | Axz, | |||
double ** | Ayx, | |||
double ** | Ayy, | |||
double ** | Ayz, | |||
double ** | Azx, | |||
double ** | Azy, | |||
double ** | Azz, | |||
double ** | Bx, | |||
double ** | By, | |||
double ** | Bz, | |||
double ** | Tx, | |||
double ** | Ty, | |||
double ** | Tz, | |||
double ** | Cval, | |||
double ** | Lval, | |||
double ** | Qx, | |||
double ** | Qy, | |||
double ** | Qz, | |||
double ** | Sval | |||
) |
!!!!! OLD OBSOLETE VERSION !!!!!!
int pdr_conv_diff_select_el_coeff_vect | ( | int | Problem_id, | |
int * | Coeff_vect_ind | |||
) |
void pdr_fa_coeff | ( | int | Face, | |
int | BC_flag, | |||
int | Elem, | |||
int | Mat_num, | |||
double | Hsize, | |||
double | Time, | |||
int | Pdeg, | |||
double * | Xcoor, | |||
double * | Vec_norm, | |||
double * | U_val, | |||
double * | U_x, | |||
double * | U_y, | |||
double * | U_z, | |||
double * | Anx, | |||
double * | Any, | |||
double * | Anz, | |||
double * | Bn, | |||
double * | Fval, | |||
double * | Gval, | |||
double * | Qn, | |||
double * | Vel_norm | |||
) |
-------------------------------------------------------- pdr_fa_coeff - to return coefficients for face integrals ----------------------------------------------------------
int pdr_get_bc_type | ( | int | Fa_bc | ) |
----------------------------------------------------------- pdr_get_bc_type - to get BC type given BC flag from mesh data structure !!! according to some adopted convention !!! ------------------------------------------------------------
int pdr_ic_val | ( | int | Problem_id, | |
int | Num, | |||
double * | Val | |||
) |
------------------------------------------------------------------------- pdr_ic_val - to get the initial condition values ---------------------------------------------------------------------------
void pdr_pde_coeff | ( | int | Mat_num, | |
double * | Xcoor, | |||
double | Time, | |||
double * | U_val, | |||
double * | U_x, | |||
double * | U_y, | |||
double * | U_z, | |||
double * | Axx, | |||
double * | Axy, | |||
double * | Axz, | |||
double * | Ayx, | |||
double * | Ayy, | |||
double * | Ayz, | |||
double * | Azx, | |||
double * | Azy, | |||
double * | Azz, | |||
double * | Bx, | |||
double * | By, | |||
double * | Bz, | |||
double * | Tx, | |||
double * | Ty, | |||
double * | Tz, | |||
double * | Cval, | |||
double * | Mval, | |||
double * | Lval, | |||
double * | Sval, | |||
double * | Qx, | |||
double * | Qy, | |||
double * | Qz | |||
) |
-------------------------------------------------------- pdr_pde_coeff - to return coefficients of the original pdes ----------------------------------------------------------
!!!!!!!!! OLD OBSOLETE INTERFACE !!!!!!!!!!!!