From e3d10336a9b42a7d6e719e6f6234a36125a1664a Mon Sep 17 00:00:00 2001 From: Max Luebke Date: Thu, 3 Feb 2022 15:07:49 +0100 Subject: [PATCH] Added support for constant cells inside the grid. --- src/BTCSDiffusion.cpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/BTCSDiffusion.cpp b/src/BTCSDiffusion.cpp index 7e2ffbc..89a90b4 100644 --- a/src/BTCSDiffusion.cpp +++ b/src/BTCSDiffusion.cpp @@ -134,6 +134,13 @@ void BTCSDiffusion::simulate1D(std::vector &c, boundary_condition left, // A_matrix.insert(size + 1, size + 1) = 1; for (int i = 1; i < size - right_is_constant; i++) { + if (bc[i + !(left_is_constant)].type == BTCSDiffusion::BC_CONSTANT) { + A_matrix.insert(i,i) = 1; + b_vector[i] = bc[i + !(left_is_constant)].value; + continue; + } + + double sx = (alpha[i + !(left_is_constant)] * time_step) / (dx * dx); A_matrix.insert(i, i) = -1. - 2. * sx;