escript  Revision_
Dudley.h
Go to the documentation of this file.
1 
2 /*****************************************************************************
3 *
4 * Copyright (c) 2003-2018 by The University of Queensland
5 * http://www.uq.edu.au
6 *
7 * Primary Business: Queensland, Australia
8 * Licensed under the Apache License, version 2.0
9 * http://www.apache.org/licenses/LICENSE-2.0
10 *
11 * Development until 2012 by Earth Systems Science Computational Center (ESSCC)
12 * Development 2012-2013 by School of Earth Sciences
13 * Development from 2014 by Centre for Geoscience Computing (GeoComp)
14 *
15 *****************************************************************************/
16 
17 #ifndef __DUDLEY_H__
18 #define __DUDLEY_H__
19 
20 /****************************************************************************/
21 
22 /* Dudley finite element solver */
23 
24 /****************************************************************************/
25 
26 #include <escript/DataTypes.h>
27 
28 #include <dudley/DudleyException.h>
29 
30 #include <escript/Data.h>
31 #include <escript/EsysMPI.h>
32 
33 namespace dudley {
34 
38 
39 #define DUDLEY_UNKNOWN -1
40 #define DUDLEY_DEGREES_OF_FREEDOM 1
41 #define DUDLEY_NODES 3
42 #define DUDLEY_ELEMENTS 4
43 #define DUDLEY_FACE_ELEMENTS 5
44 #define DUDLEY_POINTS 6
45 #define DUDLEY_REDUCED_ELEMENTS 10
46 #define DUDLEY_REDUCED_FACE_ELEMENTS 11
47 
48 //
49 // Codes for function space types supported
50 enum {
58 };
59 
60 inline bool hasReducedIntegrationOrder(const escript::Data& in)
61 {
62  const int fs = in.getFunctionSpace().getTypeCode();
63  return (fs == ReducedElements || fs == ReducedFaceElements);
64 }
65 
66 #define DUDLEY_INITIAL_STATUS 0
67 
68 } // namespace dudley
69 
70 #endif // __DUDLEY_H__
71 
dudley::Points
Definition: Dudley.h:68
DUDLEY_DEGREES_OF_FREEDOM
#define DUDLEY_DEGREES_OF_FREEDOM
Definition: Dudley.h:51
dudley::Nodes
Definition: Dudley.h:63
DUDLEY_NODES
#define DUDLEY_NODES
Definition: Dudley.h:52
dudley::DegreesOfFreedom
Definition: Dudley.h:62
escript::Data::getFunctionSpace
const FunctionSpace & getFunctionSpace() const
Return the function space.
Definition: Data.h:461
dudley::Elements
Definition: Dudley.h:64
dudley
A suite of factory methods for creating 2D and 3D dudley domains.
Definition: dudley/src/Assemble.h:31
escript::Data
Data represents a collection of datapoints.
Definition: Data.h:62
escript::DataTypes::dim_t
index_t dim_t
Definition: DataTypes.h:87
dudley::hasReducedIntegrationOrder
bool hasReducedIntegrationOrder(const escript::Data &in)
Definition: Dudley.h:71
DUDLEY_REDUCED_ELEMENTS
#define DUDLEY_REDUCED_ELEMENTS
Definition: Dudley.h:56
DUDLEY_ELEMENTS
#define DUDLEY_ELEMENTS
Definition: Dudley.h:53
dudley::ReducedElements
Definition: Dudley.h:65
DUDLEY_REDUCED_FACE_ELEMENTS
#define DUDLEY_REDUCED_FACE_ELEMENTS
Definition: Dudley.h:57
dudley::FaceElements
Definition: Dudley.h:66
escript::DataTypes::index_t
int index_t
type for array/matrix indices used both globally and on each rank
Definition: DataTypes.h:82
dudley::ReducedFaceElements
Definition: Dudley.h:67
escript::FunctionSpace::getTypeCode
int getTypeCode() const
Returns the function space type code.
Definition: FunctionSpace.cpp:93
DUDLEY_POINTS
#define DUDLEY_POINTS
Definition: Dudley.h:55
DUDLEY_FACE_ELEMENTS
#define DUDLEY_FACE_ELEMENTS
Definition: Dudley.h:54
escript::DataTypes::IndexVector
std::vector< index_t > IndexVector
Definition: DataTypes.h:85