 |
FrontISTR
5.7.0
Large-scale structural analysis program with finit element method
|
Go to the documentation of this file.
17 static int is_init = 0;
19 static int n_node_g = 0;
21 static int n_elem_g = 0;
23 static int *n_node =
NULL;
25 static int *nn_internal =
NULL;
27 static int *n_elem =
NULL;
29 static int *ne_internal =
NULL;
31 static int *n_neighbor_pe =
NULL;
37 static long long int n_edge = 0;
39 static int n_edgecut = 0;
49 static void clean_log(
void) {
100 if (nn_internal ==
NULL) {
106 if (ne_internal ==
NULL) {
112 if (n_neighbor_pe ==
NULL) {
131 switch (_part_type) {
133 strcpy(part_type,
"NODE-BASED");
137 strcpy(part_type,
"ELEMENT-BASED");
157 switch (_part_method) {
159 strcpy(part_method,
"RCB");
163 strcpy(part_method,
"kMETIS");
167 strcpy(part_method,
"pMETIS");
171 strcpy(part_method,
"USER");
204 switch (_part_contact) {
206 strcpy(part_contact,
"AGGREGATE");
210 strcpy(part_contact,
"DISTRIBUTE");
214 strcpy(part_contact,
"SIMPLE");
218 strcpy(part_contact,
"DEFAULT");
222 strcpy(part_contact,
"not set");
235 if (_n_edgecut < 0) {
246 n_edgecut = _n_edgecut;
262 n_node_g = _n_node_g;
278 n_elem_g = _n_elem_g;
303 n_node[domain] = _n_node;
328 n_elem[domain] = _n_elem;
348 if (_nn_internal < 0) {
352 if (_nn_internal > n_node[domain]) {
357 nn_internal[domain] = _nn_internal;
377 if (_ne_internal < 0) {
382 if (_ne_internal > n_elem[domain]) {
387 ne_internal[domain] = _ne_internal;
407 if (_n_neighbor_pe < 0) {
412 n_neighbor_pe[domain] = _n_neighbor_pe;
433 fprintf(fp,
"# log file for partitioner ( %s )\n",
HECMW_get_date());
437 fprintf(fp,
"# conditions\n");
438 fprintf(fp,
"number of sub-domains : %d\n",
n_domain);
439 fprintf(fp,
"partitioning type : %s\n", part_type);
440 fprintf(fp,
"partitioning method : %s\n", part_method);
441 fprintf(fp,
"depth of overlapping : %d\n",
depth);
442 fprintf(fp,
"contact partitioning : %s\n", part_contact);
444 fprintf(fp,
"number of edgecut : ----- / -----\n");
446 fprintf(fp,
"number of edgecut : %d / %lld\n", n_edgecut, n_edge);
452 fprintf(fp,
"# information of entire mesh\n");
453 fprintf(fp,
"number of nodes : %d\n", n_node_g);
454 fprintf(fp,
"number of elements : %d\n", n_elem_g);
459 fprintf(fp,
"# information of distributed mesh\n");
460 fprintf(fp,
"domain, nodes, int. nodes, elems, int. elems, neighbor PE\n");
463 fprintf(fp,
"%6d %12d %12d %12d %12d %12d\n", i, n_node[i], nn_internal[i],
464 n_elem[i], ne_internal[i], n_neighbor_pe[i]);
#define HECMW_PART_E_NNODE_MIN
#define HECMW_PART_E_LOG_INIT_NOT_YET
#define HECMW_PART_LOG_NAME
#define HECMW_PART_E_FILE_CLOSE
char * HECMW_get_date(void)
int HECMW_log(int loglv, const char *fmt,...)
int HECMW_part_set_log_n_edgecut(long long int _n_edge, int _n_edgecut)
#define HECMW_PART_TYPE_ELEMENT_BASED
#define HECMW_PART_E_NEDGECUT_LOWER
#define HECMW_PART_CONTACT_AGGREGATE
#define HECMW_PART_E_NNINT_MIN
#define HECMW_PART_CONTACT_DEFAULT
#define HECMW_PART_METHOD_PMETIS
#define HECMW_PART_W_LOG_INIT_ALREADY
#define HECMW_PART_E_INVALID_PMETHOD
int HECMW_part_set_log_part_method(int _part_method)
#define HECMW_PART_E_NNINT_MAX
#define HECMW_PART_E_INVALID_NDOMAIN
#define HECMW_calloc(nmemb, size)
int HECMW_part_print_log(void)
#define HECMW_PART_METHOD_RCB
void HECMW_part_finalize_log(void)
int HECMW_part_init_log(int _n_domain)
int HECMW_part_set_log_n_elem(int domain, int _n_elem)
int HECMW_part_set_log_part_depth(int _depth)
#define HECMW_PART_E_NELEM_MIN
int HECMW_part_set_log_part_type(int _part_type)
char * HECMW_strmsg(int msgno)
#define HECMW_PART_E_NEDGECUTA_LOWER
#define HECMW_PART_E_DOMAIN_MAX
int HECMW_part_set_log_n_node_g(int _n_node_g)
int HECMW_part_set_log_nn_internal(int domain, int _nn_internal)
#define HECMW_PART_E_INVALID_PTYPE
#define HECMW_PART_E_NEINT_MAX
int HECMW_part_set_log_n_neighbor_pe(int domain, int _n_neighbor_pe)
#define HECMW_PART_E_NNEIGHBORPE_LOWER
#define HECMW_PART_CONTACT_SIMPLE
#define HECMW_PART_TYPE_NODE_BASED
int HECMW_part_set_log_n_node(int domain, int _n_node)
#define HECMW_PART_METHOD_USER
int HECMW_set_error(int errorno, const char *fmt,...)
int HECMW_part_set_log_n_elem_g(int _n_elem_g)
#define HECMW_PART_E_INVALID_PDEPTH
int HECMW_part_set_log_ne_internal(int domain, int _ne_internal)
int HECMW_part_set_log_part_contact(int _part_contact)
#define HECMW_PART_E_DOMAIN_MIN
#define HECMW_PART_E_NEINT_MIN
#define HECMW_PART_METHOD_KMETIS
#define HECMW_PART_CONTACT_DISTRIBUTE