diff --git a/Documentation/ProjectFile/prj/process_variables/process_variable/source_terms/source_term/Line/c_Line.md b/Documentation/ProjectFile/prj/process_variables/process_variable/source_terms/source_term/Line/c_Line.md new file mode 100644 index 0000000000000000000000000000000000000000..cc2721738f63d5796b3233579f5a97760f3f8507 --- /dev/null +++ b/Documentation/ProjectFile/prj/process_variables/process_variable/source_terms/source_term/Line/c_Line.md @@ -0,0 +1 @@ +Declares a source term that is defined on a line shaped domain. diff --git a/Documentation/ProjectFile/prj/process_variables/process_variable/source_terms/source_term/Line/t_parameter.md b/Documentation/ProjectFile/prj/process_variables/process_variable/source_terms/source_term/Line/t_parameter.md new file mode 100644 index 0000000000000000000000000000000000000000..b8886c8623f3ce72d8e2b8e4e3fff3856546d6b1 --- /dev/null +++ b/Documentation/ProjectFile/prj/process_variables/process_variable/source_terms/source_term/Line/t_parameter.md @@ -0,0 +1,4 @@ +The name of the parameter that defines the value that should be used for the source +term. The parameter have to defined on the line domain. + +The user should carefully check which physical quantity that parameter is. diff --git a/ProcessLib/HeatConduction/Tests.cmake b/ProcessLib/HeatConduction/Tests.cmake index b01022124634ca36b9ac9eb9694dbcfe79e4a560..2916257e645b6fcbfd62fe39b570114021b8ddcf 100644 --- a/ProcessLib/HeatConduction/Tests.cmake +++ b/ProcessLib/HeatConduction/Tests.cmake @@ -127,3 +127,112 @@ AddTest( t2_1D2bt_pcs_0_ts_1500_t_3888.000000.vtu t2_1D2bt_pcs_0_ts_1500_t_3888.000000.vtu temperature temperature 10e-12 0.0 REQUIREMENTS NOT OGS_USE_MPI ) + +AddTest( + NAME HeatConduction_1D_LineSourceTerm + PATH + Parabolic/T/1D_line_source_term_tests/ + EXECUTABLE ogs + EXECUTABLE_ARGS line_source_term.prj + TESTER vtkdiff + DIFF_DATA + mesh_1_line_100.vtu source_term_at_entire_line_pcs_0_ts_1_t_1.000000.vtu analytical_temperature temperature 1e-13 1e-13 + REQUIREMENTS NOT OGS_USE_MPI +) + +# tests for line source term implementation +AddTest( + NAME HeatConduction_2D_LineSourceTermLeft + PATH Parabolic/T/2D_source_term_tests/line_source_term_left + EXECUTABLE ogs + EXECUTABLE_ARGS source_term_left.prj + TESTER vtkdiff + DIFF_DATA + source_term_left_pcs_0_ts_1_t_1.000000.vtu source_term_left_pcs_0_ts_1_t_1.000000.vtu temperature temperature 1e-15 0.0 + source_term_left_pcs_0_ts_1_t_1.000000.vtu source_term_left_pcs_0_ts_1_t_1.000000.vtu heat_flux_x heat_flux_x 1e-15 0.0 + REQUIREMENTS NOT OGS_USE_MPI +) + +# For the special setup with a 'dirac' line source term at x=0.5 the +# analytical solution in 2 dimensions is valid: +# u(x,y) = -ln(sqrt((x-0.5)^2))/(2 * Pi) +AddTest( + NAME HeatConduction_2D_LineSourceTermMiddle + PATH Parabolic/T/2D_source_term_tests/line_source_term_x_0.5 + EXECUTABLE ogs + EXECUTABLE_ARGS line_source_term_x_0.5.prj + TESTER vtkdiff + DIFF_DATA + source_term_middle_pcs_0_ts_1_t_1.000000.vtu source_term_middle_pcs_0_ts_1_t_1.000000.vtu temperature temperature 4e-15 2e-14 + source_term_middle_pcs_0_ts_1_t_1.000000.vtu source_term_middle_pcs_0_ts_1_t_1.000000.vtu heat_flux_x heat_flux_x 7e-14 0.0 + REQUIREMENTS NOT OGS_USE_MPI +) + +AddTest( + NAME HeatConduction_2D_LineSourceTermMiddle_Restricted + PATH + Parabolic/T/2D_source_term_tests/line_source_term_x_0.5_restricted_to_middle + EXECUTABLE ogs + EXECUTABLE_ARGS line_source_term_x_0.5.prj + TESTER vtkdiff + DIFF_DATA + source_term_middle_restricted_pcs_0_ts_1_t_1.000000.vtu source_term_middle_restricted_pcs_0_ts_1_t_1.000000.vtu temperature temperature 1e-15 0.0 + source_term_middle_restricted_pcs_0_ts_1_t_1.000000.vtu source_term_middle_restricted_pcs_0_ts_1_t_1.000000.vtu heat_flux_x heat_flux_x 3e-15 4e-7 + REQUIREMENTS NOT OGS_USE_MPI +) + +# tests for line source term implementation on a cubic domain +AddTest( + NAME HeatConduction_3D_LineSourceTermMiddle + PATH + Parabolic/T/3D_line_source_term_tests/3D_line_source_term_middle + EXECUTABLE ogs + EXECUTABLE_ARGS line_source_term_x_0.5_y_0.5.prj + TESTER vtkdiff + DIFF_DATA + 3D_line_source_term_pcs_0_ts_1_t_1.000000.vtu 3D_line_source_term_pcs_0_ts_1_t_1.000000.vtu temperature temperature 1e-15 0.0 + 3D_line_source_term_pcs_0_ts_1_t_1.000000.vtu 3D_line_source_term_pcs_0_ts_1_t_1.000000.vtu heat_flux_x heat_flux_x 7e-15 7e-13 + REQUIREMENTS NOT OGS_USE_MPI +) + +# tests for line source term implementation on a cubic domain +AddTest( + NAME HeatConduction_3D_LineSourceTermMiddle_Restricted + PATH + Parabolic/T/3D_line_source_term_tests/3D_line_source_term_middle_restricted + EXECUTABLE ogs + EXECUTABLE_ARGS line_source_term_x_0.5_y_0.5_restricted.prj + TESTER vtkdiff + DIFF_DATA + 3D_line_source_term_restricted_pcs_0_ts_1_t_1.000000.vtu 3D_line_source_term_restricted_pcs_0_ts_1_t_1.000000.vtu temperature temperature 1e-15 0.0 + 3D_line_source_term_restricted_pcs_0_ts_1_t_1.000000.vtu 3D_line_source_term_restricted_pcs_0_ts_1_t_1.000000.vtu heat_flux_x heat_flux_x 1.1e-15 5e-12 + REQUIREMENTS NOT OGS_USE_MPI +) + +# tests for line source term implementation on a cylindrical domain +# For the special setup with a line source term at position (xi, eta) the +# analytical solution in 2 dimensions is valid: +# u(x,y) = -ln(sqrt((x-xi)^2+(y-eta)^2))/(2 * Pi) +AddTest( + NAME HeatConduction_3D_LineSourceTermInMiddleOfCylinder_49k_prisms + PATH + Parabolic/T/3D_line_source_term_tests/3D_line_source_term_in_cylinder/49k_prisms + EXECUTABLE ogs + EXECUTABLE_ARGS line_source_term_in_cylinder.prj + TESTER vtkdiff + DIFF_DATA + Cylinder_r_1_h_1_prism_49k.vtu 3D_line_source_term_in_cylinder_49k_pcs_0_ts_1_t_1.000000.vtu analytical_solution_temperature temperature 0.2 0.0 + REQUIREMENTS NOT OGS_USE_MPI +) + +AddTest( + NAME LARGE_HeatConduction_3D_LineSourceTermInMiddleOfCylinder_286k_prisms + PATH + Parabolic/T/3D_line_source_term_tests/3D_line_source_term_in_cylinder/286k_prisms + EXECUTABLE ogs + EXECUTABLE_ARGS line_source_term_in_cylinder.prj + TESTER vtkdiff + DIFF_DATA + Cylinder_r_1_h_1_prism_286k.vtu 3D_line_source_term_in_cylinder_286k_pcs_0_ts_1_t_1.000000.vtu analytical_solution_temperature temperature 4e-3 0.0 + REQUIREMENTS NOT OGS_USE_MPI +) diff --git a/ProcessLib/SourceTerms/CreateLineSourceTerm.cpp b/ProcessLib/SourceTerms/CreateLineSourceTerm.cpp new file mode 100644 index 0000000000000000000000000000000000000000..6217e64fe02f346bab48960700b002e76fac56b5 --- /dev/null +++ b/ProcessLib/SourceTerms/CreateLineSourceTerm.cpp @@ -0,0 +1,49 @@ +/** + * \file + * \copyright + * Copyright (c) 2012-2019, OpenGeoSys Community (http://www.opengeosys.org) + * Distributed under a Modified BSD License. + * See accompanying file LICENSE.txt or + * http://www.opengeosys.org/project/license + * + */ + +#include "CreateLineSourceTerm.h" + +#include "BaseLib/ConfigTree.h" +#include "BaseLib/FileTools.h" +#include "MeshLib/Mesh.h" +#include "NumLib/DOF/LocalToGlobalIndexMap.h" +#include "ParameterLib/Utils.h" +#include "LineSourceTerm.h" + +namespace ProcessLib +{ +std::unique_ptr<SourceTerm> createLineSourceTerm( + BaseLib::ConfigTree const& config, unsigned const bulk_mesh_dimension, + MeshLib::Mesh const& source_term_mesh, + std::unique_ptr<NumLib::LocalToGlobalIndexMap> source_term_dof_table, + std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters, + unsigned const integration_order, unsigned const shapefunction_order) +{ + //! \ogs_file_param{prj__process_variables__process_variable__source_terms__source_term__type} + config.checkConfigParameter("type", "Line"); + + DBUG("Constructing LineSourceTerm from config."); + + // source term field name + auto const& line_source_term_parameter_name = + //! \ogs_file_param{prj__process_variables__process_variable__source_terms__source_term__Line__parameter} + config.getConfigParameter<std::string>("parameter"); + auto& line_source_term = ParameterLib::findParameter<double>( + line_source_term_parameter_name, parameters, 1, &source_term_mesh); + + DBUG("Using '%s' as line source term parameter.", + line_source_term.name.c_str()); + + return std::make_unique<LineSourceTerm>( + bulk_mesh_dimension, source_term_mesh, std::move(source_term_dof_table), + integration_order, shapefunction_order, line_source_term); +} + +} // namespace ProcessLib diff --git a/ProcessLib/SourceTerms/CreateLineSourceTerm.h b/ProcessLib/SourceTerms/CreateLineSourceTerm.h new file mode 100644 index 0000000000000000000000000000000000000000..864dbb9c766ae158a6f201d6feb6c6905d22d4ed --- /dev/null +++ b/ProcessLib/SourceTerms/CreateLineSourceTerm.h @@ -0,0 +1,47 @@ +/** + * \file + * \copyright + * Copyright (c) 2012-2019, OpenGeoSys Community (http://www.opengeosys.org) + * Distributed under a Modified BSD License. + * See accompanying file LICENSE.txt or + * http://www.opengeosys.org/project/license + * + */ + +#pragma once + +#include <memory> +#include <vector> + +namespace BaseLib +{ +class ConfigTree; +} + +namespace MeshLib +{ +class Mesh; +} + +namespace NumLib +{ +class LocalToGlobalIndexMap; +} + +namespace ParameterLib +{ +struct ParameterBase; +} + +namespace ProcessLib +{ +class SourceTerm; + +std::unique_ptr<SourceTerm> createLineSourceTerm( + BaseLib::ConfigTree const& config, unsigned const bulk_mesh_dimension, + MeshLib::Mesh const& source_term_mesh, + std::unique_ptr<NumLib::LocalToGlobalIndexMap> source_term_dof_table, + std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters, + unsigned const integration_order, unsigned const shapefunction_order); + +} // namespace ProcessLib diff --git a/ProcessLib/SourceTerms/CreateSourceTerm.cpp b/ProcessLib/SourceTerms/CreateSourceTerm.cpp index 1503692a4895874b443c715c1ba0a85416ef0a28..8676c51a14a9bcb2f2f7059df656f2f47e2711bf 100644 --- a/ProcessLib/SourceTerms/CreateSourceTerm.cpp +++ b/ProcessLib/SourceTerms/CreateSourceTerm.cpp @@ -10,6 +10,7 @@ #include "CreateSourceTerm.h" +#include "CreateLineSourceTerm.h" #include "CreateNodalSourceTerm.h" #include "CreateVolumetricSourceTerm.h" #ifdef OGS_USE_PYTHON @@ -76,6 +77,22 @@ std::unique_ptr<SourceTerm> createSourceTerm( parameters); } + if (type == "Line") + { + std::unique_ptr<NumLib::LocalToGlobalIndexMap> dof_table_source_term( + dof_table_bulk.deriveBoundaryConstrainedMap( + variable_id, {*config.component_id}, + std::move(source_term_mesh_subset))); + auto const& bulk_mesh_dimension = + dof_table_bulk.getMeshSubset(variable_id, *config.component_id) + .getMesh() + .getDimension(); + return ProcessLib::createLineSourceTerm( + config.config, bulk_mesh_dimension, config.mesh, + std::move(dof_table_source_term), parameters, integration_order, + shapefunction_order); + } + if (type == "Volumetric") { std::unique_ptr<NumLib::LocalToGlobalIndexMap> dof_table_source_term( diff --git a/ProcessLib/SourceTerms/LineSourceTerm.cpp b/ProcessLib/SourceTerms/LineSourceTerm.cpp new file mode 100644 index 0000000000000000000000000000000000000000..d81282075067e53ea8aa44790171e87db63ffdc0 --- /dev/null +++ b/ProcessLib/SourceTerms/LineSourceTerm.cpp @@ -0,0 +1,43 @@ +/** + * \file + * \copyright + * Copyright (c) 2012-2019, OpenGeoSys Community (http://www.opengeosys.org) + * Distributed under a Modified BSD License. + * See accompanying file LICENSE.txt or + * http://www.opengeosys.org/project/license + * + */ + +#include "LineSourceTerm.h" + +#include "ProcessLib/Utils/CreateLocalAssemblers.h" + +namespace ProcessLib +{ +LineSourceTerm::LineSourceTerm( + unsigned const bulk_mesh_dimension, MeshLib::Mesh const& source_term_mesh, + std::unique_ptr<NumLib::LocalToGlobalIndexMap> source_term_dof_table, + unsigned const integration_order, unsigned const shapefunction_order, + ParameterLib::Parameter<double> const& line_source_term_parameter) + : SourceTerm(std::move(source_term_dof_table)), + _line_source_term_parameter(line_source_term_parameter) +{ + ProcessLib::createLocalAssemblers<LineSourceTermLocalAssembler>( + bulk_mesh_dimension, source_term_mesh.getElements(), + *_source_term_dof_table, shapefunction_order, _local_assemblers, + source_term_mesh.isAxiallySymmetric(), integration_order, + _line_source_term_parameter); +} + +void LineSourceTerm::integrate(const double t, GlobalVector const& /*x*/, + GlobalVector& b, GlobalMatrix* /*jac*/) const +{ + DBUG("Assemble LineSourceTerm."); + + // Call global assembler for each local assembly item. + GlobalExecutor::executeMemberOnDereferenced( + &LineSourceTermLocalAssemblerInterface::integrate, _local_assemblers, + *_source_term_dof_table, t, b); +} + +} // namespace ProcessLib diff --git a/ProcessLib/SourceTerms/LineSourceTerm.h b/ProcessLib/SourceTerms/LineSourceTerm.h new file mode 100644 index 0000000000000000000000000000000000000000..6de51a101e84e84b60fb53467a197bdd85bb723e --- /dev/null +++ b/ProcessLib/SourceTerms/LineSourceTerm.h @@ -0,0 +1,40 @@ +/** + * \file + * \copyright + * Copyright (c) 2012-2019, OpenGeoSys Community (http://www.opengeosys.org) + * Distributed under a Modified BSD License. + * See accompanying file LICENSE.txt or + * http://www.opengeosys.org/project/license + * + */ + +#pragma once + +#include <memory> +#include <vector> + +#include "SourceTerm.h" +#include "LineSourceTermFEM.h" + +namespace ProcessLib +{ +class LineSourceTerm final : public SourceTerm +{ +public: + LineSourceTerm( + unsigned const bulk_mesh_dimension, + MeshLib::Mesh const& source_term_mesh, + std::unique_ptr<NumLib::LocalToGlobalIndexMap> source_term_dof_table, + unsigned const integration_order, unsigned const shapefunction_order, + ParameterLib::Parameter<double> const& line_source_term_parameter); + + void integrate(const double t, GlobalVector const& x, GlobalVector& b, + GlobalMatrix* jac) const override; + +private: + ParameterLib::Parameter<double> const& _line_source_term_parameter; + std::vector<std::unique_ptr<LineSourceTermLocalAssemblerInterface>> + _local_assemblers; +}; + +} // namespace ProcessLib diff --git a/ProcessLib/SourceTerms/LineSourceTermFEM.h b/ProcessLib/SourceTerms/LineSourceTermFEM.h new file mode 100644 index 0000000000000000000000000000000000000000..526bac3c815cdcc617db2a7c993e3eb4cd1b4db5 --- /dev/null +++ b/ProcessLib/SourceTerms/LineSourceTermFEM.h @@ -0,0 +1,110 @@ +/** + * \file + * \copyright + * Copyright (c) 2012-2019, OpenGeoSys Community (http://www.opengeosys.org) + * Distributed under a Modified BSD License. + * See accompanying file LICENSE.txt or + * http://www.opengeosys.org/project/license + * + */ + +#pragma once + +#include <vector> + +#include "MathLib/LinAlg/Eigen/EigenMapTools.h" +#include "NumLib/DOF/DOFTableUtil.h" +#include "NumLib/Fem/FiniteElement/TemplateIsoparametric.h" +#include "ParameterLib/Parameter.h" +#include "ProcessLib/LocalAssemblerTraits.h" +#include "ProcessLib/Utils/InitShapeMatrices.h" + +namespace ProcessLib +{ +class LineSourceTermLocalAssemblerInterface +{ +public: + virtual void integrate( + std::size_t const id, + NumLib::LocalToGlobalIndexMap const& source_term_dof_table, + double const t, GlobalVector& b) = 0; + virtual ~LineSourceTermLocalAssemblerInterface() = default; +}; + +const unsigned NUM_NODAL_DOF = 1; + +template <typename ShapeFunction, typename IntegrationMethod, + unsigned GlobalDim> +class LineSourceTermLocalAssembler final + : public LineSourceTermLocalAssemblerInterface +{ + using ShapeMatricesType = ShapeMatrixPolicyType<ShapeFunction, GlobalDim>; + + using LocalAssemblerTraits = ProcessLib::LocalAssemblerTraits< + ShapeMatricesType, ShapeFunction::NPOINTS, NUM_NODAL_DOF, GlobalDim>; + + using NodalVectorType = typename LocalAssemblerTraits::LocalVector; + using NodalRowVectorType = typename ShapeMatricesType::NodalRowVectorType; + +public: + LineSourceTermLocalAssembler( + MeshLib::Element const& element, + std::size_t const local_matrix_size, + bool const is_axially_symmetric, + unsigned const integration_order, + ParameterLib::Parameter<double> const& line_source_term_parameter) + : _parameter(line_source_term_parameter), + _integration_method(integration_order), + _local_rhs(local_matrix_size) + { + unsigned const n_integration_points = + _integration_method.getNumberOfPoints(); + + auto const shape_matrices = + initShapeMatrices<ShapeFunction, ShapeMatricesType, + IntegrationMethod, GlobalDim>( + element, is_axially_symmetric, _integration_method); + + for (unsigned ip = 0; ip < n_integration_points; ip++) + { + _ip_data.emplace_back( + _integration_method.getWeightedPoint(ip).getWeight() * + shape_matrices[ip].integralMeasure * shape_matrices[ip].detJ * + shape_matrices[ip].N); + } + } + + void integrate(std::size_t const id, + NumLib::LocalToGlobalIndexMap const& source_term_dof_table, + double const t, GlobalVector& b) override + { + _local_rhs.setZero(); + + unsigned const n_integration_points = + _integration_method.getNumberOfPoints(); + + ParameterLib::SpatialPosition pos; + pos.setElementID(id); + + for (unsigned ip = 0; ip < n_integration_points; ip++) + { + pos.setIntegrationPoint(ip); + auto const st_val = _parameter(t, pos)[0]; + + _local_rhs.noalias() += st_val * _ip_data[ip]; + } + auto const indices = NumLib::getIndices(id, source_term_dof_table); + b.add(indices, _local_rhs); + } + +private: + ParameterLib::Parameter<double> const& _parameter; + + IntegrationMethod const _integration_method; + std::vector<NodalRowVectorType, + Eigen::aligned_allocator<NodalRowVectorType>> + _ip_data; + NodalVectorType _local_rhs; +}; + +} // namespace ProcessLib diff --git a/Tests/Data/Parabolic/T/1D_line_source_term_tests/line_1_entire_line.vtu b/Tests/Data/Parabolic/T/1D_line_source_term_tests/line_1_entire_line.vtu new file mode 100644 index 0000000000000000000000000000000000000000..14f9ca11b58b7cb1bbafe13eb8aaea58fab40b78 --- /dev/null +++ b/Tests/Data/Parabolic/T/1D_line_source_term_tests/line_1_entire_line.vtu @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c197d46a63137501c0e1ccf79f5987d7d6b67d72476b1933f258bdcd6077f162 +size 10219 diff --git a/Tests/Data/Parabolic/T/1D_line_source_term_tests/line_1_left.vtu b/Tests/Data/Parabolic/T/1D_line_source_term_tests/line_1_left.vtu new file mode 100644 index 0000000000000000000000000000000000000000..8dc593a449a526854b01f38a69f79fbff4204bbc --- /dev/null +++ b/Tests/Data/Parabolic/T/1D_line_source_term_tests/line_1_left.vtu @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c2d23249bbbe0d9791d5b1a1981a7a8a106d7f9c132eb5be22f25266c0495177 +size 1583 diff --git a/Tests/Data/Parabolic/T/1D_line_source_term_tests/line_1_right.vtu b/Tests/Data/Parabolic/T/1D_line_source_term_tests/line_1_right.vtu new file mode 100644 index 0000000000000000000000000000000000000000..5ee0416abb1446f07e7a2776eee8d3c9c38245d2 --- /dev/null +++ b/Tests/Data/Parabolic/T/1D_line_source_term_tests/line_1_right.vtu @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ac9fc2cb59e32818b32449d271119a833b9bebcac15ed979ee540ffebf571922 +size 1583 diff --git a/Tests/Data/Parabolic/T/1D_line_source_term_tests/line_source_term.prj b/Tests/Data/Parabolic/T/1D_line_source_term_tests/line_source_term.prj new file mode 100644 index 0000000000000000000000000000000000000000..87ed0bf495cfd5ba96dd34d1ad909e25b160fccc --- /dev/null +++ b/Tests/Data/Parabolic/T/1D_line_source_term_tests/line_source_term.prj @@ -0,0 +1,143 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<OpenGeoSysProject> + <meshes> + <mesh>mesh_1_line_100.vtu</mesh> + <mesh>line_1_entire_line.vtu</mesh> + <mesh>line_1_left.vtu</mesh> + <mesh>line_1_right.vtu</mesh> + </meshes> + <processes> + <process> + <name>HeatConduction</name> + <type>HEAT_CONDUCTION</type> + <integration_order>2</integration_order> + <thermal_conductivity>lambda</thermal_conductivity> + <heat_capacity>c_p</heat_capacity> + <density>rho</density> + <process_variables> + <process_variable>temperature</process_variable> + </process_variables> + <secondary_variables> + <secondary_variable type="static" internal_name="heat_flux_x" output_name="heat_flux_x"/> + </secondary_variables> + </process> + </processes> + <time_loop> + <processes> + <process ref="HeatConduction"> + <nonlinear_solver>basic_picard</nonlinear_solver> + <convergence_criterion> + <type>DeltaX</type> + <norm_type>NORM2</norm_type> + <abstol>1.e-6</abstol> + </convergence_criterion> + <time_discretization> + <type>BackwardEuler</type> + </time_discretization> + <time_stepping> + <type>FixedTimeStepping</type> + <t_initial> 0.0 </t_initial> + <t_end> 1 </t_end> + <timesteps> + <pair> + <repeat>1</repeat> + <delta_t>1</delta_t> + </pair> + </timesteps> + </time_stepping> + </process> + </processes> + <output> + <type>VTK</type> + <prefix>source_term_at_entire_line</prefix> + <timesteps> + <pair> + <repeat> 10000 </repeat> + <each_steps> 1 </each_steps> + </pair> + </timesteps> + <variables> + <variable> temperature </variable> + <variable> heat_flux_x </variable> + </variables> + </output> + </time_loop> + <parameters> + <parameter> + <name>lambda</name> + <type>Constant</type> + <value>1</value> + </parameter> + <parameter> + <name>c_p</name> + <type>Constant</type> + <value>0</value> + </parameter> + <parameter> + <name>rho</name> + <type>Constant</type> + <value>0</value> + </parameter> + <parameter> + <name>T0</name> + <type>Constant</type> + <value>0</value> + </parameter> + <parameter> + <name>HeatSource</name> + <type>Constant</type> + <value>1</value> + </parameter> + </parameters> + <process_variables> + <process_variable> + <name>temperature</name> + <components>1</components> + <order>1</order> + <initial_condition>T0</initial_condition> + <boundary_conditions> + <boundary_condition> + <mesh>line_1_left</mesh> + <type>Dirichlet</type> + <parameter>T0</parameter> + </boundary_condition> + <boundary_condition> + <mesh>line_1_right</mesh> + <type>Dirichlet</type> + <parameter>T0</parameter> + </boundary_condition> + </boundary_conditions> + <source_terms> + <source_term> + <mesh>line_1_entire_line</mesh> + <type>Line</type> + <parameter>HeatSource</parameter> + </source_term> + </source_terms> + </process_variable> + </process_variables> + <nonlinear_solvers> + <nonlinear_solver> + <name>basic_picard</name> + <type>Picard</type> + <max_iter>10</max_iter> + <linear_solver>general_linear_solver</linear_solver> + </nonlinear_solver> + </nonlinear_solvers> + <linear_solvers> + <linear_solver> + <name>general_linear_solver</name> + <lis>-i cg -p jacobi -tol 1e-16 -maxiter 10000</lis> + <eigen> + <solver_type>CG</solver_type> + <precon_type>DIAGONAL</precon_type> + <max_iteration_step>10000</max_iteration_step> + <error_tolerance>1e-16</error_tolerance> + </eigen> + <petsc> + <prefix>gw</prefix> + <parameters>-gw_ksp_type cg -gw_pc_type bjacobi -gw_ksp_rtol 1e-16 -gw_ksp_max_it 10000</parameters> + </petsc> + </linear_solver> + </linear_solvers> +</OpenGeoSysProject> diff --git a/Tests/Data/Parabolic/T/1D_line_source_term_tests/mesh_1_line_100.vtu b/Tests/Data/Parabolic/T/1D_line_source_term_tests/mesh_1_line_100.vtu new file mode 100644 index 0000000000000000000000000000000000000000..9b276984bca29c8f61f5a407186014cf76690297 --- /dev/null +++ b/Tests/Data/Parabolic/T/1D_line_source_term_tests/mesh_1_line_100.vtu @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:47eef401df08330a83c5e63445a2f09dd622c3501945d16d326056866c8f9427 +size 7627 diff --git a/Tests/Data/Parabolic/T/2D_source_term_tests/line_source_term_left/mesh.vtu b/Tests/Data/Parabolic/T/2D_source_term_tests/line_source_term_left/mesh.vtu new file mode 100644 index 0000000000000000000000000000000000000000..c741334d7ba177ce4ed64127c1638c200fff4d01 --- /dev/null +++ b/Tests/Data/Parabolic/T/2D_source_term_tests/line_source_term_left/mesh.vtu @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5dcb97ed2368cfd063c8463441099ca19e996d40322b692940e1013b498304a2 +size 2408 diff --git a/Tests/Data/Parabolic/T/2D_source_term_tests/line_source_term_left/mesh_left.vtu b/Tests/Data/Parabolic/T/2D_source_term_tests/line_source_term_left/mesh_left.vtu new file mode 100644 index 0000000000000000000000000000000000000000..113eb91cc1f86f6d4d90ee46a82c5fb38c31b992 --- /dev/null +++ b/Tests/Data/Parabolic/T/2D_source_term_tests/line_source_term_left/mesh_left.vtu @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0f6fb53830d8282c072c115fa92ddaa3acd97afe0314e88e009d033ff1162472 +size 1639 diff --git a/Tests/Data/Parabolic/T/2D_source_term_tests/line_source_term_left/mesh_right.vtu b/Tests/Data/Parabolic/T/2D_source_term_tests/line_source_term_left/mesh_right.vtu new file mode 100644 index 0000000000000000000000000000000000000000..0d1c7a27f5a0ee6e9f39828dec1f23d6aa6ce20b --- /dev/null +++ b/Tests/Data/Parabolic/T/2D_source_term_tests/line_source_term_left/mesh_right.vtu @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:992969e33dab67b5ff76d1dcdd4cf0e18dbc1ed4a7177b7a5df96f00c7fe5c2b +size 1639 diff --git a/Tests/Data/Parabolic/T/2D_source_term_tests/line_source_term_left/source_term_left.prj b/Tests/Data/Parabolic/T/2D_source_term_tests/line_source_term_left/source_term_left.prj new file mode 100644 index 0000000000000000000000000000000000000000..9ebc0387f09849ebfa9e35f6bedb05792c202241 --- /dev/null +++ b/Tests/Data/Parabolic/T/2D_source_term_tests/line_source_term_left/source_term_left.prj @@ -0,0 +1,137 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<OpenGeoSysProject> + <meshes> + <mesh>mesh.vtu</mesh> + <mesh>mesh_left.vtu</mesh> + <mesh>mesh_right.vtu</mesh> + </meshes> + <processes> + <process> + <name>HeatConduction</name> + <type>HEAT_CONDUCTION</type> + <integration_order>2</integration_order> + <thermal_conductivity>lambda</thermal_conductivity> + <heat_capacity>c_p</heat_capacity> + <density>rho</density> + <process_variables> + <process_variable>temperature</process_variable> + </process_variables> + <secondary_variables> + <secondary_variable type="static" internal_name="heat_flux_x" output_name="heat_flux_x"/> + </secondary_variables> + </process> + </processes> + <time_loop> + <processes> + <process ref="HeatConduction"> + <nonlinear_solver>basic_picard</nonlinear_solver> + <convergence_criterion> + <type>DeltaX</type> + <norm_type>NORM2</norm_type> + <abstol>1.e-6</abstol> + </convergence_criterion> + <time_discretization> + <type>BackwardEuler</type> + </time_discretization> + <time_stepping> + <type>FixedTimeStepping</type> + <t_initial> 0.0 </t_initial> + <t_end> 1 </t_end> + <timesteps> + <pair> + <repeat>1</repeat> + <delta_t>1</delta_t> + </pair> + </timesteps> + </time_stepping> + </process> + </processes> + <output> + <type>VTK</type> + <prefix>source_term_left</prefix> + <timesteps> + <pair> + <repeat> 10000 </repeat> + <each_steps> 1 </each_steps> + </pair> + </timesteps> + <variables> + <variable> temperature </variable> + <variable> heat_flux_x </variable> + </variables> + </output> + </time_loop> + <parameters> + <parameter> + <name>lambda</name> + <type>Constant</type> + <value>1</value> + </parameter> + <parameter> + <name>c_p</name> + <type>Constant</type> + <value>1</value> + </parameter> + <parameter> + <name>rho</name> + <type>Constant</type> + <value>1</value> + </parameter> + <parameter> + <name>T0</name> + <type>Constant</type> + <value>0</value> + </parameter> + <parameter> + <name>HeatSource</name> + <type>Constant</type> + <value>1</value> + </parameter> + </parameters> + <process_variables> + <process_variable> + <name>temperature</name> + <components>1</components> + <order>1</order> + <initial_condition>T0</initial_condition> + <boundary_conditions> + <boundary_condition> + <mesh>mesh_right</mesh> + <type>Dirichlet</type> + <parameter>T0</parameter> + </boundary_condition> + </boundary_conditions> + <source_terms> + <source_term> + <mesh>mesh_left</mesh> + <type>Line</type> + <parameter>HeatSource</parameter> + </source_term> + </source_terms> + </process_variable> + </process_variables> + <nonlinear_solvers> + <nonlinear_solver> + <name>basic_picard</name> + <type>Picard</type> + <max_iter>10</max_iter> + <linear_solver>general_linear_solver</linear_solver> + </nonlinear_solver> + </nonlinear_solvers> + <linear_solvers> + <linear_solver> + <name>general_linear_solver</name> + <lis>-i cg -p jacobi -tol 1e-16 -maxiter 10000</lis> + <eigen> + <solver_type>CG</solver_type> + <precon_type>DIAGONAL</precon_type> + <max_iteration_step>10000</max_iteration_step> + <error_tolerance>1e-16</error_tolerance> + </eigen> + <petsc> + <prefix>gw</prefix> + <parameters>-gw_ksp_type cg -gw_pc_type bjacobi -gw_ksp_rtol 1e-16 -gw_ksp_max_it 10000</parameters> + </petsc> + </linear_solver> + </linear_solvers> +</OpenGeoSysProject> diff --git a/Tests/Data/Parabolic/T/2D_source_term_tests/line_source_term_left/source_term_left_pcs_0_ts_1_t_1.000000.vtu b/Tests/Data/Parabolic/T/2D_source_term_tests/line_source_term_left/source_term_left_pcs_0_ts_1_t_1.000000.vtu new file mode 100644 index 0000000000000000000000000000000000000000..a6fbd9b86291a10864b3219f8eab84e4b00d59e1 --- /dev/null +++ b/Tests/Data/Parabolic/T/2D_source_term_tests/line_source_term_left/source_term_left_pcs_0_ts_1_t_1.000000.vtu @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:23044874b5c4e484e1beeaf4a4c2778116971e6ed761ba1c43f846af6c5440d2 +size 2536 diff --git a/Tests/Data/Parabolic/T/2D_source_term_tests/line_source_term_x_0.5/line_source_term_x_0.5.prj b/Tests/Data/Parabolic/T/2D_source_term_tests/line_source_term_x_0.5/line_source_term_x_0.5.prj new file mode 100644 index 0000000000000000000000000000000000000000..feaccd674a33da4cfc4e9aae6af42628b1b3a02c --- /dev/null +++ b/Tests/Data/Parabolic/T/2D_source_term_tests/line_source_term_x_0.5/line_source_term_x_0.5.prj @@ -0,0 +1,143 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<OpenGeoSysProject> + <meshes> + <mesh>mesh_1x1_quad_100x100.vtu</mesh> + <mesh>mesh_1x1_middle.vtu</mesh> + <mesh>mesh_1x1_left.vtu</mesh> + <mesh>mesh_1x1_right.vtu</mesh> + </meshes> + <processes> + <process> + <name>HeatConduction</name> + <type>HEAT_CONDUCTION</type> + <integration_order>2</integration_order> + <thermal_conductivity>lambda</thermal_conductivity> + <heat_capacity>c_p</heat_capacity> + <density>rho</density> + <process_variables> + <process_variable>temperature</process_variable> + </process_variables> + <secondary_variables> + <secondary_variable type="static" internal_name="heat_flux_x" output_name="heat_flux_x"/> + </secondary_variables> + </process> + </processes> + <time_loop> + <processes> + <process ref="HeatConduction"> + <nonlinear_solver>basic_picard</nonlinear_solver> + <convergence_criterion> + <type>DeltaX</type> + <norm_type>NORM2</norm_type> + <abstol>1.e-6</abstol> + </convergence_criterion> + <time_discretization> + <type>BackwardEuler</type> + </time_discretization> + <time_stepping> + <type>FixedTimeStepping</type> + <t_initial> 0.0 </t_initial> + <t_end> 1 </t_end> + <timesteps> + <pair> + <repeat>1</repeat> + <delta_t>1</delta_t> + </pair> + </timesteps> + </time_stepping> + </process> + </processes> + <output> + <type>VTK</type> + <prefix>source_term_middle</prefix> + <timesteps> + <pair> + <repeat> 10000 </repeat> + <each_steps> 1 </each_steps> + </pair> + </timesteps> + <variables> + <variable> temperature </variable> + <variable> heat_flux_x </variable> + </variables> + </output> + </time_loop> + <parameters> + <parameter> + <name>lambda</name> + <type>Constant</type> + <value>1</value> + </parameter> + <parameter> + <name>c_p</name> + <type>Constant</type> + <value>0</value> + </parameter> + <parameter> + <name>rho</name> + <type>Constant</type> + <value>0</value> + </parameter> + <parameter> + <name>T0</name> + <type>Constant</type> + <value>0</value> + </parameter> + <parameter> + <name>HeatSource</name> + <type>Constant</type> + <value>1</value> + </parameter> + </parameters> + <process_variables> + <process_variable> + <name>temperature</name> + <components>1</components> + <order>1</order> + <initial_condition>T0</initial_condition> + <boundary_conditions> + <boundary_condition> + <mesh>mesh_1x1_left</mesh> + <type>Dirichlet</type> + <parameter>T0</parameter> + </boundary_condition> + <boundary_condition> + <mesh>mesh_1x1_right</mesh> + <type>Dirichlet</type> + <parameter>T0</parameter> + </boundary_condition> + </boundary_conditions> + <source_terms> + <source_term> + <mesh>mesh_1x1_middle</mesh> + <type>Line</type> + <parameter>HeatSource</parameter> + </source_term> + </source_terms> + </process_variable> + </process_variables> + <nonlinear_solvers> + <nonlinear_solver> + <name>basic_picard</name> + <type>Picard</type> + <max_iter>10</max_iter> + <linear_solver>general_linear_solver</linear_solver> + </nonlinear_solver> + </nonlinear_solvers> + <linear_solvers> + <linear_solver> + <name>general_linear_solver</name> + <lis>-i cg -p jacobi -tol 1e-16 -maxiter 10000</lis> + <eigen> + <solver_type>CG</solver_type> + <precon_type>DIAGONAL</precon_type> + <max_iteration_step>10000</max_iteration_step> + <error_tolerance>1e-16</error_tolerance> + </eigen> + <petsc> + <prefix>gw</prefix> + <parameters>-gw_ksp_type cg -gw_pc_type bjacobi -gw_ksp_rtol 1e-16 -gw_ksp_max_it 10000</parameters> + </petsc> + </linear_solver> + </linear_solvers> +</OpenGeoSysProject> diff --git a/Tests/Data/Parabolic/T/2D_source_term_tests/line_source_term_x_0.5/mesh_1x1_left.vtu b/Tests/Data/Parabolic/T/2D_source_term_tests/line_source_term_x_0.5/mesh_1x1_left.vtu new file mode 100644 index 0000000000000000000000000000000000000000..9b7641fa8743f4aaff5b5a5700860909af062dab --- /dev/null +++ b/Tests/Data/Parabolic/T/2D_source_term_tests/line_source_term_x_0.5/mesh_1x1_left.vtu @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8d8ded677b9aa01f99c1c07d225b8a51d997849e4b98d7eb00b900bf1f140e43 +size 10219 diff --git a/Tests/Data/Parabolic/T/2D_source_term_tests/line_source_term_x_0.5/mesh_1x1_middle.vtu b/Tests/Data/Parabolic/T/2D_source_term_tests/line_source_term_x_0.5/mesh_1x1_middle.vtu new file mode 100644 index 0000000000000000000000000000000000000000..d02dfd892a6496479b247b7f0998ec0f7c07729c --- /dev/null +++ b/Tests/Data/Parabolic/T/2D_source_term_tests/line_source_term_x_0.5/mesh_1x1_middle.vtu @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9dc7846e0a2dcfcac81c3a499fe2e8a563a0b969d27287200043f8803f9e9156 +size 12534 diff --git a/Tests/Data/Parabolic/T/2D_source_term_tests/line_source_term_x_0.5/mesh_1x1_quad_100x100.vtu b/Tests/Data/Parabolic/T/2D_source_term_tests/line_source_term_x_0.5/mesh_1x1_quad_100x100.vtu new file mode 100644 index 0000000000000000000000000000000000000000..fffbb16f565c7cb6c071775a6e25443876c7f497 --- /dev/null +++ b/Tests/Data/Parabolic/T/2D_source_term_tests/line_source_term_x_0.5/mesh_1x1_quad_100x100.vtu @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:edd8a6d4ebc2e50992bd31dd782f199899614ac06012328f79a0a70ebadbe684 +size 874256 diff --git a/Tests/Data/Parabolic/T/2D_source_term_tests/line_source_term_x_0.5/mesh_1x1_right.vtu b/Tests/Data/Parabolic/T/2D_source_term_tests/line_source_term_x_0.5/mesh_1x1_right.vtu new file mode 100644 index 0000000000000000000000000000000000000000..d85bf8ed13d06573ddb352b593867da4630927b1 --- /dev/null +++ b/Tests/Data/Parabolic/T/2D_source_term_tests/line_source_term_x_0.5/mesh_1x1_right.vtu @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:24c9acc81147980bab5ec6d5e46eb278f2dcbbcc7bc2b17abf6ac3426f5759c7 +size 10219 diff --git a/Tests/Data/Parabolic/T/2D_source_term_tests/line_source_term_x_0.5/source_term_middle_pcs_0_ts_1_t_1.000000.vtu b/Tests/Data/Parabolic/T/2D_source_term_tests/line_source_term_x_0.5/source_term_middle_pcs_0_ts_1_t_1.000000.vtu new file mode 100644 index 0000000000000000000000000000000000000000..904f40c95463ae7816f3f26c5f14c0f8c9b692a7 --- /dev/null +++ b/Tests/Data/Parabolic/T/2D_source_term_tests/line_source_term_x_0.5/source_term_middle_pcs_0_ts_1_t_1.000000.vtu @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ad251b35233f7a06bd52d37b3701c8a4944bc12b0d731f7d8c9c1830d08db24e +size 186476 diff --git a/Tests/Data/Parabolic/T/2D_source_term_tests/line_source_term_x_0.5_restricted_to_middle/line_source_term_x_0.5.prj b/Tests/Data/Parabolic/T/2D_source_term_tests/line_source_term_x_0.5_restricted_to_middle/line_source_term_x_0.5.prj new file mode 100644 index 0000000000000000000000000000000000000000..cc4e7c5cf1009f7e206a5ad0e335a81fb2022b08 --- /dev/null +++ b/Tests/Data/Parabolic/T/2D_source_term_tests/line_source_term_x_0.5_restricted_to_middle/line_source_term_x_0.5.prj @@ -0,0 +1,137 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<OpenGeoSysProject> + <meshes> + <mesh>mesh_1x1_quad_100x100.vtu</mesh> + <mesh>mesh_1x1_middle_restricted.vtu</mesh> + <mesh>mesh_1x1_right.vtu</mesh> + </meshes> + <processes> + <process> + <name>HeatConduction</name> + <type>HEAT_CONDUCTION</type> + <integration_order>2</integration_order> + <thermal_conductivity>lambda</thermal_conductivity> + <heat_capacity>c_p</heat_capacity> + <density>rho</density> + <process_variables> + <process_variable>temperature</process_variable> + </process_variables> + <secondary_variables> + <secondary_variable type="static" internal_name="heat_flux_x" output_name="heat_flux_x"/> + </secondary_variables> + </process> + </processes> + <time_loop> + <processes> + <process ref="HeatConduction"> + <nonlinear_solver>basic_picard</nonlinear_solver> + <convergence_criterion> + <type>DeltaX</type> + <norm_type>NORM2</norm_type> + <abstol>1.e-6</abstol> + </convergence_criterion> + <time_discretization> + <type>BackwardEuler</type> + </time_discretization> + <time_stepping> + <type>FixedTimeStepping</type> + <t_initial> 0.0 </t_initial> + <t_end> 1 </t_end> + <timesteps> + <pair> + <repeat>1</repeat> + <delta_t>1</delta_t> + </pair> + </timesteps> + </time_stepping> + </process> + </processes> + <output> + <type>VTK</type> + <prefix>source_term_middle_restricted</prefix> + <timesteps> + <pair> + <repeat> 10000 </repeat> + <each_steps> 1 </each_steps> + </pair> + </timesteps> + <variables> + <variable> temperature </variable> + <variable> heat_flux_x </variable> + </variables> + </output> + </time_loop> + <parameters> + <parameter> + <name>lambda</name> + <type>Constant</type> + <value>1</value> + </parameter> + <parameter> + <name>c_p</name> + <type>Constant</type> + <value>1</value> + </parameter> + <parameter> + <name>rho</name> + <type>Constant</type> + <value>1</value> + </parameter> + <parameter> + <name>T0</name> + <type>Constant</type> + <value>0</value> + </parameter> + <parameter> + <name>HeatSource</name> + <type>Constant</type> + <value>1</value> + </parameter> + </parameters> + <process_variables> + <process_variable> + <name>temperature</name> + <components>1</components> + <order>1</order> + <initial_condition>T0</initial_condition> + <boundary_conditions> + <boundary_condition> + <mesh>mesh_1x1_right</mesh> + <type>Dirichlet</type> + <parameter>T0</parameter> + </boundary_condition> + </boundary_conditions> + <source_terms> + <source_term> + <mesh>mesh_1x1_middle_restricted</mesh> + <type>Line</type> + <parameter>HeatSource</parameter> + </source_term> + </source_terms> + </process_variable> + </process_variables> + <nonlinear_solvers> + <nonlinear_solver> + <name>basic_picard</name> + <type>Picard</type> + <max_iter>10</max_iter> + <linear_solver>general_linear_solver</linear_solver> + </nonlinear_solver> + </nonlinear_solvers> + <linear_solvers> + <linear_solver> + <name>general_linear_solver</name> + <lis>-i cg -p jacobi -tol 1e-16 -maxiter 10000</lis> + <eigen> + <solver_type>CG</solver_type> + <precon_type>DIAGONAL</precon_type> + <max_iteration_step>10000</max_iteration_step> + <error_tolerance>1e-16</error_tolerance> + </eigen> + <petsc> + <prefix>gw</prefix> + <parameters>-gw_ksp_type cg -gw_pc_type bjacobi -gw_ksp_rtol 1e-16 -gw_ksp_max_it 10000</parameters> + </petsc> + </linear_solver> + </linear_solvers> +</OpenGeoSysProject> diff --git a/Tests/Data/Parabolic/T/2D_source_term_tests/line_source_term_x_0.5_restricted_to_middle/mesh_1x1_middle.vtu b/Tests/Data/Parabolic/T/2D_source_term_tests/line_source_term_x_0.5_restricted_to_middle/mesh_1x1_middle.vtu new file mode 100644 index 0000000000000000000000000000000000000000..d02dfd892a6496479b247b7f0998ec0f7c07729c --- /dev/null +++ b/Tests/Data/Parabolic/T/2D_source_term_tests/line_source_term_x_0.5_restricted_to_middle/mesh_1x1_middle.vtu @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9dc7846e0a2dcfcac81c3a499fe2e8a563a0b969d27287200043f8803f9e9156 +size 12534 diff --git a/Tests/Data/Parabolic/T/2D_source_term_tests/line_source_term_x_0.5_restricted_to_middle/mesh_1x1_middle_restricted.vtu b/Tests/Data/Parabolic/T/2D_source_term_tests/line_source_term_x_0.5_restricted_to_middle/mesh_1x1_middle_restricted.vtu new file mode 100644 index 0000000000000000000000000000000000000000..322168c6ef34537f8a0659953f8a7af50fc0476a --- /dev/null +++ b/Tests/Data/Parabolic/T/2D_source_term_tests/line_source_term_x_0.5_restricted_to_middle/mesh_1x1_middle_restricted.vtu @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1ab7e385fb15e1b443b65b0827b31296a90848eace6ffaa29de4888ce5aa23be +size 2766 diff --git a/Tests/Data/Parabolic/T/2D_source_term_tests/line_source_term_x_0.5_restricted_to_middle/mesh_1x1_quad_100x100.vtu b/Tests/Data/Parabolic/T/2D_source_term_tests/line_source_term_x_0.5_restricted_to_middle/mesh_1x1_quad_100x100.vtu new file mode 100644 index 0000000000000000000000000000000000000000..fffbb16f565c7cb6c071775a6e25443876c7f497 --- /dev/null +++ b/Tests/Data/Parabolic/T/2D_source_term_tests/line_source_term_x_0.5_restricted_to_middle/mesh_1x1_quad_100x100.vtu @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:edd8a6d4ebc2e50992bd31dd782f199899614ac06012328f79a0a70ebadbe684 +size 874256 diff --git a/Tests/Data/Parabolic/T/2D_source_term_tests/line_source_term_x_0.5_restricted_to_middle/mesh_1x1_right.vtu b/Tests/Data/Parabolic/T/2D_source_term_tests/line_source_term_x_0.5_restricted_to_middle/mesh_1x1_right.vtu new file mode 100644 index 0000000000000000000000000000000000000000..d85bf8ed13d06573ddb352b593867da4630927b1 --- /dev/null +++ b/Tests/Data/Parabolic/T/2D_source_term_tests/line_source_term_x_0.5_restricted_to_middle/mesh_1x1_right.vtu @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:24c9acc81147980bab5ec6d5e46eb278f2dcbbcc7bc2b17abf6ac3426f5759c7 +size 10219 diff --git a/Tests/Data/Parabolic/T/2D_source_term_tests/line_source_term_x_0.5_restricted_to_middle/source_term_middle_restricted_pcs_0_ts_1_t_1.000000.vtu b/Tests/Data/Parabolic/T/2D_source_term_tests/line_source_term_x_0.5_restricted_to_middle/source_term_middle_restricted_pcs_0_ts_1_t_1.000000.vtu new file mode 100644 index 0000000000000000000000000000000000000000..4ed12f47ef2c6c89825391583d162352461ed5e0 --- /dev/null +++ b/Tests/Data/Parabolic/T/2D_source_term_tests/line_source_term_x_0.5_restricted_to_middle/source_term_middle_restricted_pcs_0_ts_1_t_1.000000.vtu @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:157c4c1db8f0391262d85cdecd69197b0d80835efdfd113355327c03a3d71d74 +size 336172 diff --git a/Tests/Data/Parabolic/T/2D_source_term_tests/line_source_term_x_5/line_source_term_x=5.prj b/Tests/Data/Parabolic/T/2D_source_term_tests/line_source_term_x_5/line_source_term_x=5.prj new file mode 100644 index 0000000000000000000000000000000000000000..2c9edd9f927cb8b03a38c987fb41524ae2ac5b68 --- /dev/null +++ b/Tests/Data/Parabolic/T/2D_source_term_tests/line_source_term_x_5/line_source_term_x=5.prj @@ -0,0 +1,137 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<OpenGeoSysProject> + <meshes> + <mesh>mesh_10x3_quad_10x3.vtu</mesh> + <mesh>line_x=5.vtu</mesh> + <mesh>mesh_10x3_right.vtu</mesh> + </meshes> + <processes> + <process> + <name>HeatConduction</name> + <type>HEAT_CONDUCTION</type> + <integration_order>2</integration_order> + <thermal_conductivity>lambda</thermal_conductivity> + <heat_capacity>c_p</heat_capacity> + <density>rho</density> + <process_variables> + <process_variable>temperature</process_variable> + </process_variables> + <secondary_variables> + <secondary_variable type="static" internal_name="heat_flux_x" output_name="heat_flux_x"/> + </secondary_variables> + </process> + </processes> + <time_loop> + <processes> + <process ref="HeatConduction"> + <nonlinear_solver>basic_picard</nonlinear_solver> + <convergence_criterion> + <type>DeltaX</type> + <norm_type>NORM2</norm_type> + <abstol>1.e-6</abstol> + </convergence_criterion> + <time_discretization> + <type>BackwardEuler</type> + </time_discretization> + <time_stepping> + <type>FixedTimeStepping</type> + <t_initial> 0.0 </t_initial> + <t_end> 1 </t_end> + <timesteps> + <pair> + <repeat>1</repeat> + <delta_t>1</delta_t> + </pair> + </timesteps> + </time_stepping> + </process> + </processes> + <output> + <type>VTK</type> + <prefix>source_term_middle</prefix> + <timesteps> + <pair> + <repeat> 10000 </repeat> + <each_steps> 1 </each_steps> + </pair> + </timesteps> + <variables> + <variable> temperature </variable> + <variable> heat_flux_x </variable> + </variables> + </output> + </time_loop> + <parameters> + <parameter> + <name>lambda</name> + <type>Constant</type> + <value>1</value> + </parameter> + <parameter> + <name>c_p</name> + <type>Constant</type> + <value>1</value> + </parameter> + <parameter> + <name>rho</name> + <type>Constant</type> + <value>1</value> + </parameter> + <parameter> + <name>T0</name> + <type>Constant</type> + <value>0</value> + </parameter> + <parameter> + <name>HeatSource</name> + <type>Constant</type> + <value>1</value> + </parameter> + </parameters> + <process_variables> + <process_variable> + <name>temperature</name> + <components>1</components> + <order>1</order> + <initial_condition>T0</initial_condition> + <boundary_conditions> + <boundary_condition> + <mesh>mesh_10x3_right</mesh> + <type>Dirichlet</type> + <parameter>T0</parameter> + </boundary_condition> + </boundary_conditions> + <source_terms> + <source_term> + <mesh>line_x=5</mesh> + <type>Line</type> + <parameter>HeatSource</parameter> + </source_term> + </source_terms> + </process_variable> + </process_variables> + <nonlinear_solvers> + <nonlinear_solver> + <name>basic_picard</name> + <type>Picard</type> + <max_iter>10</max_iter> + <linear_solver>general_linear_solver</linear_solver> + </nonlinear_solver> + </nonlinear_solvers> + <linear_solvers> + <linear_solver> + <name>general_linear_solver</name> + <lis>-i cg -p jacobi -tol 1e-16 -maxiter 10000</lis> + <eigen> + <solver_type>CG</solver_type> + <precon_type>DIAGONAL</precon_type> + <max_iteration_step>10000</max_iteration_step> + <error_tolerance>1e-16</error_tolerance> + </eigen> + <petsc> + <prefix>gw</prefix> + <parameters>-gw_ksp_type cg -gw_pc_type bjacobi -gw_ksp_rtol 1e-16 -gw_ksp_max_it 10000</parameters> + </petsc> + </linear_solver> + </linear_solvers> +</OpenGeoSysProject> diff --git a/Tests/Data/Parabolic/T/2D_source_term_tests/line_source_term_x_5/line_x=5.vtu b/Tests/Data/Parabolic/T/2D_source_term_tests/line_source_term_x_5/line_x=5.vtu new file mode 100644 index 0000000000000000000000000000000000000000..eb682922844c12312519a1e8acdda99e49ea200f --- /dev/null +++ b/Tests/Data/Parabolic/T/2D_source_term_tests/line_source_term_x_5/line_x=5.vtu @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:49736fb06b8d49cbee4d382473fd64f46e6cf587693554c98446a7302e4bc23c +size 2116 diff --git a/Tests/Data/Parabolic/T/2D_source_term_tests/line_source_term_x_5/mesh_10x3_quad_10x3.vtu b/Tests/Data/Parabolic/T/2D_source_term_tests/line_source_term_x_5/mesh_10x3_quad_10x3.vtu new file mode 100644 index 0000000000000000000000000000000000000000..4324eab33571be8735ddff8941c6c3e34e1b24c3 --- /dev/null +++ b/Tests/Data/Parabolic/T/2D_source_term_tests/line_source_term_x_5/mesh_10x3_quad_10x3.vtu @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6450c0fc6690cbcc04cbafc53739eaa3a56d62ced34cd5a8f205bf111bfceda0 +size 4212 diff --git a/Tests/Data/Parabolic/T/2D_source_term_tests/line_source_term_x_5/mesh_10x3_right.vtu b/Tests/Data/Parabolic/T/2D_source_term_tests/line_source_term_x_5/mesh_10x3_right.vtu new file mode 100644 index 0000000000000000000000000000000000000000..0d1c7a27f5a0ee6e9f39828dec1f23d6aa6ce20b --- /dev/null +++ b/Tests/Data/Parabolic/T/2D_source_term_tests/line_source_term_x_5/mesh_10x3_right.vtu @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:992969e33dab67b5ff76d1dcdd4cf0e18dbc1ed4a7177b7a5df96f00c7fe5c2b +size 1639 diff --git a/Tests/Data/Parabolic/T/3D_line_source_term_tests/3D_line_source_term_in_cylinder/286k_prisms/Cylinder_r_1_h_1_prism_286k.vtu b/Tests/Data/Parabolic/T/3D_line_source_term_tests/3D_line_source_term_in_cylinder/286k_prisms/Cylinder_r_1_h_1_prism_286k.vtu new file mode 100644 index 0000000000000000000000000000000000000000..9cff9e312793240a311969685d7ec5ef42a99464 --- /dev/null +++ b/Tests/Data/Parabolic/T/3D_line_source_term_tests/3D_line_source_term_in_cylinder/286k_prisms/Cylinder_r_1_h_1_prism_286k.vtu @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:17165fb337fe1efef4f6c77a5e80b1777cea1150211b49ce789731c99c00e898 +size 11720744 diff --git a/Tests/Data/Parabolic/T/3D_line_source_term_tests/3D_line_source_term_in_cylinder/286k_prisms/Cylinder_r_1_h_1_prism_286k_heterogeneous_barrel.vtu b/Tests/Data/Parabolic/T/3D_line_source_term_tests/3D_line_source_term_in_cylinder/286k_prisms/Cylinder_r_1_h_1_prism_286k_heterogeneous_barrel.vtu new file mode 100644 index 0000000000000000000000000000000000000000..897c25abf3edd5830647e943db12dcbc25883977 --- /dev/null +++ b/Tests/Data/Parabolic/T/3D_line_source_term_tests/3D_line_source_term_in_cylinder/286k_prisms/Cylinder_r_1_h_1_prism_286k_heterogeneous_barrel.vtu @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8cfb65f6433bfa95cf7c0c7d5d74357541f7a1587f02e163ee45c32be91e3b50 +size 96655 diff --git a/Tests/Data/Parabolic/T/3D_line_source_term_tests/3D_line_source_term_in_cylinder/286k_prisms/line_inner.vtu b/Tests/Data/Parabolic/T/3D_line_source_term_tests/3D_line_source_term_in_cylinder/286k_prisms/line_inner.vtu new file mode 100644 index 0000000000000000000000000000000000000000..7270a7d090eb87d841abce235b0216d8b3ebbf96 --- /dev/null +++ b/Tests/Data/Parabolic/T/3D_line_source_term_tests/3D_line_source_term_in_cylinder/286k_prisms/line_inner.vtu @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:dc8c8532540b42bf14c2864d64a319e672a9da9e062cd3445ca393d45bbad8de +size 3242 diff --git a/Tests/Data/Parabolic/T/3D_line_source_term_tests/3D_line_source_term_in_cylinder/286k_prisms/line_source_term_in_cylinder.prj b/Tests/Data/Parabolic/T/3D_line_source_term_tests/3D_line_source_term_in_cylinder/286k_prisms/line_source_term_in_cylinder.prj new file mode 100644 index 0000000000000000000000000000000000000000..e334b119c2a5366d701ebb4757afe06ca406701a --- /dev/null +++ b/Tests/Data/Parabolic/T/3D_line_source_term_tests/3D_line_source_term_in_cylinder/286k_prisms/line_source_term_in_cylinder.prj @@ -0,0 +1,137 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<OpenGeoSysProject> + <meshes> + <mesh>Cylinder_r_1_h_1_prism_286k.vtu</mesh> + <mesh>line_inner.vtu</mesh> + <mesh>Cylinder_r_1_h_1_prism_286k_heterogeneous_barrel.vtu</mesh> + </meshes> + <processes> + <process> + <name>HeatConduction</name> + <type>HEAT_CONDUCTION</type> + <integration_order>2</integration_order> + <thermal_conductivity>lambda</thermal_conductivity> + <heat_capacity>c_p</heat_capacity> + <density>rho</density> + <process_variables> + <process_variable>temperature</process_variable> + </process_variables> + <secondary_variables> + <secondary_variable type="static" internal_name="heat_flux_x" output_name="heat_flux_x"/> + </secondary_variables> + </process> + </processes> + <time_loop> + <processes> + <process ref="HeatConduction"> + <nonlinear_solver>basic_picard</nonlinear_solver> + <convergence_criterion> + <type>DeltaX</type> + <norm_type>NORM2</norm_type> + <abstol>1.e-6</abstol> + </convergence_criterion> + <time_discretization> + <type>BackwardEuler</type> + </time_discretization> + <time_stepping> + <type>FixedTimeStepping</type> + <t_initial> 0.0 </t_initial> + <t_end> 1 </t_end> + <timesteps> + <pair> + <repeat>1</repeat> + <delta_t>1</delta_t> + </pair> + </timesteps> + </time_stepping> + </process> + </processes> + <output> + <type>VTK</type> + <prefix>3D_line_source_term_in_cylinder_286k</prefix> + <timesteps> + <pair> + <repeat> 10000 </repeat> + <each_steps> 1 </each_steps> + </pair> + </timesteps> + <variables> + <variable> temperature </variable> + <variable> heat_flux_x </variable> + </variables> + </output> + </time_loop> + <parameters> + <parameter> + <name>lambda</name> + <type>Constant</type> + <value>1</value> + </parameter> + <parameter> + <name>c_p</name> + <type>Constant</type> + <value>0</value> + </parameter> + <parameter> + <name>rho</name> + <type>Constant</type> + <value>0</value> + </parameter> + <parameter> + <name>T0</name> + <type>Constant</type> + <value>0</value> + </parameter> + <parameter> + <name>HeatSource</name> + <type>Constant</type> + <value>1</value> + </parameter> + </parameters> + <process_variables> + <process_variable> + <name>temperature</name> + <components>1</components> + <order>1</order> + <initial_condition>T0</initial_condition> + <boundary_conditions> + <boundary_condition> + <mesh>Cylinder_r_1_h_1_prism_286k_heterogeneous_barrel</mesh> + <type>Dirichlet</type> + <parameter>T0</parameter> + </boundary_condition> + </boundary_conditions> + <source_terms> + <source_term> + <mesh>line_inner</mesh> + <type>Line</type> + <parameter>HeatSource</parameter> + </source_term> + </source_terms> + </process_variable> + </process_variables> + <nonlinear_solvers> + <nonlinear_solver> + <name>basic_picard</name> + <type>Picard</type> + <max_iter>10</max_iter> + <linear_solver>general_linear_solver</linear_solver> + </nonlinear_solver> + </nonlinear_solvers> + <linear_solvers> + <linear_solver> + <name>general_linear_solver</name> + <lis>-i cg -p jacobi -tol 1e-16 -maxiter 10000</lis> + <eigen> + <solver_type>CG</solver_type> + <precon_type>DIAGONAL</precon_type> + <max_iteration_step>10000</max_iteration_step> + <error_tolerance>1e-16</error_tolerance> + </eigen> + <petsc> + <prefix>gw</prefix> + <parameters>-gw_ksp_type cg -gw_pc_type bjacobi -gw_ksp_rtol 1e-16 -gw_ksp_max_it 10000</parameters> + </petsc> + </linear_solver> + </linear_solvers> +</OpenGeoSysProject> diff --git a/Tests/Data/Parabolic/T/3D_line_source_term_tests/3D_line_source_term_in_cylinder/49k_prisms/Cylinder_r_1_h_1_prism_49k.vtu b/Tests/Data/Parabolic/T/3D_line_source_term_tests/3D_line_source_term_in_cylinder/49k_prisms/Cylinder_r_1_h_1_prism_49k.vtu new file mode 100644 index 0000000000000000000000000000000000000000..47afbf1fc54cf483eac353ab6b40d7f4d11d6966 --- /dev/null +++ b/Tests/Data/Parabolic/T/3D_line_source_term_tests/3D_line_source_term_in_cylinder/49k_prisms/Cylinder_r_1_h_1_prism_49k.vtu @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:363ad16c34436d7c96cce6ae63f2d72f565d883066b52cc80805a1e93e706550 +size 1331235 diff --git a/Tests/Data/Parabolic/T/3D_line_source_term_tests/3D_line_source_term_in_cylinder/49k_prisms/Cylinder_r_1_h_1_prism_49k_heterogeneous_barrel.vtu b/Tests/Data/Parabolic/T/3D_line_source_term_tests/3D_line_source_term_in_cylinder/49k_prisms/Cylinder_r_1_h_1_prism_49k_heterogeneous_barrel.vtu new file mode 100644 index 0000000000000000000000000000000000000000..785433904beeb1b6faea7c8f3ff5ec5f20f6ebf2 --- /dev/null +++ b/Tests/Data/Parabolic/T/3D_line_source_term_tests/3D_line_source_term_in_cylinder/49k_prisms/Cylinder_r_1_h_1_prism_49k_heterogeneous_barrel.vtu @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5c0a097eccb2e3fcb7f3a0e4c488a30f72f141010be661905cbb2d496d96627d +size 56735 diff --git a/Tests/Data/Parabolic/T/3D_line_source_term_tests/3D_line_source_term_in_cylinder/49k_prisms/line_inner.vtu b/Tests/Data/Parabolic/T/3D_line_source_term_tests/3D_line_source_term_in_cylinder/49k_prisms/line_inner.vtu new file mode 100644 index 0000000000000000000000000000000000000000..e6ab8f34e2c3ece87bf28dceafed1613475a0b70 --- /dev/null +++ b/Tests/Data/Parabolic/T/3D_line_source_term_tests/3D_line_source_term_in_cylinder/49k_prisms/line_inner.vtu @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3f681a7af2d8289358143fbc6a92fe1bb6ac1a0df4ea6c786a986c0136f98858 +size 3413 diff --git a/Tests/Data/Parabolic/T/3D_line_source_term_tests/3D_line_source_term_in_cylinder/49k_prisms/line_source_term_in_cylinder.prj b/Tests/Data/Parabolic/T/3D_line_source_term_tests/3D_line_source_term_in_cylinder/49k_prisms/line_source_term_in_cylinder.prj new file mode 100644 index 0000000000000000000000000000000000000000..9b9a9b06f6a098a351172db37989b3011dac1b6a --- /dev/null +++ b/Tests/Data/Parabolic/T/3D_line_source_term_tests/3D_line_source_term_in_cylinder/49k_prisms/line_source_term_in_cylinder.prj @@ -0,0 +1,137 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<OpenGeoSysProject> + <meshes> + <mesh>Cylinder_r_1_h_1_prism_49k.vtu</mesh> + <mesh>line_inner.vtu</mesh> + <mesh>Cylinder_r_1_h_1_prism_49k_heterogeneous_barrel.vtu</mesh> + </meshes> + <processes> + <process> + <name>HeatConduction</name> + <type>HEAT_CONDUCTION</type> + <integration_order>2</integration_order> + <thermal_conductivity>lambda</thermal_conductivity> + <heat_capacity>c_p</heat_capacity> + <density>rho</density> + <process_variables> + <process_variable>temperature</process_variable> + </process_variables> + <secondary_variables> + <secondary_variable type="static" internal_name="heat_flux_x" output_name="heat_flux_x"/> + </secondary_variables> + </process> + </processes> + <time_loop> + <processes> + <process ref="HeatConduction"> + <nonlinear_solver>basic_picard</nonlinear_solver> + <convergence_criterion> + <type>DeltaX</type> + <norm_type>NORM2</norm_type> + <abstol>1.e-6</abstol> + </convergence_criterion> + <time_discretization> + <type>BackwardEuler</type> + </time_discretization> + <time_stepping> + <type>FixedTimeStepping</type> + <t_initial> 0.0 </t_initial> + <t_end> 1 </t_end> + <timesteps> + <pair> + <repeat>1</repeat> + <delta_t>1</delta_t> + </pair> + </timesteps> + </time_stepping> + </process> + </processes> + <output> + <type>VTK</type> + <prefix>3D_line_source_term_in_cylinder_49k</prefix> + <timesteps> + <pair> + <repeat> 10000 </repeat> + <each_steps> 1 </each_steps> + </pair> + </timesteps> + <variables> + <variable> temperature </variable> + <variable> heat_flux_x </variable> + </variables> + </output> + </time_loop> + <parameters> + <parameter> + <name>lambda</name> + <type>Constant</type> + <value>1</value> + </parameter> + <parameter> + <name>c_p</name> + <type>Constant</type> + <value>0</value> + </parameter> + <parameter> + <name>rho</name> + <type>Constant</type> + <value>0</value> + </parameter> + <parameter> + <name>T0</name> + <type>Constant</type> + <value>0</value> + </parameter> + <parameter> + <name>HeatSource</name> + <type>Constant</type> + <value>1</value> + </parameter> + </parameters> + <process_variables> + <process_variable> + <name>temperature</name> + <components>1</components> + <order>1</order> + <initial_condition>T0</initial_condition> + <boundary_conditions> + <boundary_condition> + <mesh>Cylinder_r_1_h_1_prism_49k_heterogeneous_barrel</mesh> + <type>Dirichlet</type> + <parameter>T0</parameter> + </boundary_condition> + </boundary_conditions> + <source_terms> + <source_term> + <mesh>line_inner</mesh> + <type>Line</type> + <parameter>HeatSource</parameter> + </source_term> + </source_terms> + </process_variable> + </process_variables> + <nonlinear_solvers> + <nonlinear_solver> + <name>basic_picard</name> + <type>Picard</type> + <max_iter>10</max_iter> + <linear_solver>general_linear_solver</linear_solver> + </nonlinear_solver> + </nonlinear_solvers> + <linear_solvers> + <linear_solver> + <name>general_linear_solver</name> + <lis>-i cg -p jacobi -tol 1e-16 -maxiter 10000</lis> + <eigen> + <solver_type>CG</solver_type> + <precon_type>DIAGONAL</precon_type> + <max_iteration_step>10000</max_iteration_step> + <error_tolerance>1e-16</error_tolerance> + </eigen> + <petsc> + <prefix>gw</prefix> + <parameters>-gw_ksp_type cg -gw_pc_type bjacobi -gw_ksp_rtol 1e-16 -gw_ksp_max_it 10000</parameters> + </petsc> + </linear_solver> + </linear_solvers> +</OpenGeoSysProject> diff --git a/Tests/Data/Parabolic/T/3D_line_source_term_tests/3D_line_source_term_in_cylinder_axisymmetric/line_inner.vtu b/Tests/Data/Parabolic/T/3D_line_source_term_tests/3D_line_source_term_in_cylinder_axisymmetric/line_inner.vtu new file mode 100644 index 0000000000000000000000000000000000000000..7b6cdd380857c6d82d9762b18acc85999497d284 --- /dev/null +++ b/Tests/Data/Parabolic/T/3D_line_source_term_tests/3D_line_source_term_in_cylinder_axisymmetric/line_inner.vtu @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:dd41bd88e854c09b1943a115b1d63a4ccc7bae7f773f1f3b71b185f913763096 +size 10219 diff --git a/Tests/Data/Parabolic/T/3D_line_source_term_tests/3D_line_source_term_in_cylinder_axisymmetric/line_outer.vtu b/Tests/Data/Parabolic/T/3D_line_source_term_tests/3D_line_source_term_in_cylinder_axisymmetric/line_outer.vtu new file mode 100644 index 0000000000000000000000000000000000000000..dd756a98ca077befdc61536c1ac9728ea3e6d75e --- /dev/null +++ b/Tests/Data/Parabolic/T/3D_line_source_term_tests/3D_line_source_term_in_cylinder_axisymmetric/line_outer.vtu @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ca98018b3d710683db45ce4b348fa9c7289a9f6321afc36433126e871e61c4cc +size 10219 diff --git a/Tests/Data/Parabolic/T/3D_line_source_term_tests/3D_line_source_term_in_cylinder_axisymmetric/line_source_term_in_cylinder.prj b/Tests/Data/Parabolic/T/3D_line_source_term_tests/3D_line_source_term_in_cylinder_axisymmetric/line_source_term_in_cylinder.prj new file mode 100644 index 0000000000000000000000000000000000000000..6198ef1cba4d7e05adadec1d1b71661355d5fd00 --- /dev/null +++ b/Tests/Data/Parabolic/T/3D_line_source_term_tests/3D_line_source_term_in_cylinder_axisymmetric/line_source_term_in_cylinder.prj @@ -0,0 +1,137 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<OpenGeoSysProject> + <meshes> + <mesh axially_symmetric="true">square_1x1_quad_100x100.vtu</mesh> + <mesh>line_inner.vtu</mesh> + <mesh axially_symmetric="true">line_outer.vtu</mesh> + </meshes> + <processes> + <process> + <name>HeatConduction</name> + <type>HEAT_CONDUCTION</type> + <integration_order>2</integration_order> + <thermal_conductivity>lambda</thermal_conductivity> + <heat_capacity>c_p</heat_capacity> + <density>rho</density> + <process_variables> + <process_variable>temperature</process_variable> + </process_variables> + <secondary_variables> + <secondary_variable type="static" internal_name="heat_flux_x" output_name="heat_flux_x"/> + </secondary_variables> + </process> + </processes> + <time_loop> + <processes> + <process ref="HeatConduction"> + <nonlinear_solver>basic_picard</nonlinear_solver> + <convergence_criterion> + <type>DeltaX</type> + <norm_type>NORM2</norm_type> + <abstol>1.e-6</abstol> + </convergence_criterion> + <time_discretization> + <type>BackwardEuler</type> + </time_discretization> + <time_stepping> + <type>FixedTimeStepping</type> + <t_initial> 0.0 </t_initial> + <t_end> 1 </t_end> + <timesteps> + <pair> + <repeat>1</repeat> + <delta_t>1</delta_t> + </pair> + </timesteps> + </time_stepping> + </process> + </processes> + <output> + <type>VTK</type> + <prefix>3D_line_source_term_in_cylinder</prefix> + <timesteps> + <pair> + <repeat> 10000 </repeat> + <each_steps> 1 </each_steps> + </pair> + </timesteps> + <variables> + <variable> temperature </variable> + <variable> heat_flux_x </variable> + </variables> + </output> + </time_loop> + <parameters> + <parameter> + <name>lambda</name> + <type>Constant</type> + <value>1</value> + </parameter> + <parameter> + <name>c_p</name> + <type>Constant</type> + <value>0</value> + </parameter> + <parameter> + <name>rho</name> + <type>Constant</type> + <value>0</value> + </parameter> + <parameter> + <name>T0</name> + <type>Constant</type> + <value>0</value> + </parameter> + <parameter> + <name>HeatSource</name> + <type>Constant</type> + <value>1</value> + </parameter> + </parameters> + <process_variables> + <process_variable> + <name>temperature</name> + <components>1</components> + <order>1</order> + <initial_condition>T0</initial_condition> + <boundary_conditions> + <boundary_condition> + <mesh>line_outer</mesh> + <type>Dirichlet</type> + <parameter>T0</parameter> + </boundary_condition> + </boundary_conditions> + <source_terms> + <source_term> + <mesh>line_inner</mesh> + <type>Line</type> + <parameter>HeatSource</parameter> + </source_term> + </source_terms> + </process_variable> + </process_variables> + <nonlinear_solvers> + <nonlinear_solver> + <name>basic_picard</name> + <type>Picard</type> + <max_iter>10</max_iter> + <linear_solver>general_linear_solver</linear_solver> + </nonlinear_solver> + </nonlinear_solvers> + <linear_solvers> + <linear_solver> + <name>general_linear_solver</name> + <lis>-i cg -p jacobi -tol 1e-16 -maxiter 10000</lis> + <eigen> + <solver_type>CG</solver_type> + <precon_type>DIAGONAL</precon_type> + <max_iteration_step>10000</max_iteration_step> + <error_tolerance>1e-16</error_tolerance> + </eigen> + <petsc> + <prefix>gw</prefix> + <parameters>-gw_ksp_type cg -gw_pc_type bjacobi -gw_ksp_rtol 1e-16 -gw_ksp_max_it 10000</parameters> + </petsc> + </linear_solver> + </linear_solvers> +</OpenGeoSysProject> diff --git a/Tests/Data/Parabolic/T/3D_line_source_term_tests/3D_line_source_term_in_cylinder_axisymmetric/square_1x1_quad_100x100.vtu b/Tests/Data/Parabolic/T/3D_line_source_term_tests/3D_line_source_term_in_cylinder_axisymmetric/square_1x1_quad_100x100.vtu new file mode 100644 index 0000000000000000000000000000000000000000..dcf68bcec59565066fac5b8bf12614e96de777f3 --- /dev/null +++ b/Tests/Data/Parabolic/T/3D_line_source_term_tests/3D_line_source_term_in_cylinder_axisymmetric/square_1x1_quad_100x100.vtu @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cb45a3d8ea4a6abd8909c29d066a683eb720a60253b25adbcdd9edc96ca9a8f5 +size 203462 diff --git a/Tests/Data/Parabolic/T/3D_line_source_term_tests/3D_line_source_term_middle/3D_line_source_term_pcs_0_ts_1_t_1.000000.vtu b/Tests/Data/Parabolic/T/3D_line_source_term_tests/3D_line_source_term_middle/3D_line_source_term_pcs_0_ts_1_t_1.000000.vtu new file mode 100644 index 0000000000000000000000000000000000000000..2b4b9ce5d38d086d336a1376aed1745ce63bbfb3 --- /dev/null +++ b/Tests/Data/Parabolic/T/3D_line_source_term_tests/3D_line_source_term_middle/3D_line_source_term_pcs_0_ts_1_t_1.000000.vtu @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9e853403a23b7ccbe882ab00e6743dcfc49145a0c1fd935896114197b9bcf47c +size 29161 diff --git a/Tests/Data/Parabolic/T/3D_line_source_term_tests/3D_line_source_term_middle/cube_1x1x1_hex_1e3.vtu b/Tests/Data/Parabolic/T/3D_line_source_term_tests/3D_line_source_term_middle/cube_1x1x1_hex_1e3.vtu new file mode 100644 index 0000000000000000000000000000000000000000..143080df55b3b945574e6add9e6f4ac54371fa24 --- /dev/null +++ b/Tests/Data/Parabolic/T/3D_line_source_term_tests/3D_line_source_term_middle/cube_1x1x1_hex_1e3.vtu @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5922c7c05e509f33534fc8aa08ab82d748914acc4268ef7af81983e3f92aeece +size 127156 diff --git a/Tests/Data/Parabolic/T/3D_line_source_term_tests/3D_line_source_term_middle/cube_1x1x1_hex_1e3_right.vtu b/Tests/Data/Parabolic/T/3D_line_source_term_tests/3D_line_source_term_middle/cube_1x1x1_hex_1e3_right.vtu new file mode 100644 index 0000000000000000000000000000000000000000..cb08cfb5227fb22b26a87ee682d0ba2e5a4f393a --- /dev/null +++ b/Tests/Data/Parabolic/T/3D_line_source_term_tests/3D_line_source_term_middle/cube_1x1x1_hex_1e3_right.vtu @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:efcc5a635b6616ee00d7f8df481c3dfedbab2984a2e5ffb317386095681d19e4 +size 12898 diff --git a/Tests/Data/Parabolic/T/3D_line_source_term_tests/3D_line_source_term_middle/line_at_x_0.5_y_0.5.vtu b/Tests/Data/Parabolic/T/3D_line_source_term_tests/3D_line_source_term_middle/line_at_x_0.5_y_0.5.vtu new file mode 100644 index 0000000000000000000000000000000000000000..c3bf2785d918d88ee5456ce1ed8aa0cecbc5571f --- /dev/null +++ b/Tests/Data/Parabolic/T/3D_line_source_term_tests/3D_line_source_term_middle/line_at_x_0.5_y_0.5.vtu @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f0e907f622e78b982176352c63271038488880c3d8d08f8539f703edde9c3cc4 +size 3026 diff --git a/Tests/Data/Parabolic/T/3D_line_source_term_tests/3D_line_source_term_middle/line_source_term_x_0.5_y_0.5.prj b/Tests/Data/Parabolic/T/3D_line_source_term_tests/3D_line_source_term_middle/line_source_term_x_0.5_y_0.5.prj new file mode 100644 index 0000000000000000000000000000000000000000..425cbf538bc494b9af7e7d6fbdce373ec8153027 --- /dev/null +++ b/Tests/Data/Parabolic/T/3D_line_source_term_tests/3D_line_source_term_middle/line_source_term_x_0.5_y_0.5.prj @@ -0,0 +1,137 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<OpenGeoSysProject> + <meshes> + <mesh>cube_1x1x1_hex_1e3.vtu</mesh> + <mesh>line_at_x_0.5_y_0.5.vtu</mesh> + <mesh>cube_1x1x1_hex_1e3_right.vtu</mesh> + </meshes> + <processes> + <process> + <name>HeatConduction</name> + <type>HEAT_CONDUCTION</type> + <integration_order>2</integration_order> + <thermal_conductivity>lambda</thermal_conductivity> + <heat_capacity>c_p</heat_capacity> + <density>rho</density> + <process_variables> + <process_variable>temperature</process_variable> + </process_variables> + <secondary_variables> + <secondary_variable type="static" internal_name="heat_flux_x" output_name="heat_flux_x"/> + </secondary_variables> + </process> + </processes> + <time_loop> + <processes> + <process ref="HeatConduction"> + <nonlinear_solver>basic_picard</nonlinear_solver> + <convergence_criterion> + <type>DeltaX</type> + <norm_type>NORM2</norm_type> + <abstol>1.e-6</abstol> + </convergence_criterion> + <time_discretization> + <type>BackwardEuler</type> + </time_discretization> + <time_stepping> + <type>FixedTimeStepping</type> + <t_initial> 0.0 </t_initial> + <t_end> 1 </t_end> + <timesteps> + <pair> + <repeat>1</repeat> + <delta_t>1</delta_t> + </pair> + </timesteps> + </time_stepping> + </process> + </processes> + <output> + <type>VTK</type> + <prefix>3D_line_source_term</prefix> + <timesteps> + <pair> + <repeat> 10000 </repeat> + <each_steps> 1 </each_steps> + </pair> + </timesteps> + <variables> + <variable> temperature </variable> + <variable> heat_flux_x </variable> + </variables> + </output> + </time_loop> + <parameters> + <parameter> + <name>lambda</name> + <type>Constant</type> + <value>1</value> + </parameter> + <parameter> + <name>c_p</name> + <type>Constant</type> + <value>1</value> + </parameter> + <parameter> + <name>rho</name> + <type>Constant</type> + <value>1</value> + </parameter> + <parameter> + <name>T0</name> + <type>Constant</type> + <value>0</value> + </parameter> + <parameter> + <name>HeatSource</name> + <type>Constant</type> + <value>1</value> + </parameter> + </parameters> + <process_variables> + <process_variable> + <name>temperature</name> + <components>1</components> + <order>1</order> + <initial_condition>T0</initial_condition> + <boundary_conditions> + <boundary_condition> + <mesh>cube_1x1x1_hex_1e3_right</mesh> + <type>Dirichlet</type> + <parameter>T0</parameter> + </boundary_condition> + </boundary_conditions> + <source_terms> + <source_term> + <mesh>line_at_x_0.5_y_0.5</mesh> + <type>Line</type> + <parameter>HeatSource</parameter> + </source_term> + </source_terms> + </process_variable> + </process_variables> + <nonlinear_solvers> + <nonlinear_solver> + <name>basic_picard</name> + <type>Picard</type> + <max_iter>10</max_iter> + <linear_solver>general_linear_solver</linear_solver> + </nonlinear_solver> + </nonlinear_solvers> + <linear_solvers> + <linear_solver> + <name>general_linear_solver</name> + <lis>-i cg -p jacobi -tol 1e-16 -maxiter 10000</lis> + <eigen> + <solver_type>CG</solver_type> + <precon_type>DIAGONAL</precon_type> + <max_iteration_step>10000</max_iteration_step> + <error_tolerance>1e-16</error_tolerance> + </eigen> + <petsc> + <prefix>gw</prefix> + <parameters>-gw_ksp_type cg -gw_pc_type bjacobi -gw_ksp_rtol 1e-16 -gw_ksp_max_it 10000</parameters> + </petsc> + </linear_solver> + </linear_solvers> +</OpenGeoSysProject> diff --git a/Tests/Data/Parabolic/T/3D_line_source_term_tests/3D_line_source_term_middle_restricted/3D_line_source_term_restricted_pcs_0_ts_1_t_1.000000.vtu b/Tests/Data/Parabolic/T/3D_line_source_term_tests/3D_line_source_term_middle_restricted/3D_line_source_term_restricted_pcs_0_ts_1_t_1.000000.vtu new file mode 100644 index 0000000000000000000000000000000000000000..23779752d5aaf45602136bf6ddd8cca649539fe8 --- /dev/null +++ b/Tests/Data/Parabolic/T/3D_line_source_term_tests/3D_line_source_term_middle_restricted/3D_line_source_term_restricted_pcs_0_ts_1_t_1.000000.vtu @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7d8c24dc15b2f072522f78ec94e214ebbf14cddee16e7d956a9bb6713d29c597 +size 39545 diff --git a/Tests/Data/Parabolic/T/3D_line_source_term_tests/3D_line_source_term_middle_restricted/cube_1x1x1_hex_1e3.vtu b/Tests/Data/Parabolic/T/3D_line_source_term_tests/3D_line_source_term_middle_restricted/cube_1x1x1_hex_1e3.vtu new file mode 100644 index 0000000000000000000000000000000000000000..143080df55b3b945574e6add9e6f4ac54371fa24 --- /dev/null +++ b/Tests/Data/Parabolic/T/3D_line_source_term_tests/3D_line_source_term_middle_restricted/cube_1x1x1_hex_1e3.vtu @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5922c7c05e509f33534fc8aa08ab82d748914acc4268ef7af81983e3f92aeece +size 127156 diff --git a/Tests/Data/Parabolic/T/3D_line_source_term_tests/3D_line_source_term_middle_restricted/cube_1x1x1_hex_1e3_right.vtu b/Tests/Data/Parabolic/T/3D_line_source_term_tests/3D_line_source_term_middle_restricted/cube_1x1x1_hex_1e3_right.vtu new file mode 100644 index 0000000000000000000000000000000000000000..cb08cfb5227fb22b26a87ee682d0ba2e5a4f393a --- /dev/null +++ b/Tests/Data/Parabolic/T/3D_line_source_term_tests/3D_line_source_term_middle_restricted/cube_1x1x1_hex_1e3_right.vtu @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:efcc5a635b6616ee00d7f8df481c3dfedbab2984a2e5ffb317386095681d19e4 +size 12898 diff --git a/Tests/Data/Parabolic/T/3D_line_source_term_tests/3D_line_source_term_middle_restricted/line_at_x_0.5_y_0.5_restricted.vtu b/Tests/Data/Parabolic/T/3D_line_source_term_tests/3D_line_source_term_middle_restricted/line_at_x_0.5_y_0.5_restricted.vtu new file mode 100644 index 0000000000000000000000000000000000000000..763ba6d7b573704f33ceed7f4b36ffa9d0605ac8 --- /dev/null +++ b/Tests/Data/Parabolic/T/3D_line_source_term_tests/3D_line_source_term_middle_restricted/line_at_x_0.5_y_0.5_restricted.vtu @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:123d036b040c0d254e77b020a52673e293538e719da1b4c43a2a4e99f12c6c29 +size 2768 diff --git a/Tests/Data/Parabolic/T/3D_line_source_term_tests/3D_line_source_term_middle_restricted/line_source_term_x_0.5_y_0.5_restricted.prj b/Tests/Data/Parabolic/T/3D_line_source_term_tests/3D_line_source_term_middle_restricted/line_source_term_x_0.5_y_0.5_restricted.prj new file mode 100644 index 0000000000000000000000000000000000000000..cc64447acf668bafedc317d164df08e84c9ac1e4 --- /dev/null +++ b/Tests/Data/Parabolic/T/3D_line_source_term_tests/3D_line_source_term_middle_restricted/line_source_term_x_0.5_y_0.5_restricted.prj @@ -0,0 +1,137 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<OpenGeoSysProject> + <meshes> + <mesh>cube_1x1x1_hex_1e3.vtu</mesh> + <mesh>line_at_x_0.5_y_0.5_restricted.vtu</mesh> + <mesh>cube_1x1x1_hex_1e3_right.vtu</mesh> + </meshes> + <processes> + <process> + <name>HeatConduction</name> + <type>HEAT_CONDUCTION</type> + <integration_order>2</integration_order> + <thermal_conductivity>lambda</thermal_conductivity> + <heat_capacity>c_p</heat_capacity> + <density>rho</density> + <process_variables> + <process_variable>temperature</process_variable> + </process_variables> + <secondary_variables> + <secondary_variable type="static" internal_name="heat_flux_x" output_name="heat_flux_x"/> + </secondary_variables> + </process> + </processes> + <time_loop> + <processes> + <process ref="HeatConduction"> + <nonlinear_solver>basic_picard</nonlinear_solver> + <convergence_criterion> + <type>DeltaX</type> + <norm_type>NORM2</norm_type> + <abstol>1.e-6</abstol> + </convergence_criterion> + <time_discretization> + <type>BackwardEuler</type> + </time_discretization> + <time_stepping> + <type>FixedTimeStepping</type> + <t_initial> 0.0 </t_initial> + <t_end> 1 </t_end> + <timesteps> + <pair> + <repeat>1</repeat> + <delta_t>1</delta_t> + </pair> + </timesteps> + </time_stepping> + </process> + </processes> + <output> + <type>VTK</type> + <prefix>3D_line_source_term_restricted</prefix> + <timesteps> + <pair> + <repeat> 10000 </repeat> + <each_steps> 1 </each_steps> + </pair> + </timesteps> + <variables> + <variable> temperature </variable> + <variable> heat_flux_x </variable> + </variables> + </output> + </time_loop> + <parameters> + <parameter> + <name>lambda</name> + <type>Constant</type> + <value>1</value> + </parameter> + <parameter> + <name>c_p</name> + <type>Constant</type> + <value>1</value> + </parameter> + <parameter> + <name>rho</name> + <type>Constant</type> + <value>1</value> + </parameter> + <parameter> + <name>T0</name> + <type>Constant</type> + <value>0</value> + </parameter> + <parameter> + <name>HeatSource</name> + <type>Constant</type> + <value>1</value> + </parameter> + </parameters> + <process_variables> + <process_variable> + <name>temperature</name> + <components>1</components> + <order>1</order> + <initial_condition>T0</initial_condition> + <boundary_conditions> + <boundary_condition> + <mesh>cube_1x1x1_hex_1e3_right</mesh> + <type>Dirichlet</type> + <parameter>T0</parameter> + </boundary_condition> + </boundary_conditions> + <source_terms> + <source_term> + <mesh>line_at_x_0.5_y_0.5_restricted</mesh> + <type>Line</type> + <parameter>HeatSource</parameter> + </source_term> + </source_terms> + </process_variable> + </process_variables> + <nonlinear_solvers> + <nonlinear_solver> + <name>basic_picard</name> + <type>Picard</type> + <max_iter>10</max_iter> + <linear_solver>general_linear_solver</linear_solver> + </nonlinear_solver> + </nonlinear_solvers> + <linear_solvers> + <linear_solver> + <name>general_linear_solver</name> + <lis>-i cg -p jacobi -tol 1e-16 -maxiter 10000</lis> + <eigen> + <solver_type>CG</solver_type> + <precon_type>DIAGONAL</precon_type> + <max_iteration_step>10000</max_iteration_step> + <error_tolerance>1e-16</error_tolerance> + </eigen> + <petsc> + <prefix>gw</prefix> + <parameters>-gw_ksp_type cg -gw_pc_type bjacobi -gw_ksp_rtol 1e-16 -gw_ksp_max_it 10000</parameters> + </petsc> + </linear_solver> + </linear_solvers> +</OpenGeoSysProject> diff --git a/web/content/docs/benchmarks/heatconduction/LineSourceTermFigures/comparison_plot_over_line_diff_analytical_solution_temperature_and_simulated_temperature_line_source_term_in_cylinder.png b/web/content/docs/benchmarks/heatconduction/LineSourceTermFigures/comparison_plot_over_line_diff_analytical_solution_temperature_and_simulated_temperature_line_source_term_in_cylinder.png new file mode 100644 index 0000000000000000000000000000000000000000..103d2c93938aadeb7517f79007bef452ceab6504 --- /dev/null +++ b/web/content/docs/benchmarks/heatconduction/LineSourceTermFigures/comparison_plot_over_line_diff_analytical_solution_temperature_and_simulated_temperature_line_source_term_in_cylinder.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6e42558d7aa7173df5cbf25bcb83210c809ed98b2ea901cd56804d08038b5574 +size 42628 diff --git a/web/content/docs/benchmarks/heatconduction/LineSourceTermFigures/comparison_plot_over_line_rel_diff_analytical_solution_temperature_and_simulated_temperature_line_source_term_in_cylinder.png b/web/content/docs/benchmarks/heatconduction/LineSourceTermFigures/comparison_plot_over_line_rel_diff_analytical_solution_temperature_and_simulated_temperature_line_source_term_in_cylinder.png new file mode 100644 index 0000000000000000000000000000000000000000..b3da060c00c61560822c8694de031b6a3b34e462 --- /dev/null +++ b/web/content/docs/benchmarks/heatconduction/LineSourceTermFigures/comparison_plot_over_line_rel_diff_analytical_solution_temperature_and_simulated_temperature_line_source_term_in_cylinder.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:71df6d97f1564e34049e1ebaa7e73a19c317eeb5b8d1ea72c43bff66dde2cb75 +size 55942 diff --git a/web/content/docs/benchmarks/heatconduction/LineSourceTermFigures/plot_over_line_diff_and_rel_diff_analytical_solution_temperature_and_simulated_temperature_line_source_term_in_axisymmetric_cylinder.png b/web/content/docs/benchmarks/heatconduction/LineSourceTermFigures/plot_over_line_diff_and_rel_diff_analytical_solution_temperature_and_simulated_temperature_line_source_term_in_axisymmetric_cylinder.png new file mode 100644 index 0000000000000000000000000000000000000000..13f9274de8157f46847de7970a72322862957091 --- /dev/null +++ b/web/content/docs/benchmarks/heatconduction/LineSourceTermFigures/plot_over_line_diff_and_rel_diff_analytical_solution_temperature_and_simulated_temperature_line_source_term_in_axisymmetric_cylinder.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:53b9e2364fc749e0e96c184979bf5972e18f203006e6a5323dea0e1a91e54892 +size 15695 diff --git a/web/content/docs/benchmarks/heatconduction/LineSourceTermFigures/simulated_temperature_distribution_line_source_term_in_axisymmetric_cylinder.png b/web/content/docs/benchmarks/heatconduction/LineSourceTermFigures/simulated_temperature_distribution_line_source_term_in_axisymmetric_cylinder.png new file mode 100644 index 0000000000000000000000000000000000000000..a2f90e31f43d56670414c1029433470505d1c96c --- /dev/null +++ b/web/content/docs/benchmarks/heatconduction/LineSourceTermFigures/simulated_temperature_distribution_line_source_term_in_axisymmetric_cylinder.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a55195f983535bc7ca3613b8d0b4a769848b0c76e951b9d4f46884b39bfb9736 +size 44163 diff --git a/web/content/docs/benchmarks/heatconduction/LineSourceTermFigures/temperature_distribution_line_source_term_in_cylinder.png b/web/content/docs/benchmarks/heatconduction/LineSourceTermFigures/temperature_distribution_line_source_term_in_cylinder.png new file mode 100644 index 0000000000000000000000000000000000000000..3fa7a53b5e45c2bf9162b6bd5da0cfd99d9bf439 --- /dev/null +++ b/web/content/docs/benchmarks/heatconduction/LineSourceTermFigures/temperature_distribution_line_source_term_in_cylinder.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0e5bbbc67460c8893d5a8e88cdda19b2ec9982336c014aded54d49d33721cd40 +size 252487 diff --git a/web/content/docs/benchmarks/heatconduction/LineSourceTermFigures/temperature_profile_line_source_term_in_axisymmetric_cylinder.png b/web/content/docs/benchmarks/heatconduction/LineSourceTermFigures/temperature_profile_line_source_term_in_axisymmetric_cylinder.png new file mode 100644 index 0000000000000000000000000000000000000000..8e12632c36d51d889e27838eabf207d6d1982828 --- /dev/null +++ b/web/content/docs/benchmarks/heatconduction/LineSourceTermFigures/temperature_profile_line_source_term_in_axisymmetric_cylinder.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:51167504588b7eddba80fdf33da6afc53eaf87a64610fc8ec5da75e3a884f7a7 +size 9907 diff --git a/web/content/docs/benchmarks/heatconduction/LineSourceTermFigures/temperature_profile_line_source_term_in_cylinder.png b/web/content/docs/benchmarks/heatconduction/LineSourceTermFigures/temperature_profile_line_source_term_in_cylinder.png new file mode 100644 index 0000000000000000000000000000000000000000..5d1a10d0130ad42d3da69bc29163644745749d77 --- /dev/null +++ b/web/content/docs/benchmarks/heatconduction/LineSourceTermFigures/temperature_profile_line_source_term_in_cylinder.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:747db53e8e5d524b5a2aa52e705b34c2d48139cace81d58174b1361878747cfe +size 9530 diff --git a/web/content/docs/benchmarks/heatconduction/heatconduction-line_source_term.pandoc b/web/content/docs/benchmarks/heatconduction/heatconduction-line_source_term.pandoc new file mode 100644 index 0000000000000000000000000000000000000000..28432bb766bbba477ed30ccca2dba56cb4361335 --- /dev/null +++ b/web/content/docs/benchmarks/heatconduction/heatconduction-line_source_term.pandoc @@ -0,0 +1,126 @@ ++++ +author = "Thomas Fischer" +date = "2019-10-01T11:54:02+01:00" +title = "Heatconduction (Line Source Term)" +weight = 121 +project = "Parabolic/T/1D_line_source_term_tests/line_source_term.prj" + +[menu] + [menu.benchmarks] + parent = "heatconduction" + ++++ + +{{< data-link >}} + +## Equations + +We consider the Poisson equation: +$$ +\begin{equation} +\nabla\cdot(\nabla T) + Q_T = 0 \quad \text{in }\Omega +\end{equation}$$ +w.r.t Dirichlet-type boundary conditions +$$ +\eqalign{ +T(x) = 0 &\quad \text{on }\Gamma_D,\cr +} +$$ +where $T$ could be temperature, the subscripts $D$ denotes the Dirichlet-type +boundary conditions. Here, the temperature distribution under the impact of a +line shaped source term should be studied. + +## Problem Specifications and Analytical Solution + +In OGS there are several benchmarks for line source terms in 2d and 3d domains +available. Here, some of the 3d benchmarks are described. + +### Cylindrical domain + +The Poisson equation on cylindrical domain of heigth $1$ and radius +$r=1$ is solved. In the following figure the geometry, partly semi-transparent, +is sketched. Furthermore, the mesh resolution is shown in the cylindrical domain +within the first quadrant of the coordinate system. In the second quadrant the +simulated temperature distribution is depicted. + +{{< img src="../LineSourceTermFigures/temperature_distribution_line_source_term_in_cylinder.png" >}} + +The source term is defined along the line in the center of the cylinder: +$$ +\begin{equation} +Q(x) = 1 \quad \text{at } x=0, y=0. +\end{equation} +$$ +In the above figure the source term is the red vertical line in the origin of +the coordinate system. + +The analytical solution for a line source in the cylinder is +$$ +\begin{equation} +T(x) = - \frac{1}{2 \pi} \ln \sqrt{x^2 + y^2}. +\end{equation} +$$ + +#### Analytical solution in paraview + +Since the analytical solution has a singularity at $(x, y) = (0, 0)$ the +analytical solution in paraview is generated as follow: +``` +if (coordsX^2<0.0001 & coordsY^2<0.0001, temperature, -1/(4*asin(1))*ln(sqrt(coordsX^2+coordsY^2)) +``` + +#### Results and evaluation + +The following plot shows the temperature along the white line in the figure above. + +{{< img src="../LineSourceTermFigures/temperature_profile_line_source_term_in_cylinder.png" >}} + +- Comparison with analytical solution: + +The differences of analytical and computed solutions for two different domain +discretizations are small outside of the center. In the finer mesh the error +outside of the middle region is smaller than in the coarser mesh. +{{< img +src="../LineSourceTermFigures/comparison_plot_over_line_diff_analytical_solution_temperature_and_simulated_temperature_line_source_term_in_cylinder.png" >}} + +Due to the numerical evaluation of the relative error of the computed solution +the error grows in the vicinity of the boundary and in the center. +{{< img +src="../LineSourceTermFigures/comparison_plot_over_line_rel_diff_analytical_solution_temperature_and_simulated_temperature_line_source_term_in_cylinder.png" >}} + + +#### Input files + +The project files for the described models are +[49k.prj](https://github.com/ufz/ogs-data/blob/master/Parabolic/T/3D_line_source_term_tests/3D_line_source_term_in_cylinder/49k_prisms/line_source_term_in_cylinder.prj) +and +[286k.prj](https://github.com/ufz/ogs-data/blob/master/Parabolic/T/3D_line_source_term_tests/3D_line_source_term_in_cylinder/286k_prisms/line_source_term_in_cylinder.prj). +The project files describe the processes to be solved and the related process variables +together with their initial and boundary conditions as well as the source terms. + +The input meshes are stored in the VTK file format and can be directly visualized in Paraview for example. + +### Cylindrical domain - axisymmetric example + +The Poisson equation on cylindrical domain of heigth $1$ and radius +$r=1$ is solved. The cylindrical domain is defined as axisymmetric. + +#### Results and evaluation +{{< img +src="../LineSourceTermFigures/simulated_temperature_distribution_line_source_term_in_axisymmetric_cylinder.png" >}} +The above figure shows the computed temperature distribution. + +The following plot shows the temperature along the white line in the figure above. +{{< img +src="../LineSourceTermFigures/temperature_profile_line_source_term_in_axisymmetric_cylinder.png" >}} + +The error and relative error shows the same behaviour like in the simulation +models above. Outside of the center, that has a singularity in the analytical +solution, the errors decreases very fast. +{{< img +src="../LineSourceTermFigures/plot_over_line_diff_and_rel_diff_analytical_solution_temperature_and_simulated_temperature_line_source_term_in_axisymmetric_cylinder.png" >}} + +#### Input files + +The project file for the described model is +[line_source_term_in_cylinder.prj](https://github.com/ufz/ogs-data/blob/master/Parabolic/T/3D_line_source_term_tests/3D_line_source_term_in_cylinder_axisymmetric/line_source_term_in_cylinder.prj).