Elmer FEM solver
Elmer is an open source finite element software for multiphysical problems
 All Classes Files Functions Variables Typedefs Macros Groups Pages
ClusteringMethods.src File Reference

Data Types

module  clusteringmethods
 

Functions/Subroutines

subroutine setparallelpassive ()
 
subroutine passiveextrudedmesh ()
 
subroutine clusterextrudedmesh (CFLayer)
 
subroutine cmgbonds (Amat, Bonds, Passive, Fixed, Components, Component1)
 
subroutine cmgclusterform (Amat, Bonds, Passive, Fixed, Components, Component1, CF)
 

Function/Subroutine Documentation

subroutine chooseclusternodes::clusterextrudedmesh ( integer, dimension(:), optional, pointer  CFLayer)

First detects an extruded structure using mesh information, and then clusters the nodes along the extruded directions only.

References meshutils::detectextrudedstructure(), lists::listgetinteger(), and solver().

Referenced by clusteringmethods::chooseclusternodes().

Here is the call graph for this function:

Here is the caller graph for this function:

subroutine chooseclusternodes::cmgbonds ( type(matrix_t), pointer  Amat,
logical, dimension(:), pointer  Bonds,
logical, dimension(:), pointer  Passive,
logical, dimension(:), pointer  Fixed,
integer  Components,
integer  Component1 
)

Mark the strong connections based on the relative absolute magnitude of the matrix element.

References messages::info(), lists::listgetconstreal(), lists::listgetinteger(), solver(), and generalutils::sortr().

Referenced by clusteringmethods::chooseclusternodes().

Here is the call graph for this function:

Here is the caller graph for this function:

subroutine chooseclusternodes::cmgclusterform ( type(matrix_t), pointer  Amat,
logical, dimension(:)  Bonds,
logical, dimension(:)  Passive,
logical, dimension(:)  Fixed,
integer  Components,
integer  Component1,
integer, dimension(:), pointer  CF 
)

Creates clusters of nodes using the given list of strong connections. Nodes assigned by the Passive vector may not be included in the clusters - others are ignored. The subroutine returns the vector CF which tells to which cluster each node belongs to.

References messages::info(), lists::listgetinteger(), lists::listgetlogical(), solver(), and generalutils::sortr().

Referenced by clusteringmethods::chooseclusternodes().

Here is the call graph for this function:

Here is the caller graph for this function:

subroutine chooseclusternodes::passiveextrudedmesh ( )

Sets a marker for passive dofs everywhere else than at the top layer. This is intended for the hybrid method where a cluster is first made on a level and this is then inherited on the extruded levels.

References meshutils::detectextrudedstructure(), messages::info(), and solver().

Referenced by clusteringmethods::chooseclusternodes().

Here is the call graph for this function:

Here is the caller graph for this function:

subroutine chooseclusternodes::setparallelpassive ( )

This subroutine sets nodes that are now owned by the partition to be passive before making the clustering. The idea is to communicate the clustering on parallel level based on the ownership.

Referenced by clusteringmethods::chooseclusternodes().

Here is the caller graph for this function: