diff --git a/ProcessLib/BoundaryCondition/UniformRobinBoundaryCondition.cpp b/ProcessLib/BoundaryCondition/UniformRobinBoundaryCondition.cpp index 6f9a0102f7ed182b9a739b0208c2a830a8109a1f..95bc0c90ca50bc7c9661a73fdb207e374efbe7e4 100644 --- a/ProcessLib/BoundaryCondition/UniformRobinBoundaryCondition.cpp +++ b/ProcessLib/BoundaryCondition/UniformRobinBoundaryCondition.cpp @@ -25,14 +25,14 @@ createUniformRobinBoundaryCondition( //! \ogs_file_param{boundary_condition__UniformRobin__alpha} double const alpha = config.getConfigParameter<double>("alpha"); - //! \ogs_file_param{boundary_condition__UniformRobin__f_0} - double const f_0 = config.getConfigParameter<double>("f_0"); + //! \ogs_file_param{boundary_condition__UniformRobin__u_0} + double const u_0 = config.getConfigParameter<double>("u_0"); return std::unique_ptr<UniformRobinBoundaryCondition>( new UniformRobinBoundaryCondition( integration_order, dof_table, variable_id, component_id, global_dim, std::move(elements), - UniformRobinBoundaryConditionData{alpha, f_0})); + UniformRobinBoundaryConditionData{alpha, u_0})); } } // ProcessLib diff --git a/ProcessLib/BoundaryCondition/UniformRobinBoundaryCondition.h b/ProcessLib/BoundaryCondition/UniformRobinBoundaryCondition.h index 91ec8ddff0adfd5bef8f6bcf81fbddc52cfcf8ea..87ef77b8825768b1bfcc500520c209db921940c2 100644 --- a/ProcessLib/BoundaryCondition/UniformRobinBoundaryCondition.h +++ b/ProcessLib/BoundaryCondition/UniformRobinBoundaryCondition.h @@ -27,9 +27,13 @@ using UniformRobinBoundaryCondition = GenericNaturalBoundaryCondition< /*! Creates a new uniform Robin boundary condition from the given data. * * The Robin boundary condition is given in the form - * \f$ \partial f/\partial n = \alpha \cdot [ f(x) - f_0 ] \f$, - * where the coefficients \f$ \alpha \f$ and \f$ f_0 \f$ are obtained from the - * \c config. + * \f$ \alpha \cdot [ u_0 - u(x) ] \f$, + * where the coefficients \f$ \alpha \f$ and \f$ u_0 \f$ are obtained from the + * \c config, and \f$ u \f$ is the unknown to which the boundary condition is + * applied. + * + * The value \f$ \alpha \cdot [ u_0 - u(x) ] \f$ is a flux. It replaces the + * integrand in the boundary integral for the variable \f$ u \f$. */ std::unique_ptr<UniformRobinBoundaryCondition> createUniformRobinBoundaryCondition( diff --git a/ProcessLib/BoundaryCondition/UniformRobinBoundaryConditionLocalAssembler.h b/ProcessLib/BoundaryCondition/UniformRobinBoundaryConditionLocalAssembler.h index 13f25c1721eb8c4414dd54c333a1925ee0a6a72e..d5d46e907201ed903c30fc3e624f269a52ce8bfc 100644 --- a/ProcessLib/BoundaryCondition/UniformRobinBoundaryConditionLocalAssembler.h +++ b/ProcessLib/BoundaryCondition/UniformRobinBoundaryConditionLocalAssembler.h @@ -16,7 +16,7 @@ namespace ProcessLib { struct UniformRobinBoundaryConditionData final { double const alpha; - double const f_0; + double const u_0; }; template <typename ShapeFunction, typename IntegrationMethod, @@ -59,13 +59,13 @@ public: auto const& sm = Base::_shape_matrices[ip]; auto const& wp = integration_method.getWeightedPoint(ip); - // df/dn = alpha ( f - f_0 ) - // adding a -alpha term to the diagonal of the stiffness matrix - // and a -alpha * f_0 term to the rhs vector - _local_K.diagonal().noalias() -= + // flux = alpha * ( u_0 - u ) + // adding a alpha term to the diagonal of the stiffness matrix + // and a alpha * u_0 term to the rhs vector + _local_K.diagonal().noalias() += sm.N * _data.alpha * sm.detJ * wp.getWeight(); - _local_rhs.noalias() -= - sm.N * _data.alpha * _data.f_0 * sm.detJ * wp.getWeight(); + _local_rhs.noalias() += + sm.N * _data.alpha * _data.u_0 * sm.detJ * wp.getWeight(); } auto const indices = NumLib::getIndices(id, dof_table_boundary);