28 const ext::shared_ptr<FdmLinearOpLayout>& layout,
31 std::vector<Size> newDim(layout->dim());
32 newDim[direction] = 1;
34 = std::accumulate(newDim.begin(), newDim.end(),
Size(1), std::multiplies<>());
38 for (
const auto& iter : *layout) {
40 && iter.coordinates()[direction] == 0)
42 && iter.coordinates()[direction]
43 == layout->dim()[direction]-1)) {
BoundaryCondition< FdmLinearOp >::Side Side
const std::vector< Size > & getIndices() const
std::vector< Size > indices_
FdmIndicesOnBoundary(const ext::shared_ptr< FdmLinearOpLayout > &l, Size direction, FdmDirichletBoundary::Side side)
#define QL_REQUIRE(condition, message)
throw an error if the given pre-condition is not verified
helper class to extract the indices on a boundary
memory layout of a fdm linear operator
std::size_t Size
size of a container