FemProcess
The GeMA Fem Process Plugin
Macros
gmpFemAssemblerAdder.cpp File Reference

Implementation of the GmpFemAssemblerMatrixAdder and GmpFemAssemblerVectorAdder interfaces + concrete implementation classes. More...

#include "gmpFemAssemblerAdder.h"
#include "gmpFemAssemblerCombiner.h"
#include "gmpFemMatrixSet.h"
#include "gmpFemVectorSet.h"
#include "gmpFemLocker.h"
#include <gmElementDof.h>
#include <gmTrace.h>
#include <assert.h>
Include dependency graph for gmpFemAssemblerAdder.cpp:

Macros

#define DECLARE_MAT_LOCK_VARS   bool LV_locked = false, LV_matSetNeedsLock = _matSet->needsLocking();
 Declares the local vars needed by LOCK_MATRIX_DOF and LOCK_VECTOR_DOF.
 
#define LOCK_MATRIX_DOF(DOF_INDEX)
 Aquires the lock protecting the given dof index if the solver matrix type requires locking. Updates LV_locked to true if the lock was indeed acquired. More...
 
#define LOCK_VECTOR_DOF(DOF_INDEX)
 Aquires the lock protecting the given dof index if LV_locked is false. Updates LV_locked to true if the lock was indeed acquired. More...
 
#define UNLOCK_DOF(DOF_INDEX)
 Releases the lock protecting the given dof index if LV_locked is true. Resets LV_locked to false. More...
 

Detailed Description

Implementation of the GmpFemAssemblerMatrixAdder and GmpFemAssemblerVectorAdder interfaces + concrete implementation classes.

Author
Carlos Augusto Teixeira Mendes
Date
october, 2018

Macro Definition Documentation

◆ LOCK_MATRIX_DOF

#define LOCK_MATRIX_DOF (   DOF_INDEX)
Value:
do { \
assert(!LV_locked); \
if(locker && LV_matSetNeedsLock) \
{ \
locker->lockDof(DOF_INDEX); \
LV_locked = true; \
} \
} while(0)

Aquires the lock protecting the given dof index if the solver matrix type requires locking. Updates LV_locked to true if the lock was indeed acquired.

◆ LOCK_VECTOR_DOF

#define LOCK_VECTOR_DOF (   DOF_INDEX)
Value:
do { \
if(locker && !LV_locked) \
{ \
locker->lockDof(DOF_INDEX); \
LV_locked = true; \
} \
} while(0)

Aquires the lock protecting the given dof index if LV_locked is false. Updates LV_locked to true if the lock was indeed acquired.

◆ UNLOCK_DOF

#define UNLOCK_DOF (   DOF_INDEX)
Value:
do { \
if(LV_locked) \
{ \
assert(locker); \
locker->unlockDof(DOF_INDEX); \
LV_locked = false; \
} \
} while(0)

Releases the lock protecting the given dof index if LV_locked is true. Resets LV_locked to false.