seqtop Class Reference

#include <seqtop.h>

List of all members.

Public Member Functions

void assemble_dofind (gtopology *top, FILE *out)
void assemble_multip (FILE *out)
void assemble_nbnd_nind (FILE *out)
void assemble_nodmultip (FILE *out)
void coarse_local_map (gtopology *top, FILE *out)
void compute_multiplicity (gtopology *top, FILE *out)
void coupled_dofs (gtopology *top, FILE *out)
void elem_lists ()
void node_coarse_global_glued_map (FILE *out)
void node_coarse_local_map (FILE *out)
void node_coarse_numbers (FILE *out)
void node_global_glued_numbers (FILE *out)
void node_local_numbers (FILE *out)
void read_eldom (long ne, XFILE *in)
void read_ltg (XFILE *in)
void read_nnsd (XFILE *in)
long schur_ordering (gtopology *top, FILE *out)
long schur_ordering_old (gtopology *top, FILE *out)
 seqtop (long nd, meshdescription meshd)
void update_multip (gtopology *top, FILE *out)
 ~seqtop ()

Public Attributes

long * amultip
long * bmultip
long ** coupdof
long * coupdofmas
long ** dofind
long ** domel
long * eldom
long ** ggnbn
long ** ggnbncn
long ** ggnin
long * icmultip
long ** icnbnmas
long ** lnbn
long ** lnbncn
long ** lnin
long ** ltg
meshdescription md
long * nbnd
long ncdof
long * ned
long * nind
long nn
long * nnsd
long ** nodmultip
 array is assembled in the function update_multip (gtopology *top,FILE *out) or assemble_nodmultip (FILE *out)
long ns
long ** sid
long tnbn
long tnep
 total number of all elements in the problem
long tnnp

Detailed Description

class imitates the class partop which deals with topology in parallel computations it is sequential version of the class partop and it is developed for simpler manipulation and possible application of debugger

notation:

node multiplicity - number of subdomains which share the node

internal node - node with multiplicity 1, (node inside a subdomain, node not lying on inter-subdomain boundary)

interface node - node with multiplicity at least 2, (node lying on inter-subdomain boundary)

coarse node - artificial node defined on master which collects appropriate interface nodes

global ordering - node ordering before mesh partitioning global node numbers - node numbers used in undecomposed mesh (node numbers used before decomposition/partitioning)

local ordering - ordering of subdomains (without respect to remaining subdomains) local node numbers - node numbers used in decomposed mesh (node numbers used after decomposition/partitioning)

coarse ordering - ordering of interface nodes only coarse node number - node numbers of interface nodes only, ordering of all interface nodes in coarse problem

mesh description: md = bound_nodes = 1 - all nodes have their global node number md = all_nodes = 2 - only interface nodes have coarse number, internal nodes are denoted by -1 md = neg_bound_nodes = 3 - all nodes have their global node number, interface nodes have their global number multiplied by -1

JK, 11.9.2007

Definition at line 50 of file seqtop.h.


Constructor & Destructor Documentation

seqtop ( long  nd,
meshdescription  meshd 
)

constructor

Parameters:
nd - number of subdomains
meshd - mesh description

JK, 11.9.2007

Definition at line 17 of file seqtop.cpp.

References amultip, bmultip, coupdof, coupdofmas, dofind, domel, eldom, ggnbn, ggnbncn, ggnin, icmultip, icnbnmas, lnbn, lnbncn, lnin, ltg, md, nbnd, ncdof, ned, nind, nn, nnsd, nodmultip, ns, sid, tnbn, tnep, and tnnp.

~seqtop (  ) 

destructor

JK, 11.9.2007

Definition at line 118 of file seqtop.cpp.

References amultip, bmultip, coupdof, coupdofmas, dofind, domel, eldom, ggnbn, ggnbncn, ggnin, icmultip, icnbnmas, lnbn, lnbncn, lnin, ltg, nbnd, ned, nind, nn, nnsd, nodmultip, ns, sid, and tnbn.


Member Function Documentation

void assemble_dofind ( gtopology top,
FILE *  out 
)

function assembless the array dofind if it has not been assembled yet

Parameters:
top - pointer to the general topology
out - output file for auxiliary print

JK, 15.7.2009

Definition at line 1124 of file seqtop.cpp.

References dofind, gtopology::give_ndofn(), nn, nnsd, nodmultip, and ns.

Referenced by compute_multiplicity().

void assemble_multip ( FILE *  out  ) 

function assembles the array bmultip or amultip function computes the variables tnnp or tnbn

Parameters:
out - output file for auxiliary print

14.7.2009, JK

Definition at line 457 of file seqtop.cpp.

References all_nodes, amultip, bmultip, bound_nodes, ltg, md, metis, neg_bound_nodes, nnsd, ns, print_err(), tnbn, and tnnp.

Referenced by compute_multiplicity().

void assemble_nbnd_nind ( FILE *  out  ) 

function assembles the arrays nbnd and nind

Parameters:
out - output file for auxiliary print

JK, 14.7.2009

Definition at line 896 of file seqtop.cpp.

References all_nodes, amultip, bound_nodes, ltg, md, metis, nbnd, neg_bound_nodes, nind, nnsd, ns, print_err(), tnbn, and tnnp.

Referenced by compute_multiplicity().

void assemble_nodmultip ( FILE *  out  ) 

function assembless the array nodmultip

Parameters:
out - output file for auxiliary print

JK, 11.9.2007

Definition at line 1009 of file seqtop.cpp.

References all_nodes, amultip, bmultip, bound_nodes, ltg, md, metis, neg_bound_nodes, nnsd, nodmultip, ns, and print_err().

Referenced by compute_multiplicity().

void coarse_local_map ( gtopology top,
FILE *  out 
)

function generates the Schur complement ordering

ordering of subdomains is performed ordering of the coarse problem is in seqselnodes::schur_ordering

Parameters:
top - pointer to general topology
out - output file

JK, 13.7.2009 function rewrites array ltg

JK, 14.9.2007 function renumbers code numbers

JK, 9.10.2007 function determines the number of DOFs on nodes

Parameters:
top - general topology

JK, 13.5.2009 function determines the number of DOFs on nodes

Parameters:
general topology

JK, 13.5.2009 function determines the number of DOFs on interface/boundary nodes

Parameters:
top - general topology

JK, 13.5.2009 function determines the number of DOFs on nodes

JK, 13.5.2009 function selects boundary nodes

function establishes:

lnbn - local numbers of boundary nodes

Parameters:
out - output stream

JK, 14.9.2007 function computes node multiplicity

function establishes:

tnbn - total number of boundary nodes

nbnd - array containing numbers of interface/boundary nodes on subdomains

nind - array containing numbers of internal nodes on subdomains

tnnp - total number of nodes in problem (if possible, this number cannot be obtained in the case of md=bound_nodes)

amultip - array of all node multiplicity, it is assembled if md=all_nodes

bmultip - array of interface/boundary node multiplicity, it is assembled if md=bound_nodes

nodmultip - array of node multiplicity (on all subdomains)

Parameters:
out - output file for auxiliary print

JK, 11.9.2007 function calls several auxiliary functions

Parameters:
top - pointer to the general topology
out - output file

JK, 8.8.2010

Definition at line 2669 of file seqtop.cpp.

References compute_multiplicity(), node_coarse_global_glued_map(), node_coarse_local_map(), node_coarse_numbers(), node_global_glued_numbers(), and node_local_numbers().

Referenced by slesolv::prepare_data().

void compute_multiplicity ( gtopology top,
FILE *  out 
)
void coupled_dofs ( gtopology top,
FILE *  out 
)

function searches for coupled DOFs which are shared by interfaces

Parameters:
top - pointer to the general topology
out - output file

13.7.2009, JK

Definition at line 594 of file seqtop.cpp.

References coupdof, coupdofmas, gtopology::give_dof(), gtopology::give_ndofn(), ncdof, gtopology::nn, nn, nnsd, and ns.

Referenced by compute_multiplicity().

void elem_lists (  ) 

function assembles lists of elements belonging to subdomains

list of elements of the i-th subdomain is needed e.g. in subcycling

JK, 27. 5. 2014

Definition at line 2687 of file seqtop.cpp.

References domel, eldom, ned, ns, and tnep.

Referenced by linear_nonstat_solv_dform_subcycl().

void node_coarse_global_glued_map ( FILE *  out  ) 

function assembles coarse - global glued numbers map

the following arrays are assembled:

ggnbncn - global glued numbers of boundary/interface nodes of the coarse node sid - subdomain id of interface/boundary nodes of the coarse node

Parameters:
out - output file for auxiliary print

JK, 5.7.2009

Definition at line 1664 of file seqtop.cpp.

References ggnbn, ggnbncn, icmultip, icnbnmas, nbnd, ns, sid, and tnbn.

Referenced by coarse_local_map().

void node_coarse_local_map ( FILE *  out  ) 

function assembles coarse - local numbers map

the following arrays are assembled:

lnbncn - local numbers of boundary/interface nodes of the coarse node sid - subdomain id of interface/boundary nodes of the coarse node

Parameters:
out - output file for auxiliary print

JK, 5.7.2009

Definition at line 1582 of file seqtop.cpp.

References icmultip, icnbnmas, lnbn, lnbncn, nbnd, ns, sid, and tnbn.

Referenced by coarse_local_map().

void node_coarse_numbers ( FILE *  out  ) 

function assembles coarse numbers of nodes

the following arrays are assembled:

icnbnmas - coarse numbers of interface/boundary nodes icmultip - number of multiplicity of boundary/interface nodes

Parameters:
out - output file for auxiliary print

JK, 5.7.2009

Definition at line 1448 of file seqtop.cpp.

References all_nodes, amultip, bound_nodes, icmultip, icnbnmas, lnbn, ltg, md, metis, nbnd, neg_bound_nodes, ns, print_err(), tnbn, and tnnp.

Referenced by coarse_local_map().

void node_global_glued_numbers ( FILE *  out  ) 

function assembles global glued numbers of nodes

the following arrays are assembled:

ggnbn - global glued numbers of interface/boundary nodes

ggnin - global glued numbers of internal nodes

Parameters:
out - output file for auxiliary print

JK, 24.5.2009

Definition at line 1324 of file seqtop.cpp.

References all_nodes, amultip, bound_nodes, ggnbn, ggnin, ltg, md, metis, nbnd, neg_bound_nodes, nind, nnsd, ns, and print_err().

Referenced by coarse_local_map().

void node_local_numbers ( FILE *  out  ) 

function assembles local numbers of nodes

the following arrays are assembled:

lnbn - local numbers of interface/boundary nodes

lnin - local numbers of internal nodes

Parameters:
out - output file for auxiliary print

JK, 24.5.2009

Definition at line 1202 of file seqtop.cpp.

References all_nodes, amultip, bound_nodes, lnbn, lnin, ltg, md, metis, nbnd, neg_bound_nodes, nind, nnsd, ns, and print_err().

Referenced by coarse_local_map().

void read_eldom ( long  ne,
XFILE in 
)

function reads array eltg (local to global map for elements)

Parameters:
in - input file

JK, 25.3.2011 function reads correspondence between elements and subdomains/aggregates

Parameters:
ne - the number of all elements in the problem
in - input file stream

JK, 2.4.2011

Definition at line 432 of file seqtop.cpp.

References eldom, tnep, and xfscanf().

Referenced by gtopology::read_seq_top().

void read_ltg ( XFILE in  ) 

function reads array containing numbers of elements on subdomains

Parameters:
in - input file

JK, 25.3.2011 function reads array ltg (local to global map)

Parameters:
in - input file

11.9.2007, JK

Definition at line 332 of file seqtop.cpp.

References ltg, md, metis, nn, nnsd, ns, and xfscanf().

Referenced by gtopology::read_seq_top().

void read_nnsd ( XFILE in  ) 

function reads array containing numbers of nodes on subdomains

Parameters:
in - input file

JK, 11.9.2007

Definition at line 287 of file seqtop.cpp.

References nnsd, ns, and xfscanf().

Referenced by gtopology::read_seq_top().

long schur_ordering ( gtopology top,
FILE *  out 
)

function generates the Schur complement ordering

ordering of subdomains is performed ordering of the coarse problem is in seqselnodes::schur_ordering

Parameters:
top - pointer to general topology
out - output file

JK, 13.7.2009

Definition at line 1744 of file seqtop.cpp.

References gnode::cn, gtopology::cnstate, dofind, ggnbn, ggnin, gtopology::give_dof(), gtopology::give_ndofn(), gtopology::gnodes, nbnd, ncdof, nind, nn, and ns.

Referenced by slesolv::prepare_data().

long schur_ordering_old ( gtopology top,
FILE *  out 
)
void update_multip ( gtopology top,
FILE *  out 
)

function updates node multiplicity

function establishes:

tnbn - total number of boundary nodes

tnnp - total number of nodes in problem (if possible, this number cannot be obtained in the case of md=bound_nodes)

amultip - array of all node multiplicity, it is assembled if md=all_nodes

bmultip - array of interface/boundary node multiplicity, it is assembled if md=bound_nodes

nodmultip - array of node multiplicity (on all subdomains)

Parameters:
top - pointer to the general topology
out - output file for auxiliary print

JK, 11.9.2007

Definition at line 710 of file seqtop.cpp.

References all_nodes, amultip, coupdofmas, dofind, gtopology::give_dof(), gtopology::give_ndofn(), ltg, md, metis, nn, nnsd, ns, print_err(), tnbn, and tnnp.

Referenced by compute_multiplicity().


Member Data Documentation

long* amultip

array containing number of subdomains which each node belongs to it contains tnnp components, amultip[i]=j - the i-th node belongs to j subdomains array is assembled in the function assemble_multip (FILE *out)

Definition at line 143 of file seqtop.h.

Referenced by assemble_multip(), assemble_nbnd_nind(), assemble_nodmultip(), node_coarse_numbers(), node_global_glued_numbers(), node_local_numbers(), seqtop(), update_multip(), and ~seqtop().

long* bmultip

array containing number of subdomains which each boundary/interface node belongs to it contains tnbn components, bmultip[i]=j - the i-th interface/boundary node belongs to j subdomains array is assembled in the function assemble_multip (FILE *out)

Definition at line 149 of file seqtop.h.

Referenced by assemble_multip(), assemble_nodmultip(), seqtop(), and ~seqtop().

long** coupdof

array containing indicators of coupled DOFs it has ns, ncdof components coupdof[i][j]=k - the j-th coupled DOFs on the i-th subdomain is shared by k nodes array is allocated in the function coupled_dofs

Definition at line 247 of file seqtop.h.

Referenced by coupled_dofs(), seqtop(), and ~seqtop().

long* coupdofmas

array containing suspicious indicators of coupled DOFs it has ncdof components coupdofmas[i]=0 - the i-th coupled DOF is not a boundary/interface DOF coupdofmas[i]=1 - the i-th coupled DOF is a boundary/interface DOF array is allocated in the function coupled_dofs

Definition at line 254 of file seqtop.h.

Referenced by coupled_dofs(), seqtop(), update_multip(), and ~seqtop().

long** dofind

array containing DOF indicators if there are coupled DOFs, it is not enough to deal with nodes DOFs have to be split to internal and boundary/interface it has nn, ndofn[i] components (nn is the total number of nodes, gt->nn) dofind[i][j]=0 - the j-th DOF in the i-th node is internal dofind[i][j]=1 - the j-th DOF in the i-th node is boundary/interface array is allocated in the function update_multiplicity

Definition at line 264 of file seqtop.h.

Referenced by assemble_dofind(), seqselnodes::prepare_schur(), schur_ordering(), seqtop(), update_multip(), and ~seqtop().

long** domel

domain-element correspondence it has ns rows and ned[i] columns domel[i][j]=k - the j-th element on the i-th subdomain has number k

Definition at line 179 of file seqtop.h.

Referenced by dt_subdom(), elem_lists(), lnso_leso_setting(), seqtop(), and ~seqtop().

