![]() |
OGS
|
|
Provides basic functionality for the AssemblyMixin that does not require template parameters.
Definition at line 22 of file AssemblyMixin.h.
#include <AssemblyMixin.h>
Protected Member Functions | |
| AssemblyMixinBase (AbstractJacobianAssembler &jacobian_assembler, bool const is_linear, bool const use_monolithic_scheme) | |
| 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) |
| bool | isLinear () const |
Static Protected Member Functions | |
| 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, ProcessLib::Assembly::SubmeshAssemblyData const &sad) |
Protected Attributes | |
| std::vector< ProcessLib::Assembly::SubmeshAssemblyData > | submesh_assembly_data_ |
| SubmeshAssemblyData for each submesh. | |
| std::vector< AssembledMatrixCache > | submesh_matrix_cache_ |
| AssembledMatrixCache for each submesh. | |
| std::optional< ProcessLib::Assembly::BulkMeshAssemblyData > | bulk_mesh_assembly_data_ |
| Empty if submesh assembly is used. | |
| AssembledMatrixCache | bulk_mesh_matrix_cache_ |
| Assembly::ParallelVectorMatrixAssembler | pvma_ |
| bool | is_linear_ |
| std::optional< NumLib::NonlinearSolverTag > | last_assembly_was_ |
Private Types | |
| enum class | ActiveElementIDsState { UNINITIALIZED , HAS_DEACTIVATED_SUBDOMAINS , NO_DEACTIVATED_SUBDOMAINS } |
Private Member Functions | |
| void | updateActiveElementsImpl (Process const &process) |
Private Attributes | |
| ActiveElementIDsState | ids_state_ = ActiveElementIDsState::UNINITIALIZED |
|
strongprivate |
| Enumerator | |
|---|---|
| UNINITIALIZED | |
| HAS_DEACTIVATED_SUBDOMAINS | |
| NO_DEACTIVATED_SUBDOMAINS | |
Definition at line 24 of file AssemblyMixin.h.
|
explicitprotected |
Definition at line 97 of file AssemblyMixin.cpp.
References is_linear_, OGS_FATAL, pvma_, and WARN().
|
staticprotected |
Definition at line 235 of file AssemblyMixin.cpp.
Referenced by ProcessLib::AssemblyMixin< Process >::assemble(), and ProcessLib::AssemblyMixin< Process >::assembleWithJacobian().
|
staticprotected |
Definition at line 250 of file AssemblyMixin.cpp.
References ProcessLib::Assembly::SubmeshAssemblyData::bulk_node_ids, and ProcessLib::Assembly::CommonAssemblyData::residuum_vectors.
Referenced by ProcessLib::AssemblyMixin< Process >::assembleOnSubmeshes(), and ProcessLib::AssemblyMixin< Process >::assembleWithJacobianOnSubmeshes().
|
protected |
Definition at line 129 of file AssemblyMixin.cpp.
References bulk_mesh_assembly_data_, DBUG(), submesh_assembly_data_, and submesh_matrix_cache_.
Referenced by ProcessLib::AssemblyMixin< Process >::initializeAssemblyOnSubmeshes().
|
inlineprotected |
Definition at line 45 of file AssemblyMixin.h.
References is_linear_.
Referenced by ProcessLib::ComponentTransport::ComponentTransportProcess::isLinear(), ProcessLib::HeatConduction::HeatConductionProcess::isLinear(), and ProcessLib::ThermoRichardsFlow::ThermoRichardsFlowProcess::isLinear().
|
protected |
Definition at line 159 of file AssemblyMixin.cpp.
References DBUG(), ProcessLib::Process::getActiveElementIDs(), HAS_DEACTIVATED_SUBDOMAINS, ids_state_, NO_DEACTIVATED_SUBDOMAINS, UNINITIALIZED, and updateActiveElementsImpl().
Referenced by ProcessLib::AssemblyMixin< Process >::updateActiveElements().
|
private |
Definition at line 190 of file AssemblyMixin.cpp.
References bulk_mesh_assembly_data_, DBUG(), ProcessLib::Process::getActiveElementIDs(), HAS_DEACTIVATED_SUBDOMAINS, ids_state_, NO_DEACTIVATED_SUBDOMAINS, and submesh_assembly_data_.
Referenced by updateActiveElements().
|
protected |
Empty if submesh assembly is used.
Definition at line 72 of file AssemblyMixin.h.
Referenced by ProcessLib::AssemblyMixin< Process >::assemble(), ProcessLib::AssemblyMixin< Process >::assembleOnBulkMesh(), ProcessLib::AssemblyMixin< Process >::assembleWithJacobian(), initializeAssemblyOnSubmeshes(), and updateActiveElementsImpl().
|
protected |
Definition at line 74 of file AssemblyMixin.h.
Referenced by ProcessLib::AssemblyMixin< Process >::assembleOnBulkMesh().
|
private |
Definition at line 85 of file AssemblyMixin.h.
Referenced by updateActiveElements(), and updateActiveElementsImpl().
|
protected |
If the process/problem being simulated is linear, the assembled global matrices and vectors can be cached and reused.
Definition at line 80 of file AssemblyMixin.h.
Referenced by AssemblyMixinBase(), ProcessLib::AssemblyMixin< Process >::assembleOnBulkMeshOrOnSubmeshCommon(), ProcessLib::AssemblyMixin< Process >::assembleWithJacobian(), and isLinear().
|
protected |
Definition at line 82 of file AssemblyMixin.h.
Referenced by ProcessLib::AssemblyMixin< Process >::assemble(), ProcessLib::AssemblyMixin< Process >::assembleWithJacobian(), and ProcessLib::AssemblyMixin< Process >::preOutput().
|
protected |
Definition at line 76 of file AssemblyMixin.h.
Referenced by AssemblyMixinBase(), ProcessLib::AssemblyMixin< Process >::assembleOnBulkMeshOrOnSubmeshCommon(), and ProcessLib::AssemblyMixin< Process >::assembleWithJacobianOnBulkMeshOrOnSubmeshCommon().
|
protected |
SubmeshAssemblyData for each submesh.
Definition at line 65 of file AssemblyMixin.h.
Referenced by ProcessLib::AssemblyMixin< Process >::assemble(), ProcessLib::AssemblyMixin< Process >::assembleOnSubmeshes(), ProcessLib::AssemblyMixin< Process >::assembleWithJacobian(), ProcessLib::AssemblyMixin< Process >::assembleWithJacobianOnSubmeshes(), initializeAssemblyOnSubmeshes(), and updateActiveElementsImpl().
|
protected |
AssembledMatrixCache for each submesh.
Definition at line 68 of file AssemblyMixin.h.
Referenced by ProcessLib::AssemblyMixin< Process >::assembleOnSubmeshes(), and initializeAssemblyOnSubmeshes().