![]() |
OGS
|
|
A mixin providing assembly functionality to a specific Process.
The process must be derived from this class (CRTP).
Definition at line 101 of file AssemblyMixin.h.
#include <AssemblyMixin.h>
Public Member Functions | |
| void | initializeAssemblyOnSubmeshes (std::vector< std::reference_wrapper< MeshLib::Mesh > > const &submeshes, std::vector< std::vector< std::string > > const &residuum_names) |
| void | updateActiveElements () |
| void | assemble (double const t, double const dt, std::vector< GlobalVector * > const &, std::vector< GlobalVector * > const &, int const process_id, GlobalMatrix &, GlobalMatrix &, GlobalVector &) |
| void | assembleWithJacobian (double const t, double const dt, std::vector< GlobalVector * > const &x, std::vector< GlobalVector * > const &x_prev, int const process_id, GlobalVector &b, GlobalMatrix &Jac) |
Private Member Functions | |
| Process & | derived () |
| Process const & | derived () const |
| AssemblyMixinBase (AbstractJacobianAssembler &jacobian_assembler) | |
| Private Member Functions inherited from ProcessLib::AssemblyMixinBase | |
| AssemblyMixinBase (AbstractJacobianAssembler &jacobian_assembler) | |
| void | initializeAssemblyOnSubmeshes (MeshLib::Mesh &bulk_mesh, std::vector< std::reference_wrapper< MeshLib::Mesh > > const &submeshes, std::vector< std::vector< std::string > > const &residuum_names, std::vector< std::vector< std::reference_wrapper< ProcessVariable > > > const &pvs) |
| void | updateActiveElements (ProcessLib::Process const &process) |
Private Attributes | |
| friend | Process |
| Private Attributes inherited from ProcessLib::AssemblyMixinBase | |
| std::vector< SubmeshAssemblyData > | submesh_assembly_data_ |
| std::vector< std::vector< std::reference_wrapper< MeshLib::PropertyVector< double > > > > | residuum_vectors_bulk_ |
| std::size_t | b_submesh_id_ = 0 |
| ID of the b vector on submeshes, cf. NumLib::VectorProvider. | |
| Assembly::ParallelVectorMatrixAssembler | pvma_ |
Additional Inherited Members | |
| Static Private Member Functions inherited from ProcessLib::AssemblyMixinBase | |
| static void | copyResiduumVectorsToBulkMesh (GlobalVector const &rhs, NumLib::LocalToGlobalIndexMap const &local_to_global_index_map, std::vector< std::reference_wrapper< MeshLib::PropertyVector< double > > > residuum_vectors) |
| static void | copyResiduumVectorsToSubmesh (int const process_id, GlobalVector const &rhs, NumLib::LocalToGlobalIndexMap const &local_to_global_index_map, SubmeshAssemblyData const &sad) |
|
inline |
Implementation similar to assembleWithJacobian calling Assembly::ParallelVectorMatrixAssembler::assemble function. Residuum must be correctly computed.
Definition at line 145 of file AssemblyMixin.h.
|
inline |
Definition at line 160 of file AssemblyMixin.h.
References BaseLib::MPI::anyOf(), MathLib::LinAlg::axpy(), ProcessLib::AssemblyMixinBase::b_submesh_id_, ProcessLib::AssemblyMixinBase::copyResiduumVectorsToBulkMesh(), ProcessLib::AssemblyMixinBase::copyResiduumVectorsToSubmesh(), DBUG(), derived(), MathLib::LinAlg::finalizeAssembly(), ProcessLib::Process::getDOFTables(), NumLib::GlobalVectorProvider::provider, ProcessLib::AssemblyMixinBase::pvma_, ProcessLib::AssemblyMixinBase::residuum_vectors_bulk_, and ProcessLib::AssemblyMixinBase::submesh_assembly_data_.
|
inlineexplicitprivate |
Definition at line 53 of file AssemblyMixin.h.
|
inlineprivate |
Definition at line 235 of file AssemblyMixin.h.
References Process.
Referenced by assembleWithJacobian(), initializeAssemblyOnSubmeshes(), and updateActiveElements().
|
inlineprivate |
Definition at line 236 of file AssemblyMixin.h.
References Process.
|
inline |
Specifies that the assembly of the process should take place on the passed submeshes.
residuum_names matters and must match the order of the residuum vectors in the process. Otherwise residuum output on submeshes will be wrong.Definition at line 130 of file AssemblyMixin.h.
References derived(), and ProcessLib::AssemblyMixinBase::initializeAssemblyOnSubmeshes().
|
inline |
Definition at line 139 of file AssemblyMixin.h.
References derived(), and ProcessLib::AssemblyMixinBase::updateActiveElements().
|
private |
Definition at line 106 of file AssemblyMixin.h.