DOUG 0.2

Input formats

This is documentation for DOUG input and file formats.

Control file

DOUG uses configuration file to determine other input files and configuration values. Control parameters specify preconditioners to use and their behavior.

For control parameter names and parameter meanings see controls module, for some parameter values see parameters module. Not all parameters are used, this depends on executable (doug_geom, doug_aggr) and preconditioners used.

The example control file for doug_geom:

solver 2
solve_maxiters 300
method 1
levels 2
fine_method 2
num_iters 2
num_subdomains 1
overlap 2
smoothers 0
input_type 2
symmstruct T
symmnumeric T
# ###################
# aggregate level 1:
radius1 2
strong1 0.67e0
minasize1 2
#maxasize1 19
# aggregate level 2:
radius2 1
strong2 0.67e0
minasize2 2
#maxasize2 96
# ###################
matrix_type 1
number_of_blocks 1
initial_guess 2
start_vec_file ./NOT.DEFINED.start_vec_file
start_vec_type 2
solve_tolerance 1.0e-12
solution_format 2
solution_file solution.xdr
#debug -5
debug 3
verbose 3
plotting 3
assembled_mtx_file Lap16x16.txt
assembled_mtx_format 0
assembled_rhs_format 2
assembled_rhs_file rhs.xdr
 

The example control file for doug_geom:

solver 2
method 1
input_type 1
levels 2
matrix_type 1
info_file doug_info.dat
freedom_lists_file doug_element.dat
elemmat_rhs_file doug_system.dat
coords_file doug_coord.dat
freemap_file doug_freemap.dat
freedom_mask_file ./NOT.DEFINED.freedom_mask_file
number_of_blocks 1
initial_guess 2
start_vec_file ./NOT.DEFINED.start_vec_file
start_vec_type 2
solve_tolerance 1.0e-12
solution_format 2
solution_file solution.xdr
debug 0
verbose 10
plotting 1
maxcie 4
cutbal 3
 

See DOUG_utils::CtrlData_initFromFile() for source reference.

Data files

There are 2 types of input that DOUG currently understands:

  1. Elemental input - several files describing element mesh and element stiffness matrices.
  2. Assembled input - files with allready assembled system matrix.

Part of algorithm for calculating preconditioner depends on input type, ie calculation of coarse grid depends on the input type.

Elemental input

Files for this input type must contain element mesh, element stiffness matrices and right hand side vectors, generated by some finite element method (FEM) package.

Top function for reading input is main_drivers::parallelAssembleFromElemInput(), which reads and distributes data across processors. See referenced functions' documentation for detailed format info.

  1. Element mesh general properties(size,maximum freedoms in node, etc) are read from globals::mctls%info_file by Mesh_class::Mesh_initFromFile()
    1. Mesh_readFileFreelists() reads each element freedoms from globals::mctls%freedom_lists_file
  2. Read more mesh info by Mesh_class::Mesh_readFromFile()
    1. Again??? If not initialized Mesh_readFileFreelists() reads each element freedoms from globals::mctls%freedom_lists_file
    2. Mesh_readFileCoords() reads nodes' coordinates .
    3. Mesh_readFileFreemap() reads freedom map which says which node every freedom belongs to.
    4. Mesh_readFileFreemask() reads ???
  3. ElemMtxs_readAndDistribute() reads globals::mctls%elemmat_rhs_file, assembles element matrices and RHS's and distributes assembled system matrix (the order of these steps should be looked in implementation).

Assembled input

Assembled input file formats currently supported: