myQuad = Quadrilateral(domainCorners)

    numElemU = 10
    numElemV = 20
    numGauss = 4
    maxLevel = 3

    phiRefThresh = 0.1

    vertex = myQuad.genElemList(numElemU, numElemV)
    xPhys, yPhys, wgtsPhys = myQuad.getElemIntPts(vertex, numGauss)
    X_f = np.concatenate((xPhys, yPhys, wgtsPhys), axis=1)
    hist_f = np.transpose(
        np.array([np.zeros((X_f.shape[0]), dtype=np.float32)]))
    filename = 'Training_scatter'
    scatterPlot(X_f, figHeight, figWidth, filename)

    # Generating the prediction mesh
    nPred = np.array([[135, 45], [135, 45], [135, 45]])
    offset = 2 * model['l']
    secBound = np.array(
        [[0.0, 0.5 * model['W'] - offset],
         [0.5 * model['W'] - offset, 0.5 * model['W'] + offset],
         [0.5 * model['W'] + offset, model['W']]],
        dtype=np.float32)
    Grid, xGrid, yGrid, hist_grid = genGrid(nPred, model['L'], secBound)
    filename = 'Prediction_scatter'
    scatterPlot(Grid, figHeight, figWidth, filename)

    phi_pred_old = hist_grid  #Initializing phi_pred_old to zero
    numElemEdge = 80
    numGaussEdge = 1
    xEdge, yEdge, xNormEdge, yNormEdge, wgtsEdge = myAnnulus.getQuadEdgePts(
        numElemEdge, numGaussEdge, 4)
    trac_x = -model['P'] * xNormEdge
    trac_y = -model['P'] * yNormEdge
    xEdgePts = np.concatenate((xEdge, yEdge, wgtsEdge, trac_x, trac_y), axis=1)

    model_pts = dict()
    model_pts['X_int'] = X_f
    model_pts['X_bnd'] = xEdgePts

    modelNN = PINN_TC(model_data, xEdgePts, NN_param)

    filename = 'Training_scatter'
    scatterPlot(X_f, xEdgePts, figHeight, figWidth, filename)

    nPred = 40
    withEdges = [1, 1, 1, 1]
    xGrid, yGrid = myAnnulus.getUnifIntPts(nPred, nPred, withEdges)
    Grid = np.concatenate((xGrid, yGrid), axis=1)

    num_train_its = 1000
    numSteps = 4  # Number of refinement steps
    for i in range(numSteps):

        # Compute/training
        start_time = time.time()
        modelNN.train(X_f, num_train_its)
        elapsed = time.time() - start_time
        print('Training time: %.4f' % (elapsed))