/[escript]/trunk/ripley/src/AbstractAssembler.h
ViewVC logotype

Contents of /trunk/ripley/src/AbstractAssembler.h

Parent Directory Parent Directory | Revision Log Revision Log


Revision 5148 - (show annotations)
Mon Sep 15 01:25:23 2014 UTC (4 years, 11 months ago) by caltinay
File MIME type: text/plain
File size: 2626 byte(s)
Merging ripley diagonal storage + CUDA support into trunk.
Options file version has been incremented due to new options
'cuda' and 'nvccflags'.

1
2 /*****************************************************************************
3 *
4 * Copyright (c) 2003-2014 by University of Queensland
5 * http://www.uq.edu.au
6 *
7 * Primary Business: Queensland, Australia
8 * Licensed under the Open Software License version 3.0
9 * http://www.opensource.org/licenses/osl-3.0.php
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 __ESCRIPT_ABSTRACTASSEMBLER_H__
18 #define __ESCRIPT_ABSTRACTASSEMBLER_H__
19
20 #include <escript/AbstractSystemMatrix.h>
21 #include <escript/Data.h>
22 #include <escript/Pointers.h>
23 #include <ripley/domainhelpers.h>
24
25 namespace ripley {
26
27 class AbstractAssembler;
28
29 typedef POINTER_WRAPPER_CLASS(AbstractAssembler) Assembler_ptr;
30 typedef POINTER_WRAPPER_CLASS(const AbstractAssembler) const_Assembler_ptr;
31
32 class AbstractAssembler : public REFCOUNT_BASE_CLASS(AbstractAssembler)
33 {
34 public:
35 virtual ~AbstractAssembler() {}
36
37 /* The new interface for assemblers */
38 virtual void assemblePDESingle(escript::AbstractSystemMatrix* mat,
39 escript::Data& rhs, const DataMap& coefs) const = 0;
40 virtual void assemblePDEBoundarySingle(escript::AbstractSystemMatrix* mat,
41 escript::Data& rhs, const DataMap& coefs) const = 0;
42 virtual void assemblePDESingleReduced(escript::AbstractSystemMatrix* mat,
43 escript::Data& rhs, const DataMap& coefs) const = 0;
44 virtual void assemblePDEBoundarySingleReduced(
45 escript::AbstractSystemMatrix* mat, escript::Data& rhs,
46 const DataMap& coefs) const = 0;
47 virtual void assemblePDESystem(escript::AbstractSystemMatrix* mat,
48 escript::Data& rhs, const DataMap& coefs) const = 0;
49 virtual void assemblePDEBoundarySystem(escript::AbstractSystemMatrix* mat,
50 escript::Data& rhs, const DataMap& coefs) const = 0;
51 virtual void assemblePDESystemReduced(escript::AbstractSystemMatrix* mat,
52 escript::Data& rhs, const DataMap& coefs) const = 0;
53 virtual void assemblePDEBoundarySystemReduced(
54 escript::AbstractSystemMatrix* mat, escript::Data& rhs,
55 const DataMap& coefs) const = 0;
56
57 virtual void collateFunctionSpaceTypes(std::vector<int>& fsTypes,
58 const DataMap& coefs) const = 0;
59
60 };
61
62 } // namespace ripley
63
64
65 #endif // __RIPLEY_ABSTRACTASSEMBLER_H__
66

  ViewVC Help
Powered by ViewVC 1.1.26