OOFEM 3.0
Loading...
Searching...
No Matches
oofem::FETIBoundaryDofManager Class Reference

#include <fetiboundarydofman.h>

Collaboration diagram for oofem::FETIBoundaryDofManager:

Public Member Functions

 FETIBoundaryDofManager ()
 FETIBoundaryDofManager (int num, int part, int ndof)
 FETIBoundaryDofManager (const FETIBoundaryDofManager &)
int giveNumberOfSharedPartitions ()
 Returns number of partitions sharing receiver.
int giveNumberOfDofs ()
 Returns number of DOFs (with associated equation) of receiver.
int giveGlobalNumber ()
 Returns corresponding global number of receiver.
int giveReferencePratition ()
 Returns reference partition number of receiver.
int giveSharedPartition (int i)
 Returns number of i-th shared partition of receiver.
int giveCodeNumber (int partition_num, int dof_num)
int giveCompleteLocationArray (int rank, IntArray &locationArray)
void addPartition (int partitionNumber)
int setCodeNumbers (int &equationCounter)

Protected Attributes

int globalNumber
 Associated global number of dofManager.
int numberOfPartitions
 Total number of partitions sharing receiver.
int ndofs
 Number of nonprescribed dofs, i.e, those, for which equation is necessary.
int referencePartition
IntArray partitions
 List of partitions sharing dof manager.
IntArray codeNumbers

Detailed Description

Represent the abstraction for DOF manager. This DOF manager is on partition boundary and influences to master equations. It is typically shared by two or more partitions. It keeps its associated global number, number of partitions sharing it, and corresponding number of DOFs (only those with associate equation are taken into account). If n partitions share the DOF manager, then on master level n-1 different code numbers for each DOF must be maintained. The compatibility is then enforced using Lagrange multipliers. It is necessary to select one partition (reference one), to which other partitions DOFs are "linked" through Lagrange multipliers. Such partition contributes to all sharing partitions DOFs. Such partition contribute to all allocated cod numbers. The partition with lowest rank is selected as reference one.

Definition at line 53 of file fetiboundarydofman.h.

Constructor & Destructor Documentation

◆ FETIBoundaryDofManager() [1/3]

oofem::FETIBoundaryDofManager::FETIBoundaryDofManager ( )

Definition at line 42 of file fetiboundarydofman.C.

References codeNumbers, globalNumber, ndofs, numberOfPartitions, and partitions.

Referenced by FETIBoundaryDofManager().

◆ FETIBoundaryDofManager() [2/3]

oofem::FETIBoundaryDofManager::FETIBoundaryDofManager ( int num,
int part,
int ndof )

Definition at line 49 of file fetiboundarydofman.C.

References codeNumbers, globalNumber, ndofs, numberOfPartitions, and partitions.

◆ FETIBoundaryDofManager() [3/3]

oofem::FETIBoundaryDofManager::FETIBoundaryDofManager ( const FETIBoundaryDofManager & src)

Member Function Documentation

◆ addPartition()

void oofem::FETIBoundaryDofManager::addPartition ( int partitionNumber)

Adds partition to list of partitions, sharing this dof manager. The referencePartition is updated if necessary.

Parameters
partitionNumberNew partition number (0..size-1)

Definition at line 70 of file fetiboundarydofman.C.

References oofem::IntArray::at(), numberOfPartitions, partitions, and referencePartition.

◆ giveCodeNumber()

int oofem::FETIBoundaryDofManager::giveCodeNumber ( int partition_num,
int dof_num )

Returns code number corresponding to partition number partition_num and to dof_num-th DOF

Parameters
partition_numPartition number for which code number is required.
dof_numSpecifies the particular DOF.
Returns
Value of corresponding code number, zero if such partition does not share. the receiver or if code number for reference partition is requested.

Definition at line 102 of file fetiboundarydofman.C.

References codeNumbers, ndofs, numberOfPartitions, OOFEM_ERROR, partitions, and referencePartition.

◆ giveCompleteLocationArray()

int oofem::FETIBoundaryDofManager::giveCompleteLocationArray ( int rank,
IntArray & locationArray )

Returns code numbers for all DOFs associated with shared partition.

Parameters
rankPartition number.
locationArrayThe location array of size ndof.
Returns
Nonzero if o.k, zero if no such partition shared or if code numbers for reference partition required.

Definition at line 127 of file fetiboundarydofman.C.

References oofem::IntArray::at(), codeNumbers, ndofs, numberOfPartitions, partitions, referencePartition, and oofem::IntArray::resize().

◆ giveGlobalNumber()

int oofem::FETIBoundaryDofManager::giveGlobalNumber ( )
inline

Returns corresponding global number of receiver.

Definition at line 89 of file fetiboundarydofman.h.

References globalNumber.

◆ giveNumberOfDofs()

int oofem::FETIBoundaryDofManager::giveNumberOfDofs ( )
inline

Returns number of DOFs (with associated equation) of receiver.

Definition at line 87 of file fetiboundarydofman.h.

References ndofs.

◆ giveNumberOfSharedPartitions()

int oofem::FETIBoundaryDofManager::giveNumberOfSharedPartitions ( )
inline

Returns number of partitions sharing receiver.

Definition at line 85 of file fetiboundarydofman.h.

References numberOfPartitions.

◆ giveReferencePratition()

int oofem::FETIBoundaryDofManager::giveReferencePratition ( )
inline

Returns reference partition number of receiver.

Definition at line 91 of file fetiboundarydofman.h.

References referencePartition.

◆ giveSharedPartition()

int oofem::FETIBoundaryDofManager::giveSharedPartition ( int i)
inline

Returns number of i-th shared partition of receiver.

Definition at line 93 of file fetiboundarydofman.h.

References partitions.

◆ setCodeNumbers()

int oofem::FETIBoundaryDofManager::setCodeNumbers ( int & equationCounter)

Associates the equation numbers to particular DOFs.

Parameters
equationCounterCurrent equation counter, updated.
Returns
New value of equationCounter.

Definition at line 88 of file fetiboundarydofman.C.

References codeNumbers, ndofs, and numberOfPartitions.

Member Data Documentation

◆ codeNumbers

IntArray oofem::FETIBoundaryDofManager::codeNumbers
protected

Contains code numbers for each linked partition for each DOF (ndofs*(numberOfPartitions-1) DOFs). The reference partition contributes to all code numbers. The code numbers for n-th linked partition (its number is determined by index of corresponding entry in partitions array) are stored at ((n-1)*ndofs+1, ..., n*ndofs) positions in codeNumbers array.

Definition at line 77 of file fetiboundarydofman.h.

Referenced by FETIBoundaryDofManager(), FETIBoundaryDofManager(), FETIBoundaryDofManager(), giveCodeNumber(), giveCompleteLocationArray(), and setCodeNumbers().

◆ globalNumber

int oofem::FETIBoundaryDofManager::globalNumber
protected

Associated global number of dofManager.

Definition at line 57 of file fetiboundarydofman.h.

Referenced by FETIBoundaryDofManager(), FETIBoundaryDofManager(), FETIBoundaryDofManager(), and giveGlobalNumber().

◆ ndofs

int oofem::FETIBoundaryDofManager::ndofs
protected

Number of nonprescribed dofs, i.e, those, for which equation is necessary.

Definition at line 61 of file fetiboundarydofman.h.

Referenced by FETIBoundaryDofManager(), FETIBoundaryDofManager(), FETIBoundaryDofManager(), giveCodeNumber(), giveCompleteLocationArray(), giveNumberOfDofs(), and setCodeNumbers().

◆ numberOfPartitions

int oofem::FETIBoundaryDofManager::numberOfPartitions
protected

◆ partitions

IntArray oofem::FETIBoundaryDofManager::partitions
protected

◆ referencePartition

int oofem::FETIBoundaryDofManager::referencePartition
protected

Reference partition is partition to which other partitions sharing the dof manager are linked using lagrange multipliers. We use the partition, which has its number the lowest from all sharing partitions.

Definition at line 67 of file fetiboundarydofman.h.

Referenced by addPartition(), FETIBoundaryDofManager(), giveCodeNumber(), giveCompleteLocationArray(), and giveReferencePratition().


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

This page is part of the OOFEM-3.0 documentation. Copyright Copyright (C) 1994-2025 Borek Patzak Bořek Patzák
Project e-mail: oofem@fsv.cvut.cz
Generated at for OOFEM by doxygen 1.15.0 written by Dimitri van Heesch, © 1997-2011