Dear deal.II developers/users,
I am solving a time dependent problem (parabolic) with time dependent dirichlet boundary conditions(at a particular boundary). So I apply dirichlet boundary values at the beginning of each time step to the system matrix(assembled only once outside the time loop) and solve. I am using
VectorTools::interpolate_boundary_values(move_dof_handler, 106, move_boundary_values_function, move_boundary_values);
MatrixTools::apply_boundary_values(move_boundary_values, move_system_matrix, move_solution, move_system_rhs);
instead of 'constraints'.
Now, I have to add the current time step dirichlet values to the 'previous cumulative dirichlet values at this boundary' in my 'move_boundary_values_function' object of type 'template <int dim> class MoveBoundaryValues106 : public Function<dim>'. How can I accomplish this in my member function
template <int dim>
void MoveBoundaryValues106<dim>::vector_value(const Point<dim> &p, Vector<double> &values) const
{
// std::vector<Tensor<1,dim>> previouscumulative(n_boundary_dofs_of_type_106);
const double time = this->get_time();
previuouscumulative += get_function_values();
values[0] = previouscumulative[];
values[1] = previouscumulative[];
values[2] = previouscumulative[];
values[3] = previouscumulative[];
}
Please suggest/ direct me to any documentation or tutorial.
Thanks,
Bhanu.