ug4
|
Auxiliary class for handling of "FETI layouts". More...
#include <feti.h>
Public Types | |
typedef TAlgebra | algebra_type |
typedef TAlgebra::matrix_type | matrix_type |
typedef TAlgebra::vector_type | vector_type |
Protected Member Functions | |
void | add_merge_sort_remove_doubles (std::vector< IndexLayout::Element > &vOut, const std::vector< IndexLayout::Element > &v) |
void | sort_and_remove_doubles (std::vector< IndexLayout::Element > &vIndex) |
Protected Attributes | |
IndexLayout | m_masterDualLayout |
IndexLayout | m_masterDualNbrLayout |
IndexLayout | m_masterPrimalLayout |
IndexLayout | m_slaveDualLayout |
IndexLayout | m_slaveDualNbrLayout |
IndexLayout | m_slavePrimalLayout |
SmartPtr< AlgebraLayouts > | m_spInnerLayouts |
ConstSmartPtr< AlgebraLayouts > | m_spStdLayouts |
std::vector< IndexLayout::Element > | m_vUniqueDualIndex |
std::vector< IndexLayout::Element > | m_vUniqueMasterDualIndex |
std::vector< IndexLayout::Element > | m_vUniqueMasterDualNbrIndex |
std::vector< IndexLayout::Element > | m_vUniquePrimalIndex |
std::vector< IndexLayout::Element > | m_vUniquePrimalMasterIndex |
std::vector< IndexLayout::Element > | m_vUniquePrimalSlaveIndex |
std::vector< IndexLayout::Element > | m_vUniqueSlaveDualIndex |
std::vector< IndexLayout::Element > | m_vUniqueSlaveDualNbrIndex |
Auxiliary class for handling of "FETI layouts".
This class groups all layouts used in FETI method together and provides useful functions on those.
typedef TAlgebra ug::FetiLayouts< TAlgebra >::algebra_type |
typedef TAlgebra::matrix_type ug::FetiLayouts< TAlgebra >::matrix_type |
typedef TAlgebra::vector_type ug::FetiLayouts< TAlgebra >::vector_type |
|
inline |
|
inlineprotected |
Referenced by ug::FetiLayouts< TAlgebra >::create_layouts().
|
inline |
References ug::FetiLayouts< TAlgebra >::add_merge_sort_remove_doubles(), ug::BuildDomainDecompositionLayouts(), pcl::CollectElements(), pcl::ProcessCommunicator::create_sub_communicator(), pcl::IDomainDecompositionInfo::get_num_subdomains(), ug::FetiLayouts< TAlgebra >::m_masterDualLayout, ug::FetiLayouts< TAlgebra >::m_masterDualNbrLayout, ug::FetiLayouts< TAlgebra >::m_masterPrimalLayout, ug::FetiLayouts< TAlgebra >::m_slaveDualLayout, ug::FetiLayouts< TAlgebra >::m_slaveDualNbrLayout, ug::FetiLayouts< TAlgebra >::m_slavePrimalLayout, ug::FetiLayouts< TAlgebra >::m_spInnerLayouts, ug::FetiLayouts< TAlgebra >::m_spStdLayouts, ug::FetiLayouts< TAlgebra >::m_vUniqueDualIndex, ug::FetiLayouts< TAlgebra >::m_vUniqueMasterDualIndex, ug::FetiLayouts< TAlgebra >::m_vUniqueMasterDualNbrIndex, ug::FetiLayouts< TAlgebra >::m_vUniquePrimalIndex, ug::FetiLayouts< TAlgebra >::m_vUniquePrimalMasterIndex, ug::FetiLayouts< TAlgebra >::m_vUniquePrimalSlaveIndex, ug::FetiLayouts< TAlgebra >::m_vUniqueSlaveDualIndex, ug::FetiLayouts< TAlgebra >::m_vUniqueSlaveDualNbrIndex, pcl::IDomainDecompositionInfo::map_proc_id_to_subdomain_id(), pcl::PrintLayout(), pcl::ProcRank(), ug::FetiLayouts< TAlgebra >::sort_and_remove_doubles(), and UG_LOG.
|
inline |
References ug::FetiLayouts< TAlgebra >::m_vUniqueDualIndex.
|
inline |
|
inline |
References ug::FetiLayouts< TAlgebra >::m_masterDualLayout.
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
References ug::FetiLayouts< TAlgebra >::m_slaveDualLayout.
|
inline |
References ug::FetiLayouts< TAlgebra >::m_spInnerLayouts.
|
inline |
References ug::FetiLayouts< TAlgebra >::m_spInnerLayouts.
|
inline |
References ug::FetiLayouts< TAlgebra >::m_spInnerLayouts.
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
References ug::FetiLayouts< TAlgebra >::m_slavePrimalLayout.
|
inline |
References ug::FetiLayouts< TAlgebra >::m_spStdLayouts.
Referenced by ug::FetiLayouts< TAlgebra >::mat_use_std_communication().
|
inline |
References ug::FetiLayouts< TAlgebra >::m_spStdLayouts.
Referenced by ug::FetiLayouts< TAlgebra >::mat_use_std_communication().
|
inline |
References ug::FetiLayouts< TAlgebra >::m_spStdLayouts.
Referenced by ug::FetiLayouts< TAlgebra >::mat_use_std_communication().
|
inline |
References ug::FetiLayouts< TAlgebra >::m_vUniqueDualIndex, and ug::SetDirichletRow().
|
inline |
References ug::FetiLayouts< TAlgebra >::m_vUniquePrimalIndex, and ug::SetDirichletRow().
|
inline |
References ug::FetiLayouts< TAlgebra >::m_spInnerLayouts.
|
inline |
|
inlineprotected |
Referenced by ug::FetiLayouts< TAlgebra >::create_layouts().
|
inline |
References ug::FetiLayouts< TAlgebra >::m_masterDualLayout, ug::FetiLayouts< TAlgebra >::m_masterDualNbrLayout, ug::FetiLayouts< TAlgebra >::m_masterPrimalLayout, ug::FetiLayouts< TAlgebra >::m_slaveDualLayout, ug::FetiLayouts< TAlgebra >::m_slaveDualNbrLayout, ug::FetiLayouts< TAlgebra >::m_slavePrimalLayout, ug::FetiLayouts< TAlgebra >::m_spInnerLayouts, ug::FetiLayouts< TAlgebra >::m_spStdLayouts, pcl::TestLayout(), and UG_LOG.
|
inline |
calculates norm on dual
References ug::FetiLayouts< TAlgebra >::vec_prod_on_identified_dual().
|
inline |
|
inline |
calculates vecDest = alpha1*vecSource1 + alpha2*vecSource2 on dual
References ug::FetiLayouts< TAlgebra >::m_vUniqueDualIndex, and ug::VecScaleAdd().
|
inline |
calculates vecDest = alpha1*vecSource1 + alpha2*vecSource2 on primal
References ug::FetiLayouts< TAlgebra >::m_vUniquePrimalIndex, and ug::VecScaleAdd().
|
inline |
calculates vecInOut += alpha1*vecSrc1 on dual
References ug::FetiLayouts< TAlgebra >::m_vUniqueDualIndex, and ug::VecScaleAdd().
|
inline |
calculates vecInOut += alpha1*vecSrc1 on primal
References ug::FetiLayouts< TAlgebra >::m_vUniquePrimalIndex, and ug::VecScaleAdd().
|
inline |
calculates vecDest = alpha*vecSrc on dual
References alpha, ug::FetiLayouts< TAlgebra >::m_vUniqueDualIndex, and ug::VecScaleAssign().
|
inline |
calculates vecDest = alpha*vecSrc on primal
References alpha, ug::FetiLayouts< TAlgebra >::m_vUniquePrimalIndex, and ug::VecScaleAssign().
|
inline |
sets vecDest = alpha on dual
References alpha, ug::FetiLayouts< TAlgebra >::m_vUniqueDualIndex, and ug::VecSet().
|
inline |
sets vecDest = alpha on primal
References alpha, ug::FetiLayouts< TAlgebra >::m_vUniquePrimalIndex, and ug::VecSet().
|
inline |
References ug::FetiLayouts< TAlgebra >::m_spInnerLayouts.
|
inline |
References ug::FetiLayouts< TAlgebra >::m_spStdLayouts.
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
Referenced by ug::FetiLayouts< TAlgebra >::create_layouts(), ug::FetiLayouts< TAlgebra >::get_intra_sd_master_layout(), ug::FetiLayouts< TAlgebra >::get_intra_sd_process_communicator(), ug::FetiLayouts< TAlgebra >::get_intra_sd_slave_layout(), ug::FetiLayouts< TAlgebra >::mat_use_intra_sd_communication(), ug::FetiLayouts< TAlgebra >::test_layouts(), and ug::FetiLayouts< TAlgebra >::vec_use_intra_sd_communication().
|
protected |
Referenced by ug::FetiLayouts< TAlgebra >::create_layouts(), ug::FetiLayouts< TAlgebra >::get_std_master_layout(), ug::FetiLayouts< TAlgebra >::get_std_process_communicator(), ug::FetiLayouts< TAlgebra >::get_std_slave_layout(), ug::FetiLayouts< TAlgebra >::test_layouts(), ug::FetiLayouts< TAlgebra >::vec_prod_on_identified_dual(), and ug::FetiLayouts< TAlgebra >::vec_use_std_communication().
|
protected |
Referenced by ug::FetiLayouts< TAlgebra >::create_layouts(), ug::FetiLayouts< TAlgebra >::get_dual_indices(), ug::FetiLayouts< TAlgebra >::mat_set_dirichlet_on_dual(), ug::FetiLayouts< TAlgebra >::vec_scale_add_on_dual(), ug::FetiLayouts< TAlgebra >::vec_scale_append_on_dual(), ug::FetiLayouts< TAlgebra >::vec_scale_assign_on_dual(), and ug::FetiLayouts< TAlgebra >::vec_set_on_dual().
|
protected |
|
protected |
|
protected |
Referenced by ug::FetiLayouts< TAlgebra >::create_layouts(), ug::FetiLayouts< TAlgebra >::get_primal_indices(), ug::FetiLayouts< TAlgebra >::mat_set_dirichlet_on_primal(), ug::FetiLayouts< TAlgebra >::vec_scale_add_on_primal(), ug::FetiLayouts< TAlgebra >::vec_scale_append_on_primal(), ug::FetiLayouts< TAlgebra >::vec_scale_assign_on_primal(), and ug::FetiLayouts< TAlgebra >::vec_set_on_primal().
|
protected |
|
protected |
|
protected |
|
protected |