diff --git a/ProcessLib/SourceTerms/CreateSourceTerm.cpp b/ProcessLib/SourceTerms/CreateSourceTerm.cpp index 14d818ebec0ae83216f2915c7268161d188d0bec..e111766ddc98dfe9bddd3c7c934b6454b45a83b5 100644 --- a/ProcessLib/SourceTerms/CreateSourceTerm.cpp +++ b/ProcessLib/SourceTerms/CreateSourceTerm.cpp @@ -29,6 +29,35 @@ std::unique_ptr<SourceTerm> createSourceTerm( //! \ogs_file_param{prj__process_variables__process_variable__source_terms__source_term__type} auto const type = config.config.peekConfigParameter<std::string>("type"); + // check basic data consistency + if (variable_id >= + static_cast<int>(dof_table_bulk.getNumberOfVariables()) || + *config.component_id >= + dof_table_bulk.getNumberOfVariableComponents(variable_id)) + { + OGS_FATAL( + "Variable id or component id too high. Actual values: (%d, " + "%d), maximum values: (%d, %d).", + variable_id, *config.component_id, + dof_table_bulk.getNumberOfVariables(), + dof_table_bulk.getNumberOfVariableComponents(variable_id)); + } + + if (!source_term_mesh.getProperties() + .template existsPropertyVector<std::size_t>("bulk_node_ids")) + { + OGS_FATAL( + "The required bulk node ids map does not exist in the " + "source term mesh '%s'.", + source_term_mesh.getName().c_str()); + } + std::vector<MeshLib::Node*> const& source_term_nodes = + source_term_mesh.getNodes(); + DBUG( + "Found %d nodes for source term at mesh '%s' for the variable %d and " + "component %d", + source_term_nodes.size(), source_term_mesh.getName().c_str(), + variable_id, *config.component_id); MeshLib::MeshSubset source_term_mesh_subset(source_term_mesh, source_term_nodes); diff --git a/ProcessLib/SourceTerms/NodalSourceTerm.cpp b/ProcessLib/SourceTerms/NodalSourceTerm.cpp index bac7113a62edc46915f1fa49ad4a90c196c99bc7..5737be3aacdebb9ad08a4b03a5b7ba1a362d127f 100644 --- a/ProcessLib/SourceTerms/NodalSourceTerm.cpp +++ b/ProcessLib/SourceTerms/NodalSourceTerm.cpp @@ -28,13 +28,6 @@ NodalSourceTerm::NodalSourceTerm( _parameter(parameter) { DBUG("Create NodalSourceTerm."); - if (!_st_mesh.getProperties().template existsPropertyVector<std::size_t>( - "bulk_node_ids")) - { - OGS_FATAL( - "Required mesh property \"bulk_node_ids\" does not exists on the " - "source term mesh '%s'.", _st_mesh.getName().c_str()); - } } void NodalSourceTerm::integrate(const double t, GlobalVector const& /*x*/, diff --git a/ProcessLib/SourceTerms/Python/CreatePythonSourceTerm.cpp b/ProcessLib/SourceTerms/Python/CreatePythonSourceTerm.cpp index 924c1bd3f08db57ab4c8550a227a513093dc21fc..e8cb1635fbe7300b2bd9054b2ef1983be1a3a855 100644 --- a/ProcessLib/SourceTerms/Python/CreatePythonSourceTerm.cpp +++ b/ProcessLib/SourceTerms/Python/CreatePythonSourceTerm.cpp @@ -50,16 +50,6 @@ std::unique_ptr<SourceTerm> createPythonSourceTerm( .cast<ProcessLib::SourceTerms::Python:: PythonSourceTermPythonSideInterface*>(); - if (variable_id >= static_cast<int>(dof_table.getNumberOfVariables()) || - component_id >= dof_table.getNumberOfVariableComponents(variable_id)) - { - OGS_FATAL( - "Variable id or component id too high. Actual values: (%d, %d), " - "maximum values: (%d, %d).", - variable_id, component_id, dof_table.getNumberOfVariables(), - dof_table.getNumberOfVariableComponents(variable_id)); - } - // In case of partitioned mesh the source_term could be empty, i.e. there is // no source_term condition. #ifdef USE_PETSC diff --git a/ProcessLib/SourceTerms/VolumetricSourceTerm.cpp b/ProcessLib/SourceTerms/VolumetricSourceTerm.cpp index 4643db5199344ba3f07de59ef5814026d068f136..2656badbd18588272d0bca8ce6e41b55ef971e25 100644 --- a/ProcessLib/SourceTerms/VolumetricSourceTerm.cpp +++ b/ProcessLib/SourceTerms/VolumetricSourceTerm.cpp @@ -22,24 +22,6 @@ VolumetricSourceTerm::VolumetricSourceTerm( : SourceTerm(std::move(source_term_dof_table)), _volumetric_source_term(volumetric_source_term) { - // check basic data consistency - if (variable_id >= - static_cast<int>(source_term_dof_table.getNumberOfVariables())) - { - OGS_FATAL( - "Variable id too high. Actual value: %d, maximum value: %d.", - variable_id, - source_term_dof_table.getNumberOfVariables()); - } - if (component_id >= - source_term_dof_table.getNumberOfVariableComponents(variable_id)) - { - OGS_FATAL( - "Component id too high. Actual value: %d, maximum value: %d.", - component_id, - source_term_dof_table.getNumberOfVariableComponents(variable_id)); - } - ProcessLib::createLocalAssemblers<VolumetricSourceTermLocalAssembler>( source_term_mesh.getDimension(), source_term_mesh.getElements(), *_source_term_dof_table, shapefunction_order, _local_assemblers,