long* eldom

element-domain correspondence eldom[i]=j - the i-th element belongs to the j-th subdomain/aggregate

Definition at line 174 of file seqtop.h.

Referenced by elem_lists(), read_eldom(), seqtop(), and ~seqtop().

long** ggnbn

array containing global glued numbers of boundary/interface nodes it contains ns, nbnd[i] components ggnbn[i][j]=k - the j-th boundary/interface node on the i-th subdomain has global glued number k array is allocated in the function node_global_glued_numbers

Definition at line 197 of file seqtop.h.

Referenced by seqschur::assemble_subdom_unknowns(), node_coarse_global_glued_map(), node_global_glued_numbers(), slesolv::prepare_data(), schur_ordering(), seqtop(), and ~seqtop().

long** ggnbncn

global glued numbers of boundary/interface nodes appropriate to coarse node it contains global glued numbers of boundary/interafce nodes of each coarse node it contains tnbn rows and icmultip[i] columns ggnbncn[i][j]=k - the j-th node shared by the i-th coarse node has global glued number k aray is allocated in the function node_coarse_global_glued_map

Definition at line 230 of file seqtop.h.

Referenced by node_coarse_global_glued_map(), slesolv::prepare_data(), seqtop(), and ~seqtop().

long** ggnin

array containing global glued numbers of internal nodes it contains ns, nind[i] components ggnin[i][j]=k - the j-th internal node on the i-th subdomain has global glued number k array is allocated in the function node_global_glued_numbers

Definition at line 203 of file seqtop.h.

Referenced by seqschur::assemble_subdom_unknowns(), node_global_glued_numbers(), schur_ordering(), seqtop(), and ~seqtop().

long* icmultip

array containing node multiplicity of boundary/interface nodes it contains tnbn components icmultip[i]=j - the i-th boundary/interface node belongs to j subdomains array is allocated in the function node_coarse_numbers

Definition at line 215 of file seqtop.h.

Referenced by node_coarse_global_glued_map(), node_coarse_local_map(), node_coarse_numbers(), slesolv::prepare_data(), seqtop(), and ~seqtop().

long** icnbnmas

array containing coarse numbers of interface/boundary nodes it contains ns, nbnd[i] components icnbnmas[i][j]=k - the j-th boundary node on the i-th subdomain has coarse number k array is allocated in the function node_coarse_numbers

Definition at line 209 of file seqtop.h.

Referenced by node_coarse_global_glued_map(), node_coarse_local_map(), node_coarse_numbers(), slesolv::prepare_data(), seqtop(), and ~seqtop().

long** lnbn

array containing local numbers of interface/boundary nodes it contains ns, nbnd[i] components lnbn[i][j]=k - the j-th boundary node on the i-th subdomain has local number k array is allocated in the function node_local_numbers

Definition at line 185 of file seqtop.h.

Referenced by node_coarse_local_map(), node_coarse_numbers(), node_local_numbers(), seqtop(), and ~seqtop().

long** lnbncn

local numbers of boundary/interface nodes appropriate to coarse node it contains local numbers of boundary/interafce nodes of each coarse node it contains tnbn rows and icmultip[i] columns lnbncn[i][j]=k - the j-th node shared by the i-th coarse node has local number k aray is allocated in the function node_coarse_local_map

Definition at line 223 of file seqtop.h.

Referenced by node_coarse_local_map(), slesolv::prepare_data(), seqtop(), and ~seqtop().

long** lnin

array containing local numbers of internal nodes it contains ns, nind[i] components lnin[i][j]=k - the j-th internal node on the i-th subdomain has local number k array is allocated in the function node_local_numbers

Definition at line 191 of file seqtop.h.

Referenced by node_local_numbers(), seqtop(), and ~seqtop().

long** ltg

local to global correspondence ltg[i][j]=k - the j-th node on the i-th subdomain has global/coarse number k if mesh description is bound_nodes: k>-1 - coarse number of the node k=-1 - the node is internal node if mesh description is all_nodes: k is the global number of the node

Definition at line 164 of file seqtop.h.

