Provides the routines for a refinement of a domain. More...
#include "viennagrid/forwards.h"
#include "viennagrid/domain.hpp"
#include "viennagrid/algorithm/centroid.hpp"
#include "viennagrid/algorithm/norm.hpp"
#include "viennadata/api.hpp"
Go to the source code of this file.
Data Structures | |
struct | refinement_vertex_id_requirement< DomainType, VertexIDHandler > |
Refinement requies vertex IDs. This class makes sure that they are available. More... | |
struct | refinement_vertex_id_requirement< DomainType, pointer_id > |
class | refinement_proxy< DomainType, RefinementTag > |
A proxy class that is used to allow ' refined_domain = refine(domain); ' without temporary. More... | |
Namespaces | |
namespace | viennagrid |
The main ViennaGrid namespace. Most functionality resides in this namespace. | |
namespace | viennagrid::detail |
The namespace holding the implementations of domains, segments and ncells as well as some algorithm implementations. Not of interest for library users. | |
Functions | |
template<typename ConfigTypeIn > | |
void | ensure_longest_edge_refinement (domain_t< ConfigTypeIn > const &domain_in) |
Ensures refinement fo the longest edge. If any edge is refined in a cell, then the longest edge is refined as well. | |
template<typename ConfigTypeIn > | |
void | cell_refinement_to_edge_refinement (domain_t< ConfigTypeIn > const &domain_in) |
Transfers tags for refinement from the cell to edges. | |
template<typename ConfigTypeIn , typename ConfigTypeOut > | |
void | refine_impl (domain_t< ConfigTypeIn > const &domain_in, domain_t< ConfigTypeOut > &domain_out, local_refinement_tag) |
Implementation of adaptive refinement. Responsible for all the book-keeping. | |
template<typename ConfigTypeIn , typename ConfigTypeOut > | |
void | refine_impl (domain_t< ConfigTypeIn > const &domain_in, domain_t< ConfigTypeOut > &domain_out, uniform_refinement_tag) |
Implementation of uniform refinement. Responsible for all the book-keeping. | |
template<typename ConfigTypeIn , typename RefinementTag > | |
refinement_proxy< domain_t < ConfigTypeIn > , RefinementTag > | refine (domain_t< ConfigTypeIn > const &domain_in, RefinementTag const &tag) |
Public interface for refinement of a domain. If local refinement is desired, cells or edges needs to be tagged using ViennaData with refinement_key. | |
template<typename ConfigTypeIn > | |
refinement_proxy< domain_t < ConfigTypeIn > , uniform_refinement_tag > | refine_uniformly (domain_t< ConfigTypeIn > const &domain_in) |
Convenience overload for uniform refinement of a domain. | |
template<typename ConfigTypeIn > | |
refinement_proxy< domain_t < ConfigTypeIn > , local_refinement_tag > | refine_locally (domain_t< ConfigTypeIn > const &domain_in) |
Convenience overload for adaptive refinement of a domain. Cells or edges needs to be tagged using ViennaData with refinement_key. |
Provides the routines for a refinement of a domain.