Package hedge :: Module partition
[hide private]
[frames] | no frames]

Module partition

source code

Mesh partitioning subsystem.

This is used by parallel execution (MPI) and local timestepping.


Copyright: Copyright (C) 2009 Andreas Kloeckner

License: This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see U{http://www.gnu.org/licenses/}.

Classes [hide private]
  PartitionData
  StupidInterdomainFluxMapper
Attempts to map a regular optemplate into one that is suitable for inter-domain flux computation.
  Transformer
Functions [hide private]
 
partition_from_tags(mesh, tag_to_number) source code
 
partition_mesh(mesh, partition, part_bdry_tag_factory)
*partition* is a mapping that maps element id to integers that represent different pieces of the mesh.
source code
 
find_neighbor_vol_indices(my_discr, my_part_data, nb_discr, nb_part_data, debug=False) source code
 
compile_interdomain_flux(optemplate, vol_var, bdry_var, my_discr, my_part_data, nb_discr, nb_part_data, use_stupid_substitution=False)
`use_stupid_substitution` uses `StupidInterdomainFluxMapper` to try to pare down a full optemplate to one that is suitable for interdomain flux computation.
source code
Function Details [hide private]

partition_mesh(mesh, partition, part_bdry_tag_factory)

source code 

*partition* is a mapping that maps element id to integers that represent different pieces of the mesh.

For historical reasons, the values in partition are called 'parts'.

compile_interdomain_flux(optemplate, vol_var, bdry_var, my_discr, my_part_data, nb_discr, nb_part_data, use_stupid_substitution=False)

source code 

`use_stupid_substitution` uses `StupidInterdomainFluxMapper` to try to pare down a full optemplate to one that is suitable for interdomain flux computation. While technique is stupid, it will work for many common DG operators. See the description of `StupidInterdomainFluxMapper` to see what exactly is done.