From 4b1c150d7cddfce599ec4577f0fe485e6205f7bc Mon Sep 17 00:00:00 2001 From: Lea Koeglmeier Date: Fri, 28 Aug 2026 11:34:34 +0200 Subject: [PATCH] Add output of artery element length --- .../4C_art_net_artery_ele_calc_pres_based.cpp | 11 +- .../4C_art_net_artery_ele_calc_pres_based.hpp | 2 + src/art_net/4C_art_net_impl_stationary.cpp | 183 +++--------------- src/art_net/4C_art_net_impl_stationary.hpp | 6 +- ...based_artery_coupling_mono_MP_teko.4C.yaml | 2 + ...opoint_artery_airway_coupling_mono.4C.yaml | 2 +- ...ed_artery_coupling_mono_MP_teko-artery.pvd | 11 ++ .../artery-00004-0.vtu | 56 ++++++ .../artery-00004.pvtu | 21 ++ ...int_artery_airway_coupling_mono-artery.pvd | 28 +-- .../artery-00024-0.vtu | 21 +- .../artery-00024-1.vtu | 21 +- .../artery-00024-2.vtu | 7 +- .../artery-00024.pvtu | 1 + tests/list_of_tests.cmake | 7 +- 15 files changed, 179 insertions(+), 200 deletions(-) create mode 100644 tests/input_files/ref/porofluid_pressure_based_elast_2D_quad4_linebased_artery_coupling_mono_MP_teko-artery.pvd create mode 100644 tests/input_files/ref/porofluid_pressure_based_elast_2D_quad4_linebased_artery_coupling_mono_MP_teko-vtk-files/artery-00004-0.vtu create mode 100644 tests/input_files/ref/porofluid_pressure_based_elast_2D_quad4_linebased_artery_coupling_mono_MP_teko-vtk-files/artery-00004.pvtu rename tests/input_files/ref/{poromultielastscatra_2D_quad4_nodetopoint_artery_airway_coupling_mono-vtk-files => porofluid_pressure_based_elast_scatra_2D_quad4_nodetopoint_artery_airway_coupling_mono-vtk-files}/artery-00024-0.vtu (84%) rename tests/input_files/ref/{poromultielastscatra_2D_quad4_nodetopoint_artery_airway_coupling_mono-vtk-files => porofluid_pressure_based_elast_scatra_2D_quad4_nodetopoint_artery_airway_coupling_mono-vtk-files}/artery-00024-1.vtu (84%) rename tests/input_files/ref/{poromultielastscatra_2D_quad4_nodetopoint_artery_airway_coupling_mono-vtk-files => porofluid_pressure_based_elast_scatra_2D_quad4_nodetopoint_artery_airway_coupling_mono-vtk-files}/artery-00024-2.vtu (91%) rename tests/input_files/ref/{poromultielastscatra_2D_quad4_nodetopoint_artery_airway_coupling_mono-vtk-files => porofluid_pressure_based_elast_scatra_2D_quad4_nodetopoint_artery_airway_coupling_mono-vtk-files}/artery-00024.pvtu (91%) diff --git a/src/art_net/4C_art_net_artery_ele_calc_pres_based.cpp b/src/art_net/4C_art_net_artery_ele_calc_pres_based.cpp index df7a82c7a70..6c3f9510df8 100644 --- a/src/art_net/4C_art_net_artery_ele_calc_pres_based.cpp +++ b/src/art_net/4C_art_net_artery_ele_calc_pres_based.cpp @@ -89,7 +89,7 @@ int Discret::Elements::ArteryEleCalcPresBased::evaluate_service(Artery* switch (action) { case Arteries::calc_flow_pressurebased: - evaluate_flow(ele, discretization, la, elevec1, mat); + evaluate_flow(ele, discretization, la, elevec1, elevec2, mat); break; default: FOUR_C_THROW("Unknown type of action {} for Artery (PressureBased formulation)", action); @@ -203,7 +203,8 @@ void Discret::Elements::ArteryEleCalcPresBased::sysmat(Artery* ele, template void Discret::Elements::ArteryEleCalcPresBased::evaluate_flow(Artery* ele, Core::FE::Discretization& discretization, Core::Elements::LocationArray& la, - Core::LinAlg::SerialDenseVector& flowVec, std::shared_ptr material) + Core::LinAlg::SerialDenseVector& flowVec, Core::LinAlg::SerialDenseVector& ele_length, + std::shared_ptr material) { // get pressure std::shared_ptr> pressnp = @@ -216,12 +217,14 @@ void Discret::Elements::ArteryEleCalcPresBased::evaluate_flow(Artery* e // calculate the element length const double L = calculate_ele_length(ele, discretization, la); + FOUR_C_ASSERT(ele_length.length() == 1, "ele_length must be of size 1"); + ele_length(0) = L; // check here, if we really have an artery !! if (material->material_type() != Core::Materials::m_cnst_art) FOUR_C_THROW("Wrong material type for artery"); - // cast the material to artery material material + // cast the material to artery material const Mat::Cnst1dArt* actmat = static_cast(material.get()); // Read in diameter @@ -233,8 +236,6 @@ void Discret::Elements::ArteryEleCalcPresBased::evaluate_flow(Artery* e // TODO: this works only for line 2 elements flowVec(0) = -hag_pois * (mypress(1) - mypress(0)) / L; - - return; } /*----------------------------------------------------------------------* diff --git a/src/art_net/4C_art_net_artery_ele_calc_pres_based.hpp b/src/art_net/4C_art_net_artery_ele_calc_pres_based.hpp index 63e7e9b2ce2..d2e5c5c1ee7 100644 --- a/src/art_net/4C_art_net_artery_ele_calc_pres_based.hpp +++ b/src/art_net/4C_art_net_artery_ele_calc_pres_based.hpp @@ -92,12 +92,14 @@ namespace Discret \param discretization[in] discretization to which element belongs \param la[in] element location array \param flowVec[in,out] element flow to calculate + \param ele_length[in,out] element length to calculate \param material[in] artery material/dimesion \note only checked for line2 elements */ void evaluate_flow(Artery* ele, Core::FE::Discretization& discretization, Core::Elements::LocationArray& la, Core::LinAlg::SerialDenseVector& flowVec, + Core::LinAlg::SerialDenseVector& ele_length, std::shared_ptr material); /*! diff --git a/src/art_net/4C_art_net_impl_stationary.cpp b/src/art_net/4C_art_net_impl_stationary.cpp index 2817f0f4523..4ae51209213 100644 --- a/src/art_net/4C_art_net_impl_stationary.cpp +++ b/src/art_net/4C_art_net_impl_stationary.cpp @@ -33,16 +33,6 @@ FOUR_C_NAMESPACE_OPEN -//<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>// -//<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>// -//<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>// -/*----------------------------------------------------------------------* - | Constructor (public) kremheller 03/18| - *----------------------------------------------------------------------*/ -//<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>// -//<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>// -//<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>// - Arteries::ArtNetImplStationary::ArtNetImplStationary( std::shared_ptr actdis, const int linsolvernumber, const Teuchos::ParameterList& probparams, const Teuchos::ParameterList& artparams, @@ -68,13 +58,6 @@ Arteries::ArtNetImplStationary::ArtNetImplStationary( -/*----------------------------------------------------------------------* - | Initialize the time integration. | - | kremheller 03/18| - *----------------------------------------------------------------------*/ -//<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>// -//<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>// -//<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>// void Arteries::ArtNetImplStationary::init(const Teuchos::ParameterList& globaltimeparams, const Teuchos::ParameterList& arteryparams, const std::string& scatra_disname) { @@ -136,6 +119,9 @@ void Arteries::ArtNetImplStationary::init(const Teuchos::ParameterList& globalti // for output of volumetric flow ele_volflow_ = std::make_shared>(*discret_->element_row_map()); + // for output of element length + ele_length_ = std::make_shared>(*discret_->element_row_map()); + // for output of element radius ele_radius_ = std::make_shared>(*discret_->element_row_map()); @@ -172,13 +158,6 @@ void Arteries::ArtNetImplStationary::init(const Teuchos::ParameterList& globalti -/*----------------------------------------------------------------------* - | (Linear) Solve. | - | kremheller 03/18| - *----------------------------------------------------------------------*/ -//<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>// -//<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>// -//<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>// void Arteries::ArtNetImplStationary::solve( std::shared_ptr CouplingTo3DParams) { @@ -199,13 +178,6 @@ void Arteries::ArtNetImplStationary::solve( } -/*----------------------------------------------------------------------* - | (Linear) Solve for ScaTra. | - | kremheller 03/18| - *----------------------------------------------------------------------*/ -//<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>// -//<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>// -//<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>// void Arteries::ArtNetImplStationary::solve_scatra() { // print user info @@ -234,13 +206,6 @@ void Arteries::ArtNetImplStationary::solve_scatra() scatra_->scatra_field()->solve(); } -/*----------------------------------------------------------------------* - | Prepare Linear Solve (Apply DBC). | - | kremheller 03/18| - *----------------------------------------------------------------------*/ -//<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>// -//<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>// -//<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>// void Arteries::ArtNetImplStationary::prepare_linear_solve() { // apply map: rhs = pressurenp_ @@ -248,16 +213,7 @@ void Arteries::ArtNetImplStationary::prepare_linear_solve() *sysmat_, *pressureincnp_, *rhs_, *zeros_, *(dbcmaps_->cond_map())); } -//<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>// -//<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>// -//<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>// -/*----------------------------------------------------------------------* - | call elements to calculate system matrix/rhs and assemble | - | kremheller 03/18 | - *----------------------------------------------------------------------*/ -//<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>// -//<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>// -//<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>// + void Arteries::ArtNetImplStationary::assemble_mat_and_rhs() { dtele_ = 0.0; @@ -298,16 +254,7 @@ void Arteries::ArtNetImplStationary::assemble_mat_and_rhs() } // ArtNetExplicitTimeInt::assemble_mat_and_rhs -//<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>// -//<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>// -//<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>// -/*----------------------------------------------------------------------* - | call linear solver | - | kremheller 03/18 | - *----------------------------------------------------------------------*/ -//<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>// -//<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>// -//<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>// + void Arteries::ArtNetImplStationary::linear_solve() { // time measurement: solver @@ -331,15 +278,7 @@ void Arteries::ArtNetImplStationary::linear_solve() } // ArtNetImplStationary::linear_solve -//<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>// -//<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>// -//<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>// -/*----------------------------------------------------------------------* - | Prepare time step (Apply DBC and Neumann) kremheller 03/18| - *----------------------------------------------------------------------*/ -//<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>// -//<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>// -//<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>// + void Arteries::ArtNetImplStationary::prepare_time_step() { // call base class @@ -352,9 +291,6 @@ void Arteries::ArtNetImplStationary::prepare_time_step() apply_neumann_bc(*neumann_loads_); } -/*----------------------------------------------------------------------* - | evaluate Dirichlet boundary conditions at t_{n+1} kremheller 03/18 | - *----------------------------------------------------------------------*/ void Arteries::ArtNetImplStationary::apply_dirichlet_bc() { // time measurement: apply Dirichlet conditions @@ -373,9 +309,7 @@ void Arteries::ArtNetImplStationary::apply_dirichlet_bc() discret_->clear_state(); } -/*----------------------------------------------------------------------* - | reset artery diameter of previous time step kremheller 11/20 | - *----------------------------------------------------------------------*/ + void Arteries::ArtNetImplStationary::reset_artery_diam_previous_time_step() { // set the diameter in material @@ -394,9 +328,6 @@ void Arteries::ArtNetImplStationary::reset_artery_diam_previous_time_step() } } -/*----------------------------------------------------------------------* - | evaluate Neumann boundary conditions kremheller 03/18 | - *----------------------------------------------------------------------*/ void Arteries::ArtNetImplStationary::apply_neumann_bc(Core::LinAlg::Vector& neumann_loads) { // prepare load vector @@ -415,25 +346,13 @@ void Arteries::ArtNetImplStationary::apply_neumann_bc(Core::LinAlg::Vectorupdate(1.0, *neumann_loads_, 1.0); return; } -//<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>// -//<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>// -//<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>// -/*----------------------------------------------------------------------* - | current solution becomes most recent solution of next timestep | - | kremheller 03/18| - *----------------------------------------------------------------------*/ -//<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>// -//<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>// -//<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>// void Arteries::ArtNetImplStationary::time_update() { // reset the artery diameter of the previous time step @@ -448,15 +367,6 @@ void Arteries::ArtNetImplStationary::time_update() return; } // ArtNetExplicitTimeInt::TimeUpdate -//<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>// -//<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>// -//<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>// -/*----------------------------------------------------------------------* - | prepare the time loop kremheller 03/18| - *----------------------------------------------------------------------*/ -//<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>// -//<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>// -//<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>// void Arteries::ArtNetImplStationary::prepare_time_loop() { // call base class @@ -474,8 +384,6 @@ void Arteries::ArtNetImplStationary::prepare_time_loop() return; } -/*----------------------------------------------------------------------* - *----------------------------------------------------------------------*/ void Arteries::ArtNetImplStationary::collect_runtime_output_data() { // write domain decomposition for visualization (only once at step 0!) @@ -491,15 +399,19 @@ void Arteries::ArtNetImplStationary::collect_runtime_output_data() visualization_writer_->append_result_data_vector_with_context( *pressurenp_, Core::IO::OutputEntity::dof, {"pressure"}); - // flow - reconstruct_flow(); + // flow and element length + compute_element_flow_and_length(); visualization_writer_->append_result_data_vector_with_context( *ele_volflow_, Core::IO::OutputEntity::element, {"ele_volflow"}); + + //! reduced elements can change their length (following the deformation of the solid) when coupled + //! to the porofluid_pressure_based* framework + visualization_writer_->append_result_data_vector_with_context( + *ele_length_, Core::IO::OutputEntity::element, {"ele_length"}); } -/*----------------------------------------------------------------------* - *----------------------------------------------------------------------*/ + void Arteries::ArtNetImplStationary::output_restart() const { // step number and time (only after that data output is possible) @@ -510,15 +422,6 @@ void Arteries::ArtNetImplStationary::output_restart() const output_.write_vector("ele_radius", ele_radius_, Core::IO::elementvector); } -//<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>// -//<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>// -//<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>// -/*----------------------------------------------------------------------* - | output of solution vector to binio kremheller 03/18| - *----------------------------------------------------------------------*/ -//<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>// -//<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>// -//<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>// void Arteries::ArtNetImplStationary::output( bool CoupledTo3D, std::shared_ptr CouplingParams) { @@ -540,15 +443,6 @@ void Arteries::ArtNetImplStationary::output( if (step_ % uprestart_ == 0 and step_ != 0) output_restart(); } -//<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>// -//<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>// -//<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>// -/*----------------------------------------------------------------------* - | output of element-based radius kremheller 07/19| - *----------------------------------------------------------------------*/ -//<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>// -//<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>// -//<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>// void Arteries::ArtNetImplStationary::get_radius() { // loop over row elements @@ -566,16 +460,7 @@ void Arteries::ArtNetImplStationary::get_radius() } } -//<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>// -//<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>// -//<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>// -/*----------------------------------------------------------------------* - | output of element volumetric flow kremheller 09/19| - *----------------------------------------------------------------------*/ -//<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>// -//<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>// -//<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>// -void Arteries::ArtNetImplStationary::reconstruct_flow() +void Arteries::ArtNetImplStationary::compute_element_flow_and_length() { Core::LinAlg::SerialDenseMatrix dummyMat; Core::LinAlg::SerialDenseVector dummyVec; @@ -597,22 +482,17 @@ void Arteries::ArtNetImplStationary::reconstruct_flow() Core::Elements::LocationArray la(discret_->num_dof_sets()); actele->location_vector(*discret_, la); Core::LinAlg::SerialDenseVector flowVec(1); + Core::LinAlg::SerialDenseVector ele_length(1); - actele->evaluate(p, *discret_, la, dummyMat, dummyMat, flowVec, dummyVec, dummyVec); + actele->evaluate(p, *discret_, la, dummyMat, dummyMat, flowVec, ele_length, dummyVec); - ele_volflow_->replace_local_value(i, flowVec(0)); + const auto My_Row = discret_->element_row_map()->lid(actele->id()); + ele_volflow_->replace_local_value(My_Row, flowVec(0)); + ele_length_->replace_local_value(My_Row, ele_length(0)); } } -//<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>// -//<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>// -//<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>// -/*----------------------------------------------------------------------* - | test results kremheller 03/18| - *----------------------------------------------------------------------*/ -//<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>// -//<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>// -//<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>// + void Arteries::ArtNetImplStationary::test_results() { std::shared_ptr resulttest = create_field_test(); @@ -624,23 +504,12 @@ void Arteries::ArtNetImplStationary::test_results() Global::Problem::instance()->test_all(discret_->get_comm()); } -/*----------------------------------------------------------------------* - | create result test for this field kremheller 03/18 | - *----------------------------------------------------------------------*/ + std::shared_ptr Arteries::ArtNetImplStationary::create_field_test() { return std::make_shared(*(this)); } -//<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>// -//<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>// -//<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>// -/*----------------------------------------------------------------------* - | read_restart (public) kremheller 03/18| - -----------------------------------------------------------------------*/ -//<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>// -//<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>// -//<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>// void Arteries::ArtNetImplStationary::read_restart(int step, bool coupledTo3D) { coupledTo3D_ = coupledTo3D; @@ -684,9 +553,7 @@ void Arteries::ArtNetImplStationary::read_restart(int step, bool coupledTo3D) scatra_->scatra_field()->read_restart(step); } -/*----------------------------------------------------------------------* - | set initial field for pressure kremheller 04/18 | - *----------------------------------------------------------------------*/ + void Arteries::ArtNetImplStationary::set_initial_field( const ArtDyn::InitialField init, const int startfuncno) { diff --git a/src/art_net/4C_art_net_impl_stationary.hpp b/src/art_net/4C_art_net_impl_stationary.hpp index d4c6e49015a..cdb6349659c 100644 --- a/src/art_net/4C_art_net_impl_stationary.hpp +++ b/src/art_net/4C_art_net_impl_stationary.hpp @@ -98,8 +98,8 @@ namespace Arteries //! get element radius void get_radius(); - //! calculate element volumetric flow - void reconstruct_flow(); + //! calculate element volumetric flow and element length + void compute_element_flow_and_length(); //! set the initial field on the artery discretization void set_initial_field(const ArtDyn::InitialField init, //!< type of initial field @@ -156,6 +156,8 @@ namespace Arteries std::shared_ptr> neumann_loads_; //! volumetric flow (for output) std::shared_ptr> ele_volflow_; + //! element length (for output) + std::shared_ptr> ele_length_; //! element radius (for output) std::shared_ptr> ele_radius_; /// underlying scatra problem diff --git a/tests/input_files/porofluid_pressure_based_elast_2D_quad4_linebased_artery_coupling_mono_MP_teko.4C.yaml b/tests/input_files/porofluid_pressure_based_elast_2D_quad4_linebased_artery_coupling_mono_MP_teko.4C.yaml index a49b492045f..7b3697ec34b 100644 --- a/tests/input_files/porofluid_pressure_based_elast_2D_quad4_linebased_artery_coupling_mono_MP_teko.4C.yaml +++ b/tests/input_files/porofluid_pressure_based_elast_2D_quad4_linebased_artery_coupling_mono_MP_teko.4C.yaml @@ -9,6 +9,8 @@ PROBLEM TYPE: STRUCTURAL DYNAMIC: DYNAMICTYPE: "OneStepTheta" LINEAR_SOLVER: 1 +IO/RUNTIME VTK OUTPUT: + OUTPUT_DATA_FORMAT: ascii porofluid_elasticity_dynamic: total_simulation_time: 0.5 time_integration: diff --git a/tests/input_files/porofluid_pressure_based_elast_scatra_2D_quad4_nodetopoint_artery_airway_coupling_mono.4C.yaml b/tests/input_files/porofluid_pressure_based_elast_scatra_2D_quad4_nodetopoint_artery_airway_coupling_mono.4C.yaml index 42986fa4917..aa0c6764087 100644 --- a/tests/input_files/porofluid_pressure_based_elast_scatra_2D_quad4_nodetopoint_artery_airway_coupling_mono.4C.yaml +++ b/tests/input_files/porofluid_pressure_based_elast_scatra_2D_quad4_nodetopoint_artery_airway_coupling_mono.4C.yaml @@ -7,7 +7,7 @@ PROBLEM SIZE: PROBLEM TYPE: PROBLEMTYPE: "porofluid_pressure_based_elasticity_scatra" IO/RUNTIME VTK OUTPUT: - OUTPUT_DATA_FORMAT: binary + OUTPUT_DATA_FORMAT: ascii porofluid_elasticity_scatra_dynamic: total_simulation_time: 2.5 time_integration: diff --git a/tests/input_files/ref/porofluid_pressure_based_elast_2D_quad4_linebased_artery_coupling_mono_MP_teko-artery.pvd b/tests/input_files/ref/porofluid_pressure_based_elast_2D_quad4_linebased_artery_coupling_mono_MP_teko-artery.pvd new file mode 100644 index 00000000000..05974579dcd --- /dev/null +++ b/tests/input_files/ref/porofluid_pressure_based_elast_2D_quad4_linebased_artery_coupling_mono_MP_teko-artery.pvd @@ -0,0 +1,11 @@ + + + + + + + + + \ No newline at end of file diff --git a/tests/input_files/ref/porofluid_pressure_based_elast_2D_quad4_linebased_artery_coupling_mono_MP_teko-vtk-files/artery-00004-0.vtu b/tests/input_files/ref/porofluid_pressure_based_elast_2D_quad4_linebased_artery_coupling_mono_MP_teko-vtk-files/artery-00004-0.vtu new file mode 100644 index 00000000000..7b9831977ff --- /dev/null +++ b/tests/input_files/ref/porofluid_pressure_based_elast_2D_quad4_linebased_artery_coupling_mono_MP_teko-vtk-files/artery-00004-0.vtu @@ -0,0 +1,56 @@ + + + + + + +4.000000000000000e-01 + + + + + + +-5.000000000000000e-01 -5.000000000000000e-01 0.000000000000000e+00 +-5.000000000000000e-01 5.000000000000000e-01 0.000000000000000e+00 + + + + + +0 1 + + +2 + + +3 + + + + + +2.500000000000000e-01 +7.500000000000000e-01 + + + + +0.000000000000000e+00 + + +2.200000000000110e+00 + + +1.200000000000000e+01 + + +-4.626709180741099e+04 + + + + + + diff --git a/tests/input_files/ref/porofluid_pressure_based_elast_2D_quad4_linebased_artery_coupling_mono_MP_teko-vtk-files/artery-00004.pvtu b/tests/input_files/ref/porofluid_pressure_based_elast_2D_quad4_linebased_artery_coupling_mono_MP_teko-vtk-files/artery-00004.pvtu new file mode 100644 index 00000000000..879254612dc --- /dev/null +++ b/tests/input_files/ref/porofluid_pressure_based_elast_2D_quad4_linebased_artery_coupling_mono_MP_teko-vtk-files/artery-00004.pvtu @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + diff --git a/tests/input_files/ref/porofluid_pressure_based_elast_scatra_2D_quad4_nodetopoint_artery_airway_coupling_mono-artery.pvd b/tests/input_files/ref/porofluid_pressure_based_elast_scatra_2D_quad4_nodetopoint_artery_airway_coupling_mono-artery.pvd index e0ed1bbd060..52a4d6c4c81 100644 --- a/tests/input_files/ref/porofluid_pressure_based_elast_scatra_2D_quad4_nodetopoint_artery_airway_coupling_mono-artery.pvd +++ b/tests/input_files/ref/porofluid_pressure_based_elast_scatra_2D_quad4_nodetopoint_artery_airway_coupling_mono-artery.pvd @@ -4,18 +4,18 @@ --> - - - - - - - - - - - - - + + + + + + + + + + + + + - + \ No newline at end of file diff --git a/tests/input_files/ref/poromultielastscatra_2D_quad4_nodetopoint_artery_airway_coupling_mono-vtk-files/artery-00024-0.vtu b/tests/input_files/ref/porofluid_pressure_based_elast_scatra_2D_quad4_nodetopoint_artery_airway_coupling_mono-vtk-files/artery-00024-0.vtu similarity index 84% rename from tests/input_files/ref/poromultielastscatra_2D_quad4_nodetopoint_artery_airway_coupling_mono-vtk-files/artery-00024-0.vtu rename to tests/input_files/ref/porofluid_pressure_based_elast_scatra_2D_quad4_nodetopoint_artery_airway_coupling_mono-vtk-files/artery-00024-0.vtu index cfd46273b83..6000a50fa80 100644 --- a/tests/input_files/ref/poromultielastscatra_2D_quad4_nodetopoint_artery_airway_coupling_mono-vtk-files/artery-00024-0.vtu +++ b/tests/input_files/ref/porofluid_pressure_based_elast_scatra_2D_quad4_nodetopoint_artery_airway_coupling_mono-vtk-files/artery-00024-0.vtu @@ -37,11 +37,11 @@ 1.300000000000000e+00 -1.275205783587330e+00 -1.275205783587330e+00 -1.243599235259219e+00 -1.275205783587330e+00 -1.243599235259218e+00 +1.275205783587201e+00 +1.275205783587201e+00 +1.243599235258923e+00 +1.275205783587201e+00 +1.243599235258927e+00 @@ -49,6 +49,11 @@ 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 + + +9.999999999999998e-02 +2.549509756796393e-01 +2.549509756796393e-01 2.500000000000000e-02 @@ -56,9 +61,9 @@ 2.500000000000000e-02 -9.508462906928656e-03 -4.754231453464181e-03 -4.754231453464448e-03 +9.508462906978045e-03 +4.754231453489330e-03 +4.754231453488762e-03 diff --git a/tests/input_files/ref/poromultielastscatra_2D_quad4_nodetopoint_artery_airway_coupling_mono-vtk-files/artery-00024-1.vtu b/tests/input_files/ref/porofluid_pressure_based_elast_scatra_2D_quad4_nodetopoint_artery_airway_coupling_mono-vtk-files/artery-00024-1.vtu similarity index 84% rename from tests/input_files/ref/poromultielastscatra_2D_quad4_nodetopoint_artery_airway_coupling_mono-vtk-files/artery-00024-1.vtu rename to tests/input_files/ref/porofluid_pressure_based_elast_scatra_2D_quad4_nodetopoint_artery_airway_coupling_mono-vtk-files/artery-00024-1.vtu index e5e4535e47b..9817be49f10 100644 --- a/tests/input_files/ref/poromultielastscatra_2D_quad4_nodetopoint_artery_airway_coupling_mono-vtk-files/artery-00024-1.vtu +++ b/tests/input_files/ref/porofluid_pressure_based_elast_scatra_2D_quad4_nodetopoint_artery_airway_coupling_mono-vtk-files/artery-00024-1.vtu @@ -37,11 +37,11 @@ 1.200000000000000e+00 -1.212397108206685e+00 -1.212397108206685e+00 -1.243389878723394e+00 -1.212397108206685e+00 -1.243389878723399e+00 +1.212397108206601e+00 +1.212397108206601e+00 +1.243389878723104e+00 +1.212397108206601e+00 +1.243389878723102e+00 @@ -49,6 +49,11 @@ 1.000000000000000e+00 1.000000000000000e+00 1.000000000000000e+00 + + +4.999999999999999e-02 +2.500000000000000e-01 +2.500000000000000e-01 2.500000000000000e-02 @@ -56,9 +61,9 @@ 2.500000000000000e-02 --9.508462907196888e-03 --4.754231453598051e-03 --4.754231453598800e-03 +-9.508462907132682e-03 +-4.754231453566442e-03 +-4.754231453566135e-03 diff --git a/tests/input_files/ref/poromultielastscatra_2D_quad4_nodetopoint_artery_airway_coupling_mono-vtk-files/artery-00024-2.vtu b/tests/input_files/ref/porofluid_pressure_based_elast_scatra_2D_quad4_nodetopoint_artery_airway_coupling_mono-vtk-files/artery-00024-2.vtu similarity index 91% rename from tests/input_files/ref/poromultielastscatra_2D_quad4_nodetopoint_artery_airway_coupling_mono-vtk-files/artery-00024-2.vtu rename to tests/input_files/ref/porofluid_pressure_based_elast_scatra_2D_quad4_nodetopoint_artery_airway_coupling_mono-vtk-files/artery-00024-2.vtu index 2299ab874e2..35334c4ae2d 100644 --- a/tests/input_files/ref/poromultielastscatra_2D_quad4_nodetopoint_artery_airway_coupling_mono-vtk-files/artery-00024-2.vtu +++ b/tests/input_files/ref/porofluid_pressure_based_elast_scatra_2D_quad4_nodetopoint_artery_airway_coupling_mono-vtk-files/artery-00024-2.vtu @@ -41,7 +41,7 @@ 2.792432562498998e-01 3.454759569079509e-04 2.792432562498998e-01 -3.454759569079510e-04 +3.454759569079509e-04 @@ -49,6 +49,11 @@ 2.000000000000000e+00 2.000000000000000e+00 2.000000000000000e+00 + + +9.999999999999998e-02 +2.549509756796393e-01 +2.549509756796393e-01 2.500000000000000e-02 diff --git a/tests/input_files/ref/poromultielastscatra_2D_quad4_nodetopoint_artery_airway_coupling_mono-vtk-files/artery-00024.pvtu b/tests/input_files/ref/porofluid_pressure_based_elast_scatra_2D_quad4_nodetopoint_artery_airway_coupling_mono-vtk-files/artery-00024.pvtu similarity index 91% rename from tests/input_files/ref/poromultielastscatra_2D_quad4_nodetopoint_artery_airway_coupling_mono-vtk-files/artery-00024.pvtu rename to tests/input_files/ref/porofluid_pressure_based_elast_scatra_2D_quad4_nodetopoint_artery_airway_coupling_mono-vtk-files/artery-00024.pvtu index 5c544dfc2d9..e5fd8746d0f 100644 --- a/tests/input_files/ref/poromultielastscatra_2D_quad4_nodetopoint_artery_airway_coupling_mono-vtk-files/artery-00024.pvtu +++ b/tests/input_files/ref/porofluid_pressure_based_elast_scatra_2D_quad4_nodetopoint_artery_airway_coupling_mono-vtk-files/artery-00024.pvtu @@ -12,6 +12,7 @@ + diff --git a/tests/list_of_tests.cmake b/tests/list_of_tests.cmake index eafe9bd779a..9f85efb3285 100644 --- a/tests/list_of_tests.cmake +++ b/tests/list_of_tests.cmake @@ -1443,7 +1443,8 @@ __four_c_test_restart(BASED_ON ${current} SAME_FILE NP 2 RESTART_STEP 1) four_c_test(TEST_FILE porofluid_pressure_based_3D_tet4.4C.yaml NP 2 RETURN_AS current) __four_c_test_restart(BASED_ON ${current} SAME_FILE NP 2 RESTART_STEP 14) four_c_test(TEST_FILE porofluid_pressure_based_elast_2D_quad4_3_fluids_2_volfrac_mono_FD.4C.yaml) -four_c_test(TEST_FILE porofluid_pressure_based_elast_2D_quad4_linebased_artery_coupling_mono_MP_teko.4C.yaml) +four_c_test(TEST_FILE porofluid_pressure_based_elast_2D_quad4_linebased_artery_coupling_mono_MP_teko.4C.yaml RETURN_AS current) +__four_c_test_vtk(BASED_ON ${current} PVD_RESULT xxx-artery.pvd PVD_REFERENCE ref/porofluid_pressure_based_elast_2D_quad4_linebased_artery_coupling_mono_MP_teko-artery.pvd TOLERANCE 1e-08 TIME_STEPS 0.4) four_c_test(TEST_FILE porofluid_pressure_based_elast_2D_quad4_mono.4C.yaml NP 2 RETURN_AS current) __four_c_test_restart(BASED_ON ${current} SAME_FILE NP 2 RESTART_STEP 4) four_c_test(TEST_FILE porofluid_pressure_based_elast_2D_quad4_mono_FD.4C.yaml) @@ -1571,8 +1572,8 @@ four_c_test(TEST_FILE reduced_lung_3_aw_2_tu.4C.yaml REQUIRED_DEPENDENCIES VTK) four_c_test(TEST_FILE reduced_lung_3_aw_2_tu.4C.yaml NP 3 REQUIRED_DEPENDENCIES VTK) four_c_test(TEST_FILE reduced_lung_3_aw_2_tu_pleural_pressure.4C.yaml REQUIRED_DEPENDENCIES VTK) four_c_test( - TEST_FILE reduced_lung_3_aw_2_tu_pleural_pressure.4C.yaml NP 3 REQUIRED_DEPENDENCIES VTK - ) + TEST_FILE reduced_lung_3_aw_2_tu_pleural_pressure.4C.yaml NP 3 REQUIRED_DEPENDENCIES VTK +) four_c_test(TEST_FILE reduced_lung_3_aw_2_tu_4elemax_and_kv.4C.yaml REQUIRED_DEPENDENCIES VTK) four_c_test(TEST_FILE reduced_lung_3_aw_2_tu_4elemax_and_kv.4C.yaml NP 3 REQUIRED_DEPENDENCIES VTK) four_c_test(TEST_FILE reduced_lung_terminal_unit.4C.yaml REQUIRED_DEPENDENCIES VTK)