Wrapper around several functions in the NonMatching namespace. More...
#include <non_matching_coupling.h>
Public Types | |
enum class | CouplingType { approximate_L2 , exact_L2 = 1 << 3 } |
Types of coupling that can used in non-matching coupling. More... | |
enum class | RefinementStrategy { none = 1 << 1 , refine_space = 1 << 2 , refine_embedded = 1 << 3 } |
Refinement strategy. More... | |
Public Member Functions | |
NonMatchingCoupling (const std::string §ion_name="", const ComponentMask &embedded_mask=ComponentMask(), const ComponentMask &space_mask=ComponentMask(), const CouplingType coupling_type=CouplingType::approximate_L2, const RefinementStrategy refinement_strategy=RefinementStrategy::refine_embedded, const unsigned int space_pre_refinement=0, const unsigned int embedded_post_refinement=0, const std::string &quadrature_type="gauss", const unsigned int quadrature_order=2, const unsigned int quadrature_repetitions=1, double quadrature_tolerance=1e-9) | |
Constructor. More... | |
void | initialize (const GridTools::Cache< spacedim, spacedim > &space_cache, const DoFHandler< spacedim, spacedim > &space_dh, const AffineConstraints< double > &space_constraints, const GridTools::Cache< dim, spacedim > &embedded_cache, const DoFHandler< dim, spacedim > &embedded_dh, const AffineConstraints< double > &embedded_constraints) |
Initialize the class and return a linear operator representing the coupling matrix. More... | |
template<typename SparsityType > | |
void | assemble_sparsity (SparsityType &sparsity_pattern) const |
Build the coupling sparsity pattern. More... | |
template<typename MatrixType > | |
void | assemble_matrix (MatrixType &matrix) const |
Assemble the coupling matrix. More... | |
CouplingType | get_coupling_type () const |
Get the coupling type object. More... | |
void | adjust_grid_refinements (Triangulation< spacedim, spacedim > &space_tria, Triangulation< dim, spacedim > &embedded_tria, const bool apply_delta_refinements=true) const |
Adjust grid refinements according to the selected strategy. More... | |
![]() | |
ParameterAcceptor (const std::string §ion_name="") | |
unsigned int | get_acceptor_id () const |
virtual | ~ParameterAcceptor () override |
virtual void | declare_parameters (ParameterHandler &prm) |
virtual void | parse_parameters (ParameterHandler &prm) |
std::string | get_section_name () const |
std::vector< std::string > | get_section_path () const |
void | add_parameter (const std::string &entry, ParameterType ¶meter, const std::string &documentation="", ParameterHandler &prm_=prm, const Patterns::PatternBase &pattern=*Patterns::Tools::Convert< ParameterType >::to_pattern()) |
void | enter_subsection (const std::string &subsection) |
void | leave_subsection () |
void | enter_my_subsection (ParameterHandler &prm) |
void | leave_my_subsection (ParameterHandler &prm) |
void | serialize (Archive &ar, const unsigned int version) |
void | subscribe (std::atomic< bool > *const validity, const std::string &identifier="") const |
void | unsubscribe (std::atomic< bool > *const validity, const std::string &identifier="") const |
unsigned int | n_subscriptions () const |
void | list_subscribers (StreamType &stream) const |
void | list_subscribers () const |
void | subscribe (std::atomic< bool > *const validity, const std::string &identifier="") const |
void | unsubscribe (std::atomic< bool > *const validity, const std::string &identifier="") const |
unsigned int | n_subscriptions () const |
void | list_subscribers (StreamType &stream) const |
void | list_subscribers () const |
![]() | |
Subscriptor () | |
Subscriptor (const Subscriptor &) | |
Subscriptor (Subscriptor &&) noexcept | |
virtual | ~Subscriptor () |
Subscriptor & | operator= (const Subscriptor &) |
Subscriptor & | operator= (Subscriptor &&) noexcept |
void | serialize (Archive &ar, const unsigned int version) |
void | subscribe (std::atomic< bool > *const validity, const std::string &identifier="") const |
void | unsubscribe (std::atomic< bool > *const validity, const std::string &identifier="") const |
unsigned int | n_subscriptions () const |
void | list_subscribers (StreamType &stream) const |
void | list_subscribers () const |
void | subscribe (std::atomic< bool > *const validity, const std::string &identifier="") const |
void | unsubscribe (std::atomic< bool > *const validity, const std::string &identifier="") const |
unsigned int | n_subscriptions () const |
void | list_subscribers (StreamType &stream) const |
void | list_subscribers () const |
Public Attributes | |
boost::signals2::signal< void()> | embedded_post_refinemnt_signal |
Signals that embedded grid has been just refined. More... | |
boost::signals2::signal< void()> | space_post_refinemnt_signal |
Signals that the space grid has been just refined. More... | |
![]() | |
boost::signals2::signal< void()> | declare_parameters_call_back |
boost::signals2::signal< void()> | parse_parameters_call_back |
Protected Attributes | |
const ComponentMask | embedded_mask |
Embedded component mask. More... | |
const ComponentMask | space_mask |
Space component mask. More... | |
Quadrature< dim > | embedded_quadrature |
Embedded quadrature rule. More... | |
CouplingType | coupling_type |
Coupling type. More... | |
RefinementStrategy | refinement_strategy |
Refinement strategy. More... | |
unsigned int | space_pre_refinement |
Pre refinement to apply on the space mesh. More... | |
unsigned int | embedded_post_refinement |
Post refinement to apply on the embedded mesh. More... | |
std::string | embedded_quadrature_type |
Embedded quadrature type. More... | |
unsigned int | quadrature_order |
Order of the base embedded quadrature. More... | |
unsigned int | embedded_quadrature_repetitions |
Number of iterations of the base embedded quadrature. More... | |
SmartPointer< const GridTools::Cache< spacedim, spacedim >, NonMatchingCoupling< dim, spacedim > > | space_cache |
Space cache. More... | |
SmartPointer< const DoFHandler< spacedim, spacedim >, NonMatchingCoupling< dim, spacedim > > | space_dh |
Space dof handler. More... | |
SmartPointer< const AffineConstraints< double >, NonMatchingCoupling< dim, spacedim > > | space_constraints |
Space constraints. More... | |
SmartPointer< const GridTools::Cache< dim, spacedim >, NonMatchingCoupling< dim, spacedim > > | embedded_cache |
Embedded cache. More... | |
SmartPointer< const DoFHandler< dim, spacedim >, NonMatchingCoupling< dim, spacedim > > | embedded_dh |
Embedded dof handler. More... | |
SmartPointer< const AffineConstraints< double >, NonMatchingCoupling< dim, spacedim > > | embedded_constraints |
Embedded constraints. More... | |
double | quadrature_tolerance |
Quadrature tolerance. More... | |
std::vector< std::tuple< typename Triangulation< spacedim, spacedim >::cell_iterator, typename Triangulation< dim, spacedim >::cell_iterator, Quadrature< spacedim > > > | cells_and_quads |
Store cache information. More... | |
![]() | |
const std::string | section_name |
std::vector< std::string > | subsections |
Additional Inherited Members | |
![]() | |
static void | initialize (const std::string &filename="", const std::string &output_filename="", const ParameterHandler::OutputStyle output_style_for_output_filename=ParameterHandler::Short, ParameterHandler &prm=ParameterAcceptor::prm, const ParameterHandler::OutputStyle output_style_for_filename=ParameterHandler::DefaultStyle) |
static void | initialize (std::istream &input_stream, ParameterHandler &prm=ParameterAcceptor::prm) |
static void | clear () |
static void | parse_all_parameters (ParameterHandler &prm=ParameterAcceptor::prm) |
static void | declare_all_parameters (ParameterHandler &prm=ParameterAcceptor::prm) |
static ::ExceptionBase & | ExcInUse (int arg1, std::string arg2, std::string arg3) |
static ::ExceptionBase & | ExcNoSubscriber (std::string arg1, std::string arg2) |
![]() | |
static ::ExceptionBase & | ExcInUse (int arg1, std::string arg2, std::string arg3) |
static ::ExceptionBase & | ExcNoSubscriber (std::string arg1, std::string arg2) |
![]() | |
static ParameterHandler | prm |
Wrapper around several functions in the NonMatching namespace.
dim | Dimension of the embedded space |
spacedim | Dimension of the embedding space |
LacType | Linear algebra types used to assemble the matrices |
Definition at line 48 of file non_matching_coupling.h.
|
strong |
Types of coupling that can used in non-matching coupling.
Enumerator | |
---|---|
approximate_L2 | |
exact_L2 |
Definition at line 54 of file non_matching_coupling.h.
|
strong |
Refinement strategy.
Enumerator | |
---|---|
none | No refinement. |
refine_space | Force space grid to be locally smaller than embedded grid. |
refine_embedded | Force embedded grid to be locally smaller than embedded grid. |
Definition at line 79 of file non_matching_coupling.h.
ParsedTools::NonMatchingCoupling< dim, spacedim >::NonMatchingCoupling | ( | const std::string & | section_name = "" , |
const ComponentMask & | embedded_mask = ComponentMask() , |
||
const ComponentMask & | space_mask = ComponentMask() , |
||
const CouplingType | coupling_type = CouplingType::approximate_L2 , |
||
const RefinementStrategy | refinement_strategy = RefinementStrategy::refine_embedded , |
||
const unsigned int | space_pre_refinement = 0 , |
||
const unsigned int | embedded_post_refinement = 0 , |
||
const std::string & | quadrature_type = "gauss" , |
||
const unsigned int | quadrature_order = 2 , |
||
const unsigned int | quadrature_repetitions = 1 , |
||
double | quadrature_tolerance = 1e-9 |
||
) |
Constructor.
Definition at line 34 of file non_matching_coupling.cc.
References ParameterAcceptor::add_parameter(), ParsedTools::NonMatchingCoupling< dim, spacedim >::embedded_quadrature_repetitions, ParsedTools::NonMatchingCoupling< dim, spacedim >::embedded_quadrature_type, and ParameterAcceptor::prm.
void ParsedTools::NonMatchingCoupling< dim, spacedim >::initialize | ( | const GridTools::Cache< spacedim, spacedim > & | space_cache, |
const DoFHandler< spacedim, spacedim > & | space_dh, | ||
const AffineConstraints< double > & | space_constraints, | ||
const GridTools::Cache< dim, spacedim > & | embedded_cache, | ||
const DoFHandler< dim, spacedim > & | embedded_dh, | ||
const AffineConstraints< double > & | embedded_constraints | ||
) |
Initialize the class and return a linear operator representing the coupling matrix.
Definition at line 99 of file non_matching_coupling.cc.
void ParsedTools::NonMatchingCoupling< dim, spacedim >::assemble_sparsity | ( | SparsityType & | sparsity_pattern | ) | const |
Build the coupling sparsity pattern.
SparsityType |
sparsity_pattern |
void ParsedTools::NonMatchingCoupling< dim, spacedim >::assemble_matrix | ( | MatrixType & | matrix | ) | const |
Assemble the coupling matrix.
NonMatchingCoupling< dim, spacedim >::CouplingType ParsedTools::NonMatchingCoupling< dim, spacedim >::get_coupling_type |
Get the coupling type object.
Definition at line 90 of file non_matching_coupling.cc.
void ParsedTools::NonMatchingCoupling< dim, spacedim >::adjust_grid_refinements | ( | Triangulation< spacedim, spacedim > & | space_tria, |
Triangulation< dim, spacedim > & | embedded_tria, | ||
const bool | apply_delta_refinements = true |
||
) | const |
Adjust grid refinements according to the selected strategy.
Definition at line 124 of file non_matching_coupling.cc.
References Assert, StandardExceptions::ExcMessage(), StandardExceptions::ExcNotInitialized(), and DoFHandler< int dim, int spacedim >::get_triangulation().
boost::signals2::signal<void()> ParsedTools::NonMatchingCoupling< dim, spacedim >::embedded_post_refinemnt_signal |
Signals that embedded grid has been just refined.
Definition at line 156 of file non_matching_coupling.h.
boost::signals2::signal<void()> ParsedTools::NonMatchingCoupling< dim, spacedim >::space_post_refinemnt_signal |
Signals that the space grid has been just refined.
Definition at line 161 of file non_matching_coupling.h.
|
protected |
Embedded component mask.
Definition at line 167 of file non_matching_coupling.h.
|
protected |
Space component mask.
Definition at line 172 of file non_matching_coupling.h.
|
protected |
Embedded quadrature rule.
Definition at line 177 of file non_matching_coupling.h.
|
protected |
Coupling type.
Definition at line 182 of file non_matching_coupling.h.
|
protected |
Refinement strategy.
Definition at line 187 of file non_matching_coupling.h.
|
protected |
Pre refinement to apply on the space mesh.
Definition at line 192 of file non_matching_coupling.h.
|
protected |
Post refinement to apply on the embedded mesh.
Definition at line 197 of file non_matching_coupling.h.
|
protected |
Embedded quadrature type.
Definition at line 202 of file non_matching_coupling.h.
Referenced by ParsedTools::NonMatchingCoupling< dim, spacedim >::NonMatchingCoupling().
|
protected |
Order of the base embedded quadrature.
Definition at line 207 of file non_matching_coupling.h.
|
protected |
Number of iterations of the base embedded quadrature.
Definition at line 212 of file non_matching_coupling.h.
Referenced by ParsedTools::NonMatchingCoupling< dim, spacedim >::NonMatchingCoupling().
|
protected |
Space cache.
Definition at line 219 of file non_matching_coupling.h.
|
protected |
Space dof handler.
Definition at line 226 of file non_matching_coupling.h.
|
protected |
Space constraints.
Definition at line 233 of file non_matching_coupling.h.
|
protected |
Embedded cache.
Definition at line 240 of file non_matching_coupling.h.
|
protected |
Embedded dof handler.
Definition at line 247 of file non_matching_coupling.h.
|
protected |
Embedded constraints.
Definition at line 254 of file non_matching_coupling.h.
|
protected |
Quadrature tolerance.
If an intersection integrates to a value smaller than this tolerance, it is discarded during exact intersection.
Definition at line 262 of file non_matching_coupling.h.
|
mutableprotected |
Store cache information.
Definition at line 271 of file non_matching_coupling.h.