Hello Javier, The problem I sent around is not the problem I want to solve in the end; it is more complicated and has time-dependent features. In order to demonstrate the error/difficulty I am having with my code, I have just written code for a very simple problem (minimal working example) so that it is easy to see the problem and fix... Obviously if I was really solving this particular equation I would do it analytically! I hope that makes sense?
Thanks Katie Katie Leonard DPhil student in Computational Biology, The University of Oxford. ________________________________________ From: Jose Javier Muñoz Criollo [[email protected]] Sent: 26 June 2012 16:57 To: [email protected] Cc: Katie Leonard Subject: Re: [deal.II] Applying time dependent boundary conditions Hello Katie Is the equation that you are trying to solve time-dependant? For the look of your assembly function it appears that you're solving the stationary equation with different boundary conditions. In the run function you advance through time and solve the equation each time step although you're not using the previous solution to calculate the current one, and you're only saving the output for a few time steps, wouldn't be same just to calculate those time steps without compute the intermediate ones? Regards Javier 2012/6/22 Katie Leonard <[email protected]<mailto:[email protected]>> Hello, I am having trouble applying time-dependent boundary conditions properly. I attach two minimal working examples, and a picture to show what I mean. In these examples I am solving Laplace equation on a circle, with zero flux boundary conditions, and time dependent Dirichlet boundary conditions, so that \nabla^2 p = 0 in \Omega with \nabla p \cdot \mathbf{n} = 0 on \partial \Omega p = f(t) on \partial \Omega In the first example (no_constraints_t_dependent_boundary.cc) I implement the boundary conditions using VectorTools::interpolate_boundary_values and MatrixTools::apply_boundary_values each time assemble_pressure_system () is called. In the second example (with_constraints_matrix_t_dependentBCs.cc) I use a constraints matrix, and call VectorTools::interpolate_boundary_values within setup_pressure_dofs_for_boundary (), calling this at the beginning of each timestep. Both codes produce the same results - but giving the wrong answer (see Example_pressure_plot.jpeg) If anyone has any ideas why this is occurring, and how to solve it, I would be very grateful! Many thanks and have a good weekend! Katie Katie Leonard DPhil student in Computational Biology, The University of Oxford. _______________________________________________ dealii mailing list http://poisson.dealii.org/mailman/listinfo/dealii -- José Javier Muñoz Criollo PhD Student | Cardiff University School of Engineering E-mail: [email protected]<mailto:[email protected]> _______________________________________________ dealii mailing list http://poisson.dealii.org/mailman/listinfo/dealii
