# Code doesn't evolve with time - PointSource related

Hello all,

The code doesn’t give an error and it doesn’t evolve with time.

Below there is both a `PointSource` and a velocity vector. Before I add PointSource, The code was running good. I am ran out of ideas.

There might be a problem due to solver, or some other thing that I couldn’t realize.

Also, where can I learn how to pick an appropriate solver for an equation? I look for “Numerical Linear Algebra with Applications” sources (books lecture notes etc.) but if you would suggest one that would be great?

What I did was the following:

``````#BUILD2 - pointsource

# PART - 1/2
# assemble before applying pointsource
A, b = assemble_system(a, L, bcs)
delta = PointSource(V, Point(4., 4.), -1)
delta.apply(b)

# PART - 2/2
# if you define solution as
uh = Function(V)
# Solve PDE system at time step
solve(A, uh.vector(), b)
``````

before I was using

``````# Solve variational problem for time step
solve(a == L, u, bcs)
``````

The whole code:

``````
# Import Packages
from dolfin import *
from mshr import *
import time

start_time = time.time()

# Time Stepping
tmax = 60
num_steps = 200       # number of time steps
dt = tmax/num_steps     # time step size

# meshs
mesh = RectangleMesh(Point(0.0, 0.0), Point(8.0, 8.0), 160, 160, "right")               #1D -> 2D
P1 = FiniteElement('CG', triangle, 1)

# Function space & trial function - concentration
V = FunctionSpace(mesh, P1)
u = TrialFunction(V)
v = TestFunction(V)

# BUILD1- beta p1
# Define function space for velocity
W = VectorFunctionSpace(mesh, 'P', 2)
w = Function(W)

# velocity
beta = project(Expression(('-2','0'), degree=1), W)

# Initial condition                                                               #1D -> 2D
u_0 = Expression(('3.0'), degree=1)
u_n = interpolate(u_0, V)

# Boundary                                                                          #1D -> 2D
def boundary(x):
return near(x[0], 0.0, DOLFIN_EPS) or near(x[0], 8.0, DOLFIN_EPS) or near(x[1], 0.0, DOLFIN_EPS) or near(x[1], 8.0, DOLFIN_EPS)

# Condition
u10 = Expression('1.0', degree=1)
bcs = DirichletBC(V, u10, boundary)

# PDE - Crank Nicolson
a = lhs(F)
L = rhs(F)

# assemble before applying pointsource
A, b = assemble_system(a, L, bcs)
delta = PointSource(V, Point(4., 4.), +4)
delta.apply(b)

# Solution
u = Function(V)

# Create VTK files for visualization output
vtkfile = File('bbb/bbb.pvd')

# Time-stepping
t = 0
for n in range(num_steps):

# Update current time
t += dt

# Solve variational problem for time step
solve(A, u.vector(), b, 'bicgstab', 'petsc_amg')

# Save solution to file (VTK)
vtkfile << (u, t)

# Update previous solution
u_n.assign(u)

# Print update
print ("\nTime " + str(t) + " of " + str(tmax) + "\n")

``````

Any suggestion would be appreciated,
Bests.