From ebeb73f79d7444fc39e8734d153817cd96c7c237 Mon Sep 17 00:00:00 2001 From: Dmitri Naumov <dmitri.naumov@ufz.de> Date: Thu, 20 Jul 2017 11:44:22 +0200 Subject: [PATCH] [PL] LIE/HM: Add frac.rel.displ. and shear stress properties. New mesh properties for fracture relative displacement and shear stress in the additional coordinate for output. --- .../LIE/HydroMechanics/HydroMechanicsProcess.cpp | 16 ++++++++++++++++ .../HydroMechanics/HydroMechanicsProcessData.h | 2 ++ .../HydroMechanicsLocalAssemblerFracture-impl.h | 7 +++++++ 3 files changed, 25 insertions(+) diff --git a/ProcessLib/LIE/HydroMechanics/HydroMechanicsProcess.cpp b/ProcessLib/LIE/HydroMechanics/HydroMechanicsProcess.cpp index ee45167a7e3..93c9ad95d2a 100644 --- a/ProcessLib/LIE/HydroMechanics/HydroMechanicsProcess.cpp +++ b/ProcessLib/LIE/HydroMechanics/HydroMechanicsProcess.cpp @@ -372,6 +372,22 @@ void HydroMechanicsProcess<GlobalDim>::initializeConcreteProcess( "nodal_aperture", MeshLib::MeshItemType::Node, 1); mesh_prop_nodal_b->resize(mesh.getNumberOfNodes()); _process_data.mesh_prop_nodal_b = mesh_prop_nodal_b; + + if (GlobalDim == 3) + { + auto mesh_prop_w_s2 = MeshLib::getOrCreateMeshProperty<double>( + const_cast<MeshLib::Mesh&>(mesh), "w_s2", + MeshLib::MeshItemType::Cell, 1); + mesh_prop_w_s2->resize(mesh.getNumberOfElements()); + _process_data.mesh_prop_w_s2 = mesh_prop_w_s2; + + auto mesh_prop_fracture_stress_shear2 = MeshLib::getOrCreateMeshProperty<double>( + const_cast<MeshLib::Mesh&>(mesh), + "f_stress_s2", MeshLib::MeshItemType::Cell, 1); + mesh_prop_fracture_stress_shear2->resize(mesh.getNumberOfElements()); + _process_data.mesh_prop_fracture_stress_shear2 = + mesh_prop_fracture_stress_shear2; + } } } diff --git a/ProcessLib/LIE/HydroMechanics/HydroMechanicsProcessData.h b/ProcessLib/LIE/HydroMechanics/HydroMechanicsProcessData.h index a9bd8d1176a..e394ad56c2f 100644 --- a/ProcessLib/LIE/HydroMechanics/HydroMechanicsProcessData.h +++ b/ProcessLib/LIE/HydroMechanics/HydroMechanicsProcessData.h @@ -143,7 +143,9 @@ struct HydroMechanicsProcessData MeshLib::PropertyVector<double>* mesh_prop_k_f = nullptr; MeshLib::PropertyVector<double>* mesh_prop_w_n = nullptr; MeshLib::PropertyVector<double>* mesh_prop_w_s = nullptr; + MeshLib::PropertyVector<double>* mesh_prop_w_s2 = nullptr; MeshLib::PropertyVector<double>* mesh_prop_fracture_stress_shear = nullptr; + MeshLib::PropertyVector<double>* mesh_prop_fracture_stress_shear2 = nullptr; MeshLib::PropertyVector<double>* mesh_prop_fracture_stress_normal = nullptr; MeshLib::PropertyVector<double>* mesh_prop_fracture_shear_failure = nullptr; MeshLib::PropertyVector<double>* mesh_prop_nodal_w = nullptr; diff --git a/ProcessLib/LIE/HydroMechanics/LocalAssembler/HydroMechanicsLocalAssemblerFracture-impl.h b/ProcessLib/LIE/HydroMechanics/LocalAssembler/HydroMechanicsLocalAssemblerFracture-impl.h index 8297ccddadc..0b9ca3f5380 100644 --- a/ProcessLib/LIE/HydroMechanics/LocalAssembler/HydroMechanicsLocalAssemblerFracture-impl.h +++ b/ProcessLib/LIE/HydroMechanics/LocalAssembler/HydroMechanicsLocalAssemblerFracture-impl.h @@ -394,6 +394,13 @@ computeSecondaryVariableConcreteWithVector( (*_process_data.mesh_prop_fracture_stress_normal)[element_id] = ele_sigma_eff[index_normal]; (*_process_data.mesh_prop_fracture_stress_shear)[element_id] = ele_sigma_eff[0]; (*_process_data.mesh_prop_fracture_shear_failure)[element_id] = ele_Fs; + + if (GlobalDim == 3) + { + (*_process_data.mesh_prop_w_s2)[element_id] = ele_w[1]; + (*_process_data.mesh_prop_fracture_stress_shear2)[element_id] = + ele_sigma_eff[1]; + } } } // namespace HydroMechanics -- GitLab