Skip to content
Snippets Groups Projects
Commit e4845e76 authored by wenqing's avatar wenqing Committed by Lars Bilke
Browse files

[TRM] Enabled parallel computing with Taylor Hood elements

parent 64fe89d8
No related branches found
No related tags found
No related merge requests found
...@@ -178,13 +178,20 @@ std::unique_ptr<Process> createThermoRichardsMechanicsProcess( ...@@ -178,13 +178,20 @@ std::unique_ptr<Process> createThermoRichardsMechanicsProcess(
mass_lumping = *mass_lumping_ptr; mass_lumping = *mass_lumping_ptr;
} }
const bool use_TaylorHood_elements =
variable_p->getShapeFunctionOrder() !=
variable_u->getShapeFunctionOrder()
? true
: false;
ThermoRichardsMechanicsProcessData<DisplacementDim> process_data{ ThermoRichardsMechanicsProcessData<DisplacementDim> process_data{
materialIDs(mesh), materialIDs(mesh),
std::move(media_map), std::move(media_map),
std::move(solid_constitutive_relations), std::move(solid_constitutive_relations),
initial_stress, initial_stress,
specific_body_force, specific_body_force,
mass_lumping}; mass_lumping,
use_TaylorHood_elements};
SecondaryVariableCollection secondary_variables; SecondaryVariableCollection secondary_variables;
......
...@@ -109,12 +109,12 @@ template <int DisplacementDim> ...@@ -109,12 +109,12 @@ template <int DisplacementDim>
void ThermoRichardsMechanicsProcess<DisplacementDim>::constructDofTable() void ThermoRichardsMechanicsProcess<DisplacementDim>::constructDofTable()
{ {
// Create single component dof in every of the mesh's nodes. // Create single component dof in every of the mesh's nodes.
_mesh_subset_all_nodes = _mesh_subset_all_nodes = std::make_unique<MeshLib::MeshSubset>(
std::make_unique<MeshLib::MeshSubset>(_mesh, _mesh.getNodes()); _mesh, _mesh.getNodes(), process_data_.use_TaylorHood_elements);
// Create single component dof in the mesh's base nodes. // Create single component dof in the mesh's base nodes.
base_nodes_ = MeshLib::getBaseNodes(_mesh.getElements()); base_nodes_ = MeshLib::getBaseNodes(_mesh.getElements());
mesh_subset_base_nodes_ = mesh_subset_base_nodes_ = std::make_unique<MeshLib::MeshSubset>(
std::make_unique<MeshLib::MeshSubset>(_mesh, base_nodes_); _mesh, base_nodes_, process_data_.use_TaylorHood_elements);
// TODO move the two data members somewhere else. // TODO move the two data members somewhere else.
// for extrapolation of secondary variables of stress or strain // for extrapolation of secondary variables of stress or strain
......
...@@ -53,6 +53,8 @@ struct ThermoRichardsMechanicsProcessData ...@@ -53,6 +53,8 @@ struct ThermoRichardsMechanicsProcessData
bool const apply_mass_lumping; bool const apply_mass_lumping;
const bool use_TaylorHood_elements;
MeshLib::PropertyVector<double>* element_saturation = nullptr; MeshLib::PropertyVector<double>* element_saturation = nullptr;
MeshLib::PropertyVector<double>* element_porosity = nullptr; MeshLib::PropertyVector<double>* element_porosity = nullptr;
MeshLib::PropertyVector<double>* element_stresses = nullptr; MeshLib::PropertyVector<double>* element_stresses = nullptr;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment