# Set Initial Condition for Model with Fine Mesh Using Solution Obtained with Coarser Mesh

Set initial conditions for a model with a fine mesh by using the coarse-mesh solution from a previous analysis.

Create a PDE model and include the geometry of the built-in function `squareg`.

```model = createpde; geometryFromEdges(model,@squareg);```

Specify the coefficients, apply boundary conditions, and set initial conditions.

```specifyCoefficients(model,"m",0,"d",1,"c",5,"a",0,"f",0.1); applyBoundaryCondition(model,"dirichlet","Edge",1,"u",1); setInitialConditions(model,10);```

Generate a comparatively coarse mesh with the target maximum element edge length of 0.1.

`generateMesh(model,"Hmax",0.1);`

Solve the model for the entire time span of 0 through 0.02 seconds.

```tlist = linspace(0,2E-2,20); Rtotal = solvepde(model,tlist);```

Interpolate the solution at the origin for the entire time span.

`singleSpanSol = Rtotal.interpolateSolution(0,0,1:numel(tlist)); `

Now solve the model for the first half of the time span. You will use this solution as an initial condition when solving the model with a finer mesh for the second half of the time span.

```tlist1 = linspace(0,1E-2,10); R1 = solvepde(model,tlist1);```

Create an interpolant to interpolate the initial condition.

```x = model.Mesh.Nodes(1,:)'; y = model.Mesh.Nodes(2,:)'; interpolant = scatteredInterpolant(x,y,R1.NodalSolution(:,end));```

Generate a finer mesh by setting the target maximum element edge length to 0.05.

`generateMesh(model,"Hmax",0.05);`

Use the coarse mesh model results as the initial condition for the model with the finer mesh. For the definition of the `icFcn` function, see Initial Conditions Function.

`setInitialConditions(model,@(region) icFcn(region,interpolant));`

Solve the model for the second half of the time span.

```tlist2 = linspace(1E-2,2E-2,10); R2 = solvepde(model,tlist2);```

Interpolate the solutions at the origin for the first and the second halves of the time span.

```multispanSol1 = R1.interpolateSolution(0,0,1:numel(tlist1)); multispanSol2 = R2.interpolateSolution(0,0,1:numel(tlist2));```

Plot all three solutions at the origin.

```figure plot(tlist,singleSpanSol) hold on plot(tlist1, multispanSol1,"r*") plot(tlist2, multispanSol2,"ko") legend("Overall solution","Coarse mesh solution", "Fine mesh solution")``` ### Initial Conditions Function

```function u0 = icFcn(region,interpolant) u0 = interpolant(region.x',region.y'); end```