dune-grid-glue
2.3.0
|
sequential adapter to couple two grids at specified close together boundaries More...
#include <dune/grid-glue/gridglue.hh>
Public Types | |
enum | { grid0dim = Grid0Patch::dim, domdim = Grid0Patch::dim, grid0dimworld = Grid0Patch::dimworld, domdimworld = Grid0Patch::dimworld } |
Dimension of the grid 0 extractor. More... | |
enum | { tardim = Grid1Patch::dim, grid1dim = Grid1Patch::dim, tardimworld = Grid1Patch::dimworld, grid1dimworld = Grid1Patch::dimworld } |
Dimension of the grid 1 extractor. More... | |
enum | { dimworld = ((int)Grid0Patch::dimworld > (int)Grid1Patch::dimworld) ? (int)Grid0Patch::dimworld : (int)Grid1Patch::dimworld } |
export the world dimension More... | |
typedef P0::GridView | Grid0View |
GridView of grid 0 (aka domain grid) More... | |
typedef Grid0View::Grid | Grid0 |
Grid 0 type. More... | |
typedef Grid0 | DomainGridType |
Grid 0 type. More... | |
typedef P0 | Grid0Patch |
Coupling patch of grid 0. More... | |
typedef P1::GridView | Grid1View |
GridView of grid 1 (aka target grid) More... | |
typedef Grid1View::Grid | Grid1 |
Grid 1 type. More... | |
typedef Grid1 | TargetGridType |
Grid 1 type. More... | |
typedef P1 | Grid1Patch |
Coupling patch of grid 1. More... | |
typedef unsigned int | IndexType |
typedef Grid0View::ctype | ctype |
The type used for coordinates. More... | |
typedef Dune::FieldVector < ctype, dimworld > | Coords |
The type used for coordinate vectors. More... | |
typedef Grid0View::Traits::template Codim< 0 >::Entity | Grid0Element |
The type of the Grid0 elements. More... | |
typedef Grid0View::Traits::template Codim< 0 >::Entity | DomainElement |
The type of the Grid0 elements. More... | |
typedef Grid0View::Traits::template Codim< 0 >::EntityPointer | Grid0ElementPtr |
Pointer type to Grid0 elements. More... | |
typedef Grid0View::Traits::template Codim< 0 >::EntityPointer | DomainElementPtr |
Pointer type to Grid0 elements. More... | |
typedef Grid0View::Traits::template Codim< Grid0::dimension > ::Entity | Grid0Vertex |
The type of the Grid0 vertices. More... | |
typedef Grid0View::Traits::template Codim< Grid0::dimension > ::Entity | DomainVertex |
The type of the Grid0 vertices. More... | |
typedef Grid0View::Traits::template Codim< Grid0::dimension > ::EntityPointer | Grid0VertexPtr |
Pointer type to Grid0 vertices. More... | |
typedef Grid0View::Traits::template Codim< Grid0::dimension > ::EntityPointer | DomainVertexPtr |
Pointer type to Grid0 vertices. More... | |
typedef Grid1View::Traits::template Codim< 0 >::Entity | Grid1Element |
The type of the Grid1 elements. More... | |
typedef Grid1View::Traits::template Codim< 0 >::Entity | TargetElement |
The type of the Grid1 elements. More... | |
typedef Grid1View::Traits::template Codim< 0 >::EntityPointer | Grid1ElementPtr |
Pointer type to Grid1 elements. More... | |
typedef Grid1View::Traits::template Codim< 0 >::EntityPointer | TargetElementPtr |
Pointer type to Grid1 elements. More... | |
typedef Grid1View::Traits::template Codim< Grid1::dimension > ::Entity | Grid1Vertex |
The type of the Grid1 vertices. More... | |
typedef Grid1View::Traits::template Codim< Grid1::dimension > ::Entity | TargetVertex |
The type of the Grid1 vertices. More... | |
typedef Grid1View::Traits::template Codim< Grid1::dimension > ::EntityPointer | Grid1VertexPtr |
Pointer type to Grid1 vertices. More... | |
typedef Grid1View::Traits::template Codim< Grid1::dimension > ::EntityPointer | TargetVertexPtr |
Pointer type to Grid1 vertices. More... | |
typedef ::Merger< ctype, Grid0::dimension-Grid0Patch::codim, Grid1::dimension-Grid1Patch::codim, dimworld > | Merger |
Instance of a Merger. More... | |
typedef Dune::GridGlue::Intersection < P0, P1, 0, 1 > | Intersection |
Type of remote intersection objects. More... | |
typedef Dune::GridGlue::IntersectionIndexSet < P0, P1 > | IndexSet |
Type of remote intersection indexSet. More... | |
typedef Dune::GridGlue::IntersectionIterator < P0, P1, 0, 1 > | Grid0IntersectionIterator |
Type of the iterator that iterates over remove intersections. More... | |
typedef Dune::GridGlue::IntersectionIterator < P0, P1, 1, 0 > | Grid1IntersectionIterator |
Public Member Functions | |
GridGlue (const Grid0Patch &gp0, const Grid1Patch &gp1, Merger *merger) | |
constructor More... | |
GridGlue (const std::shared_ptr< const Grid0Patch > gp0, const std::shared_ptr< const Grid1Patch > gp1, const std::shared_ptr< Merger > merger) | |
template<int P> | |
const GridGlueView< P0, P1, P > ::Patch & | patch () const |
template<int P> | |
const GridGlueView< P0, P1, P > ::Patch::GridView & | gridView () const |
getter for the GridView of patch P More... | |
void | build () |
template<int I> | |
GridGlueView< P0, P1, I > ::IntersectionIterator | ibegin () const |
gets an iterator over all remote intersections in the merged grid between grid0 and grid1 More... | |
template<int I> | |
GridGlueView< P0, P1, I > ::IntersectionIterator | iend () const |
gets the (general) end-iterator for grid glue iterations More... | |
template<class DataHandleImp , class DataTypeImp > | |
void | communicate (Dune::GridGlue::CommDataHandle< DataHandleImp, DataTypeImp > &data, Dune::InterfaceType iftype, Dune::CommunicationDirection dir) const |
Communicate information on the MergedGrid of a GridGlue. More... | |
IndexSet | indexSet () const |
Intersection | getIntersection (int i) const |
size_t | size () const |
Protected Member Functions | |
void | mergePatches (const std::vector< Dune::FieldVector< ctype, dimworld > > &patch0coords, const std::vector< unsigned int > &patch0entities, const std::vector< Dune::GeometryType > &patch0types, const int patch0rank, const std::vector< Dune::FieldVector< ctype, dimworld > > &patch1coords, const std::vector< unsigned int > &patch1entities, const std::vector< Dune::GeometryType > &patch1types, const int patch1rank) |
after building the merged grid the intersection can be updated through this method (for internal use) More... | |
template<typename Extractor > | |
void | extractGrid (const Extractor &extractor, std::vector< Dune::FieldVector< ctype, dimworld > > &coords, std::vector< unsigned int > &faces, std::vector< Dune::GeometryType > &geometryTypes) const |
Friends | |
class | IntersectionData< P0, P1 > |
class | Intersection< P0, P1, 0, 1 > |
class | Intersection< P0, P1, 1, 0 > |
class | IntersectionIterator< P0, P1, 0, 1 > |
class | IntersectionIterator< P0, P1, 1, 0 > |
class | IntersectionIndexSet< P0, P1 > |
struct | GridGlueView< P0, P1, 0 > |
struct | GridGlueView< P0, P1, 1 > |
sequential adapter to couple two grids at specified close together boundaries
P0 | patch (extractor) to use for grid 0 |
P1 | patch (extractor) to use for grid 1 |
typedef Dune::FieldVector<ctype, dimworld> Dune::GridGlue::GridGlue< P0, P1 >::Coords |
The type used for coordinate vectors.
typedef Grid0View::ctype Dune::GridGlue::GridGlue< P0, P1 >::ctype |
The type used for coordinates.
typedef Grid0View::Traits::template Codim<0>::Entity Dune::GridGlue::GridGlue< P0, P1 >::DomainElement |
typedef Grid0View::Traits::template Codim<0>::EntityPointer Dune::GridGlue::GridGlue< P0, P1 >::DomainElementPtr |
typedef Grid0 Dune::GridGlue::GridGlue< P0, P1 >::DomainGridType |
typedef Grid0View::Traits::template Codim<Grid0::dimension>::Entity Dune::GridGlue::GridGlue< P0, P1 >::DomainVertex |
typedef Grid0View::Traits::template Codim<Grid0::dimension>::EntityPointer Dune::GridGlue::GridGlue< P0, P1 >::DomainVertexPtr |
typedef Grid0View::Grid Dune::GridGlue::GridGlue< P0, P1 >::Grid0 |
Grid 0 type.
typedef Grid0View::Traits::template Codim<0>::Entity Dune::GridGlue::GridGlue< P0, P1 >::Grid0Element |
The type of the Grid0 elements.
typedef Grid0View::Traits::template Codim<0>::EntityPointer Dune::GridGlue::GridGlue< P0, P1 >::Grid0ElementPtr |
Pointer type to Grid0 elements.
typedef Dune::GridGlue::IntersectionIterator<P0,P1,0,1> Dune::GridGlue::GridGlue< P0, P1 >::Grid0IntersectionIterator |
Type of the iterator that iterates over remove intersections.
typedef P0 Dune::GridGlue::GridGlue< P0, P1 >::Grid0Patch |
Coupling patch of grid 0.
typedef Grid0View::Traits::template Codim<Grid0::dimension>::Entity Dune::GridGlue::GridGlue< P0, P1 >::Grid0Vertex |
The type of the Grid0 vertices.
typedef Grid0View::Traits::template Codim<Grid0::dimension>::EntityPointer Dune::GridGlue::GridGlue< P0, P1 >::Grid0VertexPtr |
Pointer type to Grid0 vertices.
typedef P0::GridView Dune::GridGlue::GridGlue< P0, P1 >::Grid0View |
GridView of grid 0 (aka domain grid)
typedef Grid1View::Grid Dune::GridGlue::GridGlue< P0, P1 >::Grid1 |
Grid 1 type.
typedef Grid1View::Traits::template Codim<0>::Entity Dune::GridGlue::GridGlue< P0, P1 >::Grid1Element |
The type of the Grid1 elements.
typedef Grid1View::Traits::template Codim<0>::EntityPointer Dune::GridGlue::GridGlue< P0, P1 >::Grid1ElementPtr |
Pointer type to Grid1 elements.
typedef Dune::GridGlue::IntersectionIterator<P0,P1,1,0> Dune::GridGlue::GridGlue< P0, P1 >::Grid1IntersectionIterator |
typedef P1 Dune::GridGlue::GridGlue< P0, P1 >::Grid1Patch |
Coupling patch of grid 1.
typedef Grid1View::Traits::template Codim<Grid1::dimension>::Entity Dune::GridGlue::GridGlue< P0, P1 >::Grid1Vertex |
The type of the Grid1 vertices.
typedef Grid1View::Traits::template Codim<Grid1::dimension>::EntityPointer Dune::GridGlue::GridGlue< P0, P1 >::Grid1VertexPtr |
Pointer type to Grid1 vertices.
typedef P1::GridView Dune::GridGlue::GridGlue< P0, P1 >::Grid1View |
GridView of grid 1 (aka target grid)
typedef Dune::GridGlue::IntersectionIndexSet<P0,P1> Dune::GridGlue::GridGlue< P0, P1 >::IndexSet |
Type of remote intersection indexSet.
typedef unsigned int Dune::GridGlue::GridGlue< P0, P1 >::IndexType |
typedef Dune::GridGlue::Intersection<P0,P1,0,1> Dune::GridGlue::GridGlue< P0, P1 >::Intersection |
Type of remote intersection objects.
typedef ::Merger<ctype, Grid0::dimension - Grid0Patch::codim, Grid1::dimension - Grid1Patch::codim, dimworld> Dune::GridGlue::GridGlue< P0, P1 >::Merger |
Instance of a Merger.
typedef Grid1View::Traits::template Codim<0>::Entity Dune::GridGlue::GridGlue< P0, P1 >::TargetElement |
typedef Grid1View::Traits::template Codim<0>::EntityPointer Dune::GridGlue::GridGlue< P0, P1 >::TargetElementPtr |
typedef Grid1 Dune::GridGlue::GridGlue< P0, P1 >::TargetGridType |
typedef Grid1View::Traits::template Codim<Grid1::dimension>::Entity Dune::GridGlue::GridGlue< P0, P1 >::TargetVertex |
typedef Grid1View::Traits::template Codim<Grid1::dimension>::EntityPointer Dune::GridGlue::GridGlue< P0, P1 >::TargetVertexPtr |
anonymous enum |
anonymous enum |
anonymous enum |
Dune::GridGlue::GridGlue< P0, P1 >::GridGlue | ( | const Grid0Patch & | gp0, |
const Grid1Patch & | gp1, | ||
Merger * | merger | ||
) |
constructor
Initializes components but does not "glue" the surfaces. The surfaces are extracted from the grids here though.
gp0 | the grid0 patch |
gp1 | the grid1 patch |
merger | The merger object that is used to compute the merged grid. This class has to be a model of the SurfaceMergeConcept. |
Dune::GridGlue::GridGlue< P0, P1 >::GridGlue | ( | const std::shared_ptr< const Grid0Patch > | gp0, |
const std::shared_ptr< const Grid1Patch > | gp1, | ||
const std::shared_ptr< Merger > | merger | ||
) |
void Dune::GridGlue::GridGlue< P0, P1 >::build | ( | ) |
References CheckMPIStatus.
|
inline |
Communicate information on the MergedGrid of a GridGlue.
Template parameter is a model of Dune::GridGlue::CommDataHandle
data | GridGlueDataHandle |
iftype | Interface for which the Communication should take place |
dir | Communication direction (Forward means grid0 to grid1, Backward is the reverse) |
fix mixed communication: seq->par use commSeq, par->seq use commPar
add directed version communicate<FROM,TO, DH,DT>(data,iftype,dir)
References Dune::GridGlue::CommInfo< GG, DataHandleImp, DataTypeImp >::data, Dune::GridGlue::CommInfo< GG, DataHandleImp, DataTypeImp >::dir, Dune::GridGlue::CommDataHandle< DataHandleImp, DataTypeImp >::gather(), Dune::GridGlue::CommInfo< GG, DataHandleImp, DataTypeImp >::gridglue, Dune::GridGlue::CommDataHandle< DataHandleImp, DataTypeImp >::scatter(), Dune::GridGlue::CommDataHandle< DataHandleImp, DataTypeImp >::size(), and Dune::GridGlue::GridGlue< P0, P1 >::size().
|
protected |
|
inline |
|
inline |
getter for the GridView of patch P
|
inline |
gets an iterator over all remote intersections in the merged grid between grid0 and grid1
I | select inside grid I=0 or I=1 |
|
inline |
gets the (general) end-iterator for grid glue iterations
I | select inside grid I=0 or I=1 |
|
inline |
|
protected |
after building the merged grid the intersection can be updated through this method (for internal use)
patch0coords | the patch0 vertices' coordinates ordered like e.g. in 3D x_0 y_0 z_0 x_1 y_1 ... y_(n-1) z_(n-1) |
patch0entities | array with all patch0 entities represented as corner indices into patch0coords ; the entities are just written to this array one after another |
patch0types | array with all patch0 entities types |
patch0rank | rank of the process where patch0 was extracted |
patch1coords | the patch2 vertices' coordinates ordered like e.g. in 3D x_0 y_0 z_0 x_1 y_1 ... y_(n-1) z_(n-1) |
patch1entities | just like with the patch0entities and patch0corners |
patch1types | array with all patch1 entities types |
patch1rank | rank of the process where patch1 was extracted |
References Dune::GridGlue::IntersectionData< P0, P1 >::grid0indices_, Dune::GridGlue::IntersectionData< P0, P1 >::grid0local_, Dune::GridGlue::IntersectionData< P0, P1 >::grid1indices_, and Dune::GridGlue::IntersectionData< P0, P1 >::grid1local_.
|
inline |
|
inline |
|
friend |
|
friend |
|
friend |
|
friend |
|
friend |
|
friend |
|
friend |
|
friend |