diff --git a/ProcessLib/AnalyticalJacobianAssembler.cpp b/ProcessLib/AnalyticalJacobianAssembler.cpp index 837f867a657a11cfc3a52f60c87bab552b2e7e25..87160943710b742215ab39c85f0e609301531b63 100644 --- a/ProcessLib/AnalyticalJacobianAssembler.cpp +++ b/ProcessLib/AnalyticalJacobianAssembler.cpp @@ -8,6 +8,7 @@ */ #include "AnalyticalJacobianAssembler.h" +#include "CoupledSolutionsForStaggeredScheme.h" #include "LocalAssemblerInterface.h" namespace ProcessLib @@ -17,11 +18,24 @@ void AnalyticalJacobianAssembler::assembleWithJacobian( std::vector<double> const& local_x, std::vector<double> const& local_xdot, const double dxdot_dx, const double dx_dx, std::vector<double>& local_M_data, std::vector<double>& local_K_data, - std::vector<double>& local_b_data, - std::vector<double>& local_Jac_data) + std::vector<double>& local_b_data, std::vector<double>& local_Jac_data) { local_assembler.assembleWithJacobian(t, local_x, local_xdot, dxdot_dx, dx_dx, local_M_data, local_K_data, local_b_data, local_Jac_data); } + +void AnalyticalJacobianAssembler::assembleWithJacobianAndCoupling( + LocalAssemblerInterface& local_assembler, double const t, + std::vector<double> const& local_xdot, const double dxdot_dx, + const double dx_dx, std::vector<double>& local_M_data, + std::vector<double>& local_K_data, std::vector<double>& local_b_data, + std::vector<double>& local_Jac_data, + LocalCoupledSolutions const& local_coupled_solutions) +{ + local_assembler.assembleWithJacobianAndCoupling( + t, local_xdot, dxdot_dx, dx_dx, local_M_data, local_K_data, + local_b_data, local_Jac_data, local_coupled_solutions); +} + } // ProcessLib diff --git a/ProcessLib/AnalyticalJacobianAssembler.h b/ProcessLib/AnalyticalJacobianAssembler.h index 19da3228c0b387b12fb19e23d44140650d2ef432..45c6d01f7e1c5a2bbe7ed0edaf5f53b6fac12ca6 100644 --- a/ProcessLib/AnalyticalJacobianAssembler.h +++ b/ProcessLib/AnalyticalJacobianAssembler.h @@ -18,6 +18,9 @@ class ConfigTree; namespace ProcessLib { + +struct LocalCoupledSolutions; + //! Assembles the Jacobian matrix using a provided "analytical" method from the //! local assembler. class AnalyticalJacobianAssembler final : public AbstractJacobianAssembler @@ -34,6 +37,14 @@ public: const double dx_dx, std::vector<double>& local_M_data, std::vector<double>& local_K_data, std::vector<double>& local_b_data, std::vector<double>& local_Jac_data) override; + + void assembleWithJacobianAndCoupling( + LocalAssemblerInterface& local_assembler, + double const t, std::vector<double> const& local_xdot, + const double dxdot_dx, const double dx_dx, + std::vector<double>& local_M_data, std::vector<double>& local_K_data, + std::vector<double>& local_b_data, std::vector<double>& local_Jac_data, + LocalCoupledSolutions const& local_coupled_solutions) override; }; } // ProcessLib