Dear Daniel, I am sorry It is a typo error, actually, I have old_s = old_solution_values[q_point](1) which represents the solution at previous time step i.e. U(t_{n-1}) and old_s0 =
old_solution_values0 [q_point](1) which represents the solution at time (t_{n-2}) i.e. U(t_{n-2}) and old_s1 = old_solution_values1 [q_point](1) which represents the solution at time (t_{n-3}) i.e. U(t_{n-3}). The old_solution_values and old_solution_values1 are different as I explained above. I need these values of the solutions (second component of the solution) at previous time steps to assemble the right hand side nonlinear term in y problem. Best Mohammad On Tuesday, June 7, 2016 at 10:29:45 AM UTC+1, Mohammad Sabawi wrote: > > Dear all, > > > > I am solving a 3x3 block system arising form DG time discretisation of the > semilinear parabolic equations in the form u_t - \Delta u = f(u) for the > block solution vector U which consists from three nodal values blocks U0, > U1 and U2. During the solution process I need just the solution values of > the second block U1 at the previous time steps (t_{n-1}, t_{n-2} and > t_{n-3}) > > i.e. old_solution.block(1), old_old_solution.block(1) and > old_old_old_solution.block(1) for this task I used > > > > std::vector<Vector<double> old_solution_values (n_q_points, > Vector<double>(3)); > > std::vector<Vector<double> old_solution_values0 (n_q_points, > Vector<double>(3)); > > std::vector<Vector<double> old_solution_values1 (n_q_points, > Vector<double>(3)); > > > > fe_values.get_function_values (old_solution, old_solution_values); > > fe_values.get_function_values (old_old_solution, old_solution_values0); > > fe_values.get_function_values (old_old_old_solution, old_solution_values1); > > > > > > In the solution process in the right hand side assembly I need just the > nodal values of second block U1 at the previous time steps (t_{n-1}, > t_{n-2} and t_{n-3}) i.e. old_solution.block(1) > > > > For this reason, I used > > > > const double old_s = old_solution_values[q_point](1); > > const double old_s = old_solution_values0[q_point](1); > > const double old_s = old_solution_values1[q_point](1); > > > > > > but I did not get required results and even when I changed > old_solution_values[q_point](1) to old_solution_values[q_point](0) nothing > has changed (just to check if there is any difference) and even when I > tried the wrong thing old_solution.block(1) nothing has changed and I got > the same results as with previous other cases. > > > > I am confused about this case; did I do some thing wrong in defining the > nodal values of the second block of the solution vector at the previous > time steps? Any feedbacks and hints are appreciated. > > > > Best regards > > > > Mohammad Sabawi > -- The deal.II project is located at http://www.dealii.org/ For mailing list/forum options, see https://groups.google.com/d/forum/dealii?hl=en --- You received this message because you are subscribed to the Google Groups "deal.II User Group" group. To unsubscribe from this group and stop receiving emails from it, send an email to dealii+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.