Finley.h
Go to the documentation of this file.
/*****************************************************************************
*
* Copyright (c) 2003-2020 by The University of Queensland
* http://www.uq.edu.au
*
* Primary Business: Queensland, Australia
* Licensed under the Apache License, version 2.0
* http://www.apache.org/licenses/LICENSE-2.0
*
* Development until 2012 by Earth Systems Science Computational Center (ESSCC)
* Development 2012-2013 by School of Earth Sciences
* Development from 2014-2017 by Centre for Geoscience Computing (GeoComp)
* Development from 2019 by School of Earth and Environmental Sciences
**
*****************************************************************************/
#ifndef __FINLEY_H__
#define __FINLEY_H__
/****************************************************************************
Finley finite element solver
*****************************************************************************/
// first include to avoid _POSIX_C_SOURCE redefinition warnings
#include <escript/DataTypes.h>
#include <finley/FinleyException.h>
#include <escript/EsysMPI.h>
#include <vector>
namespace finley {
using escript::DataTypes::dim_t;
using escript::DataTypes::index_t;
using escript::DataTypes::IndexVector;
// real_t clashes with metis real_t !
//using escript::DataTypes::real_t;
//#define Finley_TRACE
#define FINLEY_UNKNOWN -1
#define FINLEY_DEGREES_OF_FREEDOM 1
#define FINLEY_NODES 3
#define FINLEY_ELEMENTS 4
#define FINLEY_FACE_ELEMENTS 5
#define FINLEY_POINTS 6
#define FINLEY_CONTACT_ELEMENTS_1 7
#define FINLEY_CONTACT_ELEMENTS_2 8
#define FINLEY_REDUCED_DEGREES_OF_FREEDOM 2
#define FINLEY_REDUCED_NODES 14
#define FINLEY_REDUCED_ELEMENTS 10
#define FINLEY_REDUCED_FACE_ELEMENTS 11
#define FINLEY_REDUCED_CONTACT_ELEMENTS_1 12
#define FINLEY_REDUCED_CONTACT_ELEMENTS_2 13
enum {
DegreesOfFreedom = FINLEY_DEGREES_OF_FREEDOM,
ReducedDegreesOfFreedom = FINLEY_REDUCED_DEGREES_OF_FREEDOM,
Nodes = FINLEY_NODES,
ReducedNodes = FINLEY_REDUCED_NODES,
Elements = FINLEY_ELEMENTS,
ReducedElements = FINLEY_REDUCED_ELEMENTS,
FaceElements = FINLEY_FACE_ELEMENTS,
ReducedFaceElements = FINLEY_REDUCED_FACE_ELEMENTS,
Points = FINLEY_POINTS,
ContactElementsZero = FINLEY_CONTACT_ELEMENTS_1,
ReducedContactElementsZero = FINLEY_REDUCED_CONTACT_ELEMENTS_1,
ContactElementsOne = FINLEY_CONTACT_ELEMENTS_2,
ReducedContactElementsOne = FINLEY_REDUCED_CONTACT_ELEMENTS_2
};
#define FINLEY_INITIAL_STATUS 0
} // namespace finley
#endif // __FINLEY_H__
FINLEY_POINTS
#define FINLEY_POINTS
Definition: Finley.h:69
finley::FaceElements
@ FaceElements
Definition: Finley.h:86
FINLEY_REDUCED_FACE_ELEMENTS
#define FINLEY_REDUCED_FACE_ELEMENTS
Definition: Finley.h:75
FINLEY_REDUCED_ELEMENTS
#define FINLEY_REDUCED_ELEMENTS
Definition: Finley.h:74
FINLEY_REDUCED_CONTACT_ELEMENTS_1
#define FINLEY_REDUCED_CONTACT_ELEMENTS_1
Definition: Finley.h:76
finley::ReducedContactElementsOne
@ ReducedContactElementsOne
Definition: Finley.h:92
FINLEY_NODES
#define FINLEY_NODES
Definition: Finley.h:66
finley::ReducedNodes
@ ReducedNodes
Definition: Finley.h:83
finley::Points
@ Points
Definition: Finley.h:88
FINLEY_REDUCED_DEGREES_OF_FREEDOM
#define FINLEY_REDUCED_DEGREES_OF_FREEDOM
Definition: Finley.h:72
escript::DataTypes::dim_t
index_t dim_t
Definition: DataTypes.h:93
finley::ContactElementsZero
@ ContactElementsZero
Definition: Finley.h:89
FINLEY_FACE_ELEMENTS
#define FINLEY_FACE_ELEMENTS
Definition: Finley.h:68
finley::ReducedDegreesOfFreedom
@ ReducedDegreesOfFreedom
Definition: Finley.h:81
finley::DegreesOfFreedom
@ DegreesOfFreedom
Definition: Finley.h:80
FINLEY_DEGREES_OF_FREEDOM
#define FINLEY_DEGREES_OF_FREEDOM
Definition: Finley.h:65
FINLEY_ELEMENTS
#define FINLEY_ELEMENTS
Definition: Finley.h:67
finley::ReducedFaceElements
@ ReducedFaceElements
Definition: Finley.h:87
escript::DataTypes::index_t
int index_t
type for array/matrix indices used both globally and on each rank
Definition: DataTypes.h:88
finley::Nodes
@ Nodes
Definition: Finley.h:82
FINLEY_REDUCED_CONTACT_ELEMENTS_2
#define FINLEY_REDUCED_CONTACT_ELEMENTS_2
Definition: Finley.h:77
finley::ReducedElements
@ ReducedElements
Definition: Finley.h:85
FINLEY_REDUCED_NODES
#define FINLEY_REDUCED_NODES
Definition: Finley.h:73
finley::ContactElementsOne
@ ContactElementsOne
Definition: Finley.h:91
finley::ReducedContactElementsZero
@ ReducedContactElementsZero
Definition: Finley.h:90
finley
A suite of factory methods for creating various finley domains.
Definition: finley/src/Assemble.h:32
finley::Elements
@ Elements
Definition: Finley.h:84
FINLEY_CONTACT_ELEMENTS_2
#define FINLEY_CONTACT_ELEMENTS_2
Definition: Finley.h:71
FINLEY_CONTACT_ELEMENTS_1
#define FINLEY_CONTACT_ELEMENTS_1
Definition: Finley.h:70
escript::DataTypes::IndexVector
std::vector< index_t > IndexVector
Definition: DataTypes.h:91