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).