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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 5148 - (hide annotations)
Mon Sep 15 01:25:23 2014 UTC (5 years 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 sshaw 4623
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 jfenwick 4657 * Development 2012-2013 by School of Earth Sciences
13     * Development from 2014 by Centre for Geoscience Computing (GeoComp)
14 sshaw 4623 *
15     *****************************************************************************/
16    
17 caltinay 5122 #ifndef __ESCRIPT_ABSTRACTASSEMBLER_H__
18     #define __ESCRIPT_ABSTRACTASSEMBLER_H__
19    
20     #include <escript/AbstractSystemMatrix.h>
21 sshaw 4623 #include <escript/Data.h>
22 caltinay 4949 #include <escript/Pointers.h>
23 caltinay 5122 #include <ripley/domainhelpers.h>
24 sshaw 4623
25     namespace ripley {
26    
27 caltinay 4949 class AbstractAssembler;
28 sshaw 4623
29 caltinay 4949 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 sshaw 4623 public:
35 caltinay 5122 virtual ~AbstractAssembler() {}
36    
37 sshaw 4623 /* The new interface for assemblers */
38 caltinay 5122 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 sshaw 4623
57 caltinay 5122 virtual void collateFunctionSpaceTypes(std::vector<int>& fsTypes,
58     const DataMap& coefs) const = 0;
59    
60 sshaw 4623 };
61    
62 caltinay 4836 } // namespace ripley
63 sshaw 4623
64    
65 caltinay 4836 #endif // __RIPLEY_ABSTRACTASSEMBLER_H__
66    

  ViewVC Help
Powered by ViewVC 1.1.26