ripley/src/WaveAssembler2D.h
Go to the documentation of this file.
/*****************************************************************************
*
* Copyright (c) 2003-2017 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 by Centre for Geoscience Computing (GeoComp)
*
*****************************************************************************/
#ifndef __RIPLEY_WAVEASSEMBLER2D_H__
#define __RIPLEY_WAVEASSEMBLER2D_H__
#include <ripley/Rectangle.h>
namespace ripley {
class WaveAssembler2D : public AbstractAssembler
{
public:
WaveAssembler2D(escript::const_Domain_ptr dom, const double *dx,
const dim_t *NE, const dim_t *NN,
const DataMap& c);
~WaveAssembler2D() {}
/* The only assembly function we care about right now*/
void assemblePDESystem(escript::AbstractSystemMatrix* mat,
escript::Data& rhs, const DataMap& coefs) const;
void assemblePDESingle(escript::AbstractSystemMatrix* mat,
escript::Data& rhs, const DataMap& coefs) const {
throw escript::NotImplementedError("assemblePDESingle() not supported by this assembler");
}
void assemblePDEBoundarySingle(escript::AbstractSystemMatrix* mat,
escript::Data& rhs, const DataMap& coefs) const {
throw escript::NotImplementedError("assemblePDEBoundarySingle() not supported by this assembler");
}
void assemblePDESingleReduced(escript::AbstractSystemMatrix* mat,
escript::Data& rhs, const DataMap& coefs) const {
throw escript::NotImplementedError("assemblePDESingleReduced() not supported by this assembler");
}
void assemblePDEBoundarySingleReduced(escript::AbstractSystemMatrix* mat,
escript::Data& rhs, const DataMap& coefs) const {
throw escript::NotImplementedError("assemblePDEBoundarySingleReduced() not supported by this assembler");
}
void assemblePDEBoundarySystem(escript::AbstractSystemMatrix* mat,
escript::Data& rhs, const DataMap& coefs) const {
throw escript::NotImplementedError("assemblePDEBoundarySystem() not supported by this assembler");
}
void assemblePDESystemReduced(escript::AbstractSystemMatrix* mat,
escript::Data& rhs, const DataMap& coefs) const {
throw escript::NotImplementedError("assemblePDESystemReduced() not supported by this assembler");
}
void assemblePDEBoundarySystemReduced(escript::AbstractSystemMatrix* mat,
escript::Data& rhs, const DataMap& coefs) const {
throw escript::NotImplementedError("assemblePDEBoundarySystemReduced() not supported by this assembler");
}
void collateFunctionSpaceTypes(std::vector<int>& fsTypes,
const DataMap& coefs) const;
private:
DataMap c;
POINTER_WRAPPER_CLASS(const Rectangle) domain;
const double *m_dx;
const dim_t *m_NE;
const dim_t *m_NN;
escript::Data c11, c12, c13, c23, c33, c44, c66;
bool isVTI, isHTI;
};
} // namespace ripley
#endif // __RIPLEY_WAVEASSEMBLER2D_H__
ripley::WaveAssembler2D::WaveAssembler2D
WaveAssembler2D(escript::const_Domain_ptr dom, const double *dx, const dim_t *NE, const dim_t *NN, const DataMap &c)
Definition: ripley/src/WaveAssembler2D.cpp:26
ripley::WaveAssembler2D::c44
escript::Data c44
Definition: ripley/src/WaveAssembler2D.h:75
ripley::WaveAssembler2D::assemblePDEBoundarySystem
void assemblePDEBoundarySystem(escript::AbstractSystemMatrix *mat, escript::Data &rhs, const DataMap &coefs) const
Definition: ripley/src/WaveAssembler2D.h:53
ripley::WaveAssembler2D
Definition: ripley/src/WaveAssembler2D.h:24
ripley::AbstractAssembler
Definition: ripley/src/AbstractAssembler.h:32
ripley::WaveAssembler2D::c
DataMap c
Definition: ripley/src/WaveAssembler2D.h:70
ripley::WaveAssembler2D::collateFunctionSpaceTypes
void collateFunctionSpaceTypes(std::vector< int > &fsTypes, const DataMap &coefs) const
Definition: ripley/src/WaveAssembler2D.cpp:69
ripley::WaveAssembler2D::POINTER_WRAPPER_CLASS
POINTER_WRAPPER_CLASS(const Rectangle) domain
ripley::WaveAssembler2D::assemblePDEBoundarySingle
void assemblePDEBoundarySingle(escript::AbstractSystemMatrix *mat, escript::Data &rhs, const DataMap &coefs) const
Definition: ripley/src/WaveAssembler2D.h:41
ripley::WaveAssembler2D::c13
escript::Data c13
Definition: ripley/src/WaveAssembler2D.h:75
ripley::WaveAssembler2D::c66
escript::Data c66
Definition: ripley/src/WaveAssembler2D.h:75
ripley::WaveAssembler2D::m_NN
const dim_t * m_NN
Definition: ripley/src/WaveAssembler2D.h:74
ripley::WaveAssembler2D::assemblePDESingleReduced
void assemblePDESingleReduced(escript::AbstractSystemMatrix *mat, escript::Data &rhs, const DataMap &coefs) const
Definition: ripley/src/WaveAssembler2D.h:45
ripley::WaveAssembler2D::isHTI
bool isHTI
Definition: ripley/src/WaveAssembler2D.h:76
ripley::Rectangle
Rectangle is the 2-dimensional implementation of a RipleyDomain.
Definition: ripley/src/Rectangle.h:28
ripley::DataMap
std::map< std::string, escript::Data > DataMap
Definition: ripley/src/domainhelpers.h:24
escript::NotImplementedError
An exception class for features which are not (yet) implemented.
Definition: EsysException.h:78
ripley::WaveAssembler2D::m_NE
const dim_t * m_NE
Definition: ripley/src/WaveAssembler2D.h:73
ripley::WaveAssembler2D::c23
escript::Data c23
Definition: ripley/src/WaveAssembler2D.h:75
escript::Data
Data represents a collection of datapoints.
Definition: Data.h:63
ripley::WaveAssembler2D::c33
escript::Data c33
Definition: ripley/src/WaveAssembler2D.h:75
ripley::WaveAssembler2D::assemblePDESystemReduced
void assemblePDESystemReduced(escript::AbstractSystemMatrix *mat, escript::Data &rhs, const DataMap &coefs) const
Definition: ripley/src/WaveAssembler2D.h:57
ripley::WaveAssembler2D::m_dx
const double * m_dx
Definition: ripley/src/WaveAssembler2D.h:72
ripley::WaveAssembler2D::assemblePDEBoundarySingleReduced
void assemblePDEBoundarySingleReduced(escript::AbstractSystemMatrix *mat, escript::Data &rhs, const DataMap &coefs) const
Definition: ripley/src/WaveAssembler2D.h:49
ripley::WaveAssembler2D::c11
escript::Data c11
Definition: ripley/src/WaveAssembler2D.h:75
ripley::WaveAssembler2D::assemblePDESingle
void assemblePDESingle(escript::AbstractSystemMatrix *mat, escript::Data &rhs, const DataMap &coefs) const
Definition: ripley/src/WaveAssembler2D.h:37
ripley::WaveAssembler2D::~WaveAssembler2D
~WaveAssembler2D()
Definition: ripley/src/WaveAssembler2D.h:31
escript::AbstractSystemMatrix
Base class for escript system matrices.
Definition: AbstractSystemMatrix.h:42
ripley::WaveAssembler2D::assemblePDEBoundarySystemReduced
void assemblePDEBoundarySystemReduced(escript::AbstractSystemMatrix *mat, escript::Data &rhs, const DataMap &coefs) const
Definition: ripley/src/WaveAssembler2D.h:61
ripley
Definition: ripley/src/AbstractAssembler.h:25
ripley::WaveAssembler2D::assemblePDESystem
void assemblePDESystem(escript::AbstractSystemMatrix *mat, escript::Data &rhs, const DataMap &coefs) const
Definition: ripley/src/WaveAssembler2D.cpp:86
ripley::WaveAssembler2D::isVTI
bool isVTI
Definition: ripley/src/WaveAssembler2D.h:76
ripley::WaveAssembler2D::c12
escript::Data c12
Definition: ripley/src/WaveAssembler2D.h:75
escript::const_Domain_ptr
boost::shared_ptr< const AbstractDomain > const_Domain_ptr
Definition: AbstractDomain.h:39
escript::DataTypes::dim_t
index_t dim_t
Definition: DataTypes.h:64