Referenced by assemble_multip(), assemble_nbnd_nind(), assemble_nodmultip(), gtopology::codenum_generation(), gtopology::create_ltg(), aggregator::metis_aggr(), node_coarse_numbers(), node_global_glued_numbers(), node_local_numbers(), read_ltg(), gtopology::schur_ordering(), seqtop(), update_multip(), and ~seqtop().

long* nbnd

array containing list of numbers of boundary/interface nodes on subdomains it contains ns components nbnd[i]=j - the i-th domain contains j boundary/interface nodes array is assembled in the function compute_multiplicity (FILE *out)

Definition at line 131 of file seqtop.h.

Referenced by assemble_nbnd_nind(), seqschur::assemble_subdom_unknowns(), node_coarse_global_glued_map(), node_coarse_local_map(), node_coarse_numbers(), node_global_glued_numbers(), node_local_numbers(), schur_ordering(), seqtop(), and ~seqtop().

long ncdof

the number of coupled DOFs it is determined in the function coupled_dofs

Definition at line 241 of file seqtop.h.

Referenced by compute_multiplicity(), coupled_dofs(), schur_ordering(), and seqtop().

long* ned

array containing the number of elements on subdomains it has ns components ned[i]=j - there are j elements on the i-th subdomain array is allocated and assembled in function elem_lists

Definition at line 170 of file seqtop.h.

Referenced by dt_subdom(), elem_lists(), lnso_leso_setting(), seqtop(), and ~seqtop().

long* nind

array containing list of numbers of internal nodes on subdomains it contains ns components nind[i]=j - the i-th domain contains j internal nodes array is assembled in the function compute_multiplicity (FILE *out)

Definition at line 137 of file seqtop.h.

Referenced by assemble_nbnd_nind(), seqschur::assemble_subdom_unknowns(), node_global_glued_numbers(), node_local_numbers(), schur_ordering(), seqtop(), and ~seqtop().

long nn

number of nodes in the class gtopology this number is not equal to tnnp the number is determined in the function coupled_dofs

Definition at line 113 of file seqtop.h.

Referenced by assemble_dofind(), coupled_dofs(), read_ltg(), schur_ordering(), seqtop(), update_multip(), and ~seqtop().

long* nnsd
long** nodmultip

array is assembled in the function update_multip (gtopology *top,FILE *out) or assemble_nodmultip (FILE *out)

array containing number of subdomains which share the nodes it contains ns, nnsd[i] components nodmultip[i][j]=k - the j-th node of the i-th subdomain belongs to k subdomains

Definition at line 155 of file seqtop.h.

Referenced by assemble_dofind(), assemble_nodmultip(), slesolv::prepare_data(), seqtop(), and ~seqtop().

long ns
long** sid

subdomain id of interface/boundary nodes appropriate to coarse node it contains tnbn rows and icmultip[i] columns sid[i][j]=k - the j-th node shared by the i-th coarse node belongs to the k-th subdomain array is allocated in the function node_coarse_local_map or node_coarse_global_glued_map

Definition at line 236 of file seqtop.h.

Referenced by node_coarse_global_glued_map(), node_coarse_local_map(), slesolv::prepare_data(), seqtop(), and ~seqtop().

long tnbn

total number of interface (boundary) nodes this number is determined in the function compute_multiplicity

Definition at line 109 of file seqtop.h.

Referenced by assemble_multip(), assemble_nbnd_nind(), node_coarse_global_glued_map(), node_coarse_local_map(), node_coarse_numbers(), slesolv::prepare_data(), seqtop(), update_multip(), and ~seqtop().

long tnep

total number of all elements in the problem

Definition at line 115 of file seqtop.h.

Referenced by elem_lists(), read_eldom(), and seqtop().

long tnnp

total number of nodes in the whole problem this number cannot be obtained in the case of mesh description = bound_nodes this number is determined in the function compute_multiplicity

Definition at line 106 of file seqtop.h.

Referenced by assemble_multip(), assemble_nbnd_nind(), node_coarse_numbers(), seqtop(), and update_multip().


The documentation for this class was generated from the following files:

Generated by  doxygen 1.6.2