1D Case - Figure 10

1D Case - Figure 10#

Comparison of residual loss

\[L_r = \frac{\lambda_1}{n_{\Omega}}\sum_{i=0}^{n_{\Omega}-1}\left( \nabla \cdot \underline{\underline{\sigma}} - \underline f \right)^2 + \frac{\lambda_1}{n_{\Omega}}\sum_{i=0}^{n_{\Omega}-1}\left( \underline{\underline{\sigma}}(\underline u) - \underline{\underline{\sigma}} \right)^2 \]

weak formulation loss

\[ L_w = \sum_{i=0}^{n-1} \left(\int_\Omega \underline{\underline{\sigma}}(\underline u):\underline{\underline{\epsilon}}(\underline u_i^*) - \int_{\partial\Omega_N} \underline t \underline u_i^* - \int_\Omega\underline f \underline u_i^*\right)^2\]

and potential energy loss

\[L_p = \frac{1}{2}\int_\Omega \underline{\underline{\sigma}}(\underline u):\underline{\underline{\epsilon}}(\underline u) - \int_\Omega\underline f \underline u - \int_{\partial\Omega_N} \underline t \underline u\]
#%% Libraries import
import sys  
# sys.path.append("../neurom/")

from neurom.HiDeNN_PDE import MeshNN, NeuROM, MeshNN_2D, MeshNN_1D
# Import pre-processing functions
import neurom.src.Pre_processing as pre
# Import torch librairies
import torch
import torch.nn as nn
# Import Training funcitons
from neurom.src.Training import Training_1D_FEM_LBFGS, Training_1D_Mixed_LBFGS
#Import post processing libraries
import neurom.Post.Plots as Pplot
import time
import os
import torch._dynamo as dynamo
mps_device = torch.device("mps")
from importlib import reload  # Python 3.4+
import tomllib
import numpy as numpy
import argparse
* Executing job in Configuration/config_2D.toml
* WARNING: could not load tikzplotlib
# Load default configuration file (defines dimension, domain, boundary conditions, number of training iterations etc.)
Default_config_file = 'Configurations/config_1D.toml'


with open(Default_config_file, mode="rb") as f:
    config = tomllib.load(f)
# Experiment setting: Potential energy loss
# 6 mesh resolutions, 5-point quadrature 

mesh_resolution_pe = [10,21,41,80,160]
loss_u_pe = numpy.zeros((len(mesh_resolution_pe)))
loss_grad_pe = numpy.zeros((len(mesh_resolution_pe)))

config["interpolation"]["n_integr_points"] = 5
config["solver"]["IntegralMethod"] = "Gaussian_quad"
config["solver"]["FrozenMesh"] = True

for res in range(len(mesh_resolution_pe)):

    config["interpolation"]["np"] = mesh_resolution_pe[res]
    

    # Load parameters
    if config["interpolation"]["dimension"] == 1:
        Mat = pre.Material(             flag_lame = True,                               # If True should input lmbda and mu instead of E and nu
                                        coef1     = config["material"]["E"],            # Young Modulus
                                        coef2     = config["geometry"]["A"]             # Section area of the 1D bar
                            )
    elif config["interpolation"]["dimension"] == 2:
        try:
            Mat = pre.Material(         flag_lame = False,                              # If True should input lmbda and mu instead of E and nu
                                        coef1     = config["material"]["E"],            # Young Modulus
                                        coef2     = config["material"]["nu"]            # Poisson's ratio
                            )
        except:
            Mat = pre.Material(         flag_lame = True,                               # If True should input lmbda and mu instead of E and nu
                                        coef1     = config["material"]["lmbda"],        # First Lame's coef
                                        coef2     = config["material"]["mu"]            # Second Lame's coef
                            )

    MaxElemSize = pre.ElementSize(
                                    dimension     = config["interpolation"]["dimension"],
                                    L             = config["geometry"]["L"],
                                    order         = config["interpolation"]["order"],
                                    np            = config["interpolation"]["np"],
                                )

    Excluded = []

    Mesh_object = pre.Mesh( 
                                    config["geometry"]["Name"],                 # Create the mesh object
                                    MaxElemSize, 
                                    config["interpolation"]["order"], 
                                    config["interpolation"]["dimension"]
                            )

    Mesh_object.AddBorders(config["Borders"]["Borders"])
    Mesh_object.AddBCs(                                                         # Include Boundary physical domains infos (BCs+volume)
                                    config["geometry"]["Volume_element"],
                                    Excluded,
                                    config["DirichletDictionryList"]
                        )                   

    Mesh_object.MeshGeo()                                                       # Mesh the .geo file if .msh does not exist
    Mesh_object.ReadMesh() 

    print(config["solver"]["IntegralMethod"])
    print()
    # Vtk file not necessary if not using reference element implementation
    if config["solver"]["IntegralMethod"] == "Gaussian_quad":
        Mesh_object.ExportMeshVtk1D()

    # Build the assembly weight matrix if needed
    if config["interpolation"]["dimension"] ==1 and config["solver"]["IntegralMethod"] == "Trapezoidal":
        Mesh_object.AssemblyMatrix()                                            

    if int(Mesh_object.dim) != int(Mesh_object.dimension):
        raise ValueError("The dimension of the provided geometry does not match the job dimension")

    if config["solver"]["TrainingStrategy"]=="Integral":
        match config["solver"]["IntegralMethod"]:                          
            case "Gaussian_quad":
                Model_FEM = MeshNN_1D(Mesh_object, config["interpolation"]["n_integr_points"])  
            case "Trapezoidal":
                Model_FEM = MeshNN(Mesh_object)

    if config["solver"]["TrainingStrategy"]=="Mixed":
        if config["solver"]["IntegralMethod"] == "Gaussian_quad":
            Model_FEM = MeshNN_1D(Mesh_object, config["interpolation"]["n_integr_points"])
            Model_test = MeshNN_1D(Mesh_object, config["interpolation"]["n_integr_points"])  
            Model_test.Freeze_Mesh()

    # Default setting
    Model_FEM.Freeze_Mesh()
    Model_FEM.UnFreeze_FEM()

    if not config["solver"]["FrozenMesh"]:
        Model_FEM.UnFreeze_Mesh()    

    if config["solver"]["TrainingStrategy"]=="Mixed":
        Model_FEM = Training_1D_FEM_LBFGS(Model_FEM, config, Mat, Model_test)
    else:
        Model_FEM = Training_1D_FEM_LBFGS(Model_FEM, config, Mat)

    loss_u_pe[res], loss_grad_pe[res] = Pplot.Normalized_error_1D(Model_FEM,config,Mat)
 
 
   _   _            ____   ___  __  __ 
  | \ | | ___ _   _|  _ \ / _ \|  \/  |
  |  \| |/ _ \ | | | |_) | | | | |\/| |
  | |\  |  __/ |_| |  _ <| |_| | |  | |
  |_| \_|\___|\__,_|_| \_\ ___/|_|  |_|

                  2024.09.18

************ MESH READING COMPLETE ************

 * Dimension of the problem: 1D
 * Elements type:            2-node bar
 * Number of Dofs:           10
Gaussian_quad


mesh.NNodes =  10
border_nodes :  [[1.0], [2.0]]
self.order =  1
mesh.ListOfDirichletsBCsValues =  [0, 0.005]
IDs =  tensor([[1]], dtype=torch.int32)
IDs =  tensor([0], dtype=torch.int32)
IDs =  tensor([[2]], dtype=torch.int32)
IDs =  tensor([1], dtype=torch.int32)
frozen :  tensor([0], dtype=torch.int32)
frozen :  tensor([1], dtype=torch.int32)
epoch =  1
     loss =  -0.01360793404964395
     loss_decrease =  1.013607934049644
epoch =  2
     loss =  -0.01360793404964395
     loss_decrease =  0.0
epoch =  3
     loss =  -0.01360793404964395
     loss_decrease =  0.0
epoch =  4
     loss =  -0.01360793404964395
     loss_decrease =  0.0
epoch =  5
     loss =  -0.01360793404964395
     loss_decrease =  0.0
epoch =  6
     loss =  -0.01360793404964395
     loss_decrease =  0.0
* Final training loss: -1.3608e-02

 
 
   _   _            ____   ___  __  __ 
  | \ | | ___ _   _|  _ \ / _ \|  \/  |
  |  \| |/ _ \ | | | |_) | | | | |\/| |
  | |\  |  __/ |_| |  _ <| |_| | |  | |
  |_| \_|\___|\__,_|_| \_\ ___/|_|  |_|

                  2024.09.18

************ MESH READING COMPLETE ************

 * Dimension of the problem: 1D
 * Elements type:            2-node bar
 * Number of Dofs:           21
Gaussian_quad


mesh.NNodes =  21
border_nodes :  [[1.0], [2.0]]
self.order =  1
mesh.ListOfDirichletsBCsValues =  [0, 0.005]
IDs =  tensor([[1]], dtype=torch.int32)
IDs =  tensor([0], dtype=torch.int32)
IDs =  tensor([[2]], dtype=torch.int32)
IDs =  tensor([1], dtype=torch.int32)
frozen :  tensor([0], dtype=torch.int32)
frozen :  tensor([1], dtype=torch.int32)
epoch =  1
     loss =  -0.026427602317554283
     loss_decrease =  1.0264276023175543
epoch =  2
     loss =  -0.026532093243903283
     loss_decrease =  0.003953855710913004
epoch =  3
     loss =  -0.026532093243903283
     loss_decrease =  0.0
epoch =  4
     loss =  -0.026532093243903283
     loss_decrease =  0.0
epoch =  5
     loss =  -0.026532093243903283
     loss_decrease =  0.0
epoch =  6
     loss =  -0.026532093243903283
     loss_decrease =  0.0
epoch =  7
     loss =  -0.026532093243903283
     loss_decrease =  0.0
* Final training loss: -2.6532e-02

 
 
   _   _            ____   ___  __  __ 
  | \ | | ___ _   _|  _ \ / _ \|  \/  |
  |  \| |/ _ \ | | | |_) | | | | |\/| |
  | |\  |  __/ |_| |  _ <| |_| | |  | |
  |_| \_|\___|\__,_|_| \_\ ___/|_|  |_|

                  2024.09.18

************ MESH READING COMPLETE ************

 * Dimension of the problem: 1D
 * Elements type:            2-node bar
 * Number of Dofs:           41
Gaussian_quad


mesh.NNodes =  41
border_nodes :  [[1.0], [2.0]]
self.order =  1
mesh.ListOfDirichletsBCsValues =  [0, 0.005]
IDs =  tensor([[1]], dtype=torch.int32)
IDs =  tensor([0], dtype=torch.int32)
IDs =  tensor([[2]], dtype=torch.int32)
IDs =  tensor([1], dtype=torch.int32)
frozen :  tensor([0], dtype=torch.int32)
frozen :  tensor([1], dtype=torch.int32)
epoch =  1
     loss =  0.28993858419167323
     loss_decrease =  0.7100614158083267
epoch =  2
     loss =  -0.029972669330848564
     loss_decrease =  1.1033759249891149
epoch =  3
     loss =  -0.030008097682752442
     loss_decrease =  0.001182021911789299
epoch =  4
     loss =  -0.030008097682752442
     loss_decrease =  0.0
epoch =  5
     loss =  -0.030008097682752442
     loss_decrease =  0.0
epoch =  6
     loss =  -0.030008097682752442
     loss_decrease =  0.0
epoch =  7
     loss =  -0.030008097682752442
     loss_decrease =  0.0
epoch =  8
     loss =  -0.030008097682752442
     loss_decrease =  0.0
* Final training loss: -3.0008e-02

 
 
   _   _            ____   ___  __  __ 
  | \ | | ___ _   _|  _ \ / _ \|  \/  |
  |  \| |/ _ \ | | | |_) | | | | |\/| |
  | |\  |  __/ |_| |  _ <| |_| | |  | |
  |_| \_|\___|\__,_|_| \_\ ___/|_|  |_|

                  2024.09.18

************ MESH READING COMPLETE ************

 * Dimension of the problem: 1D
 * Elements type:            2-node bar
 * Number of Dofs:           80
Gaussian_quad


mesh.NNodes =  80
border_nodes :  [[1.0], [2.0]]
self.order =  1
mesh.ListOfDirichletsBCsValues =  [0, 0.005]
IDs =  tensor([[1]], dtype=torch.int32)
IDs =  tensor([0], dtype=torch.int32)
IDs =  tensor([[2]], dtype=torch.int32)
IDs =  tensor([1], dtype=torch.int32)
frozen :  tensor([0], dtype=torch.int32)
frozen :  tensor([1], dtype=torch.int32)
epoch =  1
     loss =  0.6288340579168725
     loss_decrease =  0.3711659420831275
epoch =  2
     loss =  0.3066434323855191
     loss_decrease =  0.5123619204065832
epoch =  3
     loss =  -0.0303123071384417
     loss_decrease =  1.098851969215934
epoch =  4
     loss =  -0.031085920232714316
     loss_decrease =  0.025521419096850274
epoch =  5
     loss =  -0.031120090704753377
     loss_decrease =  0.0010992266525570056
epoch =  6
     loss =  -0.031120090704753377
     loss_decrease =  0.0
epoch =  7
     loss =  -0.031120090704753377
     loss_decrease =  0.0
epoch =  8
     loss =  -0.031120090704753377
     loss_decrease =  0.0
epoch =  9
     loss =  -0.031120090704753377
     loss_decrease =  0.0
epoch =  10
     loss =  -0.031120090704753377
     loss_decrease =  0.0
* Final training loss: -3.1120e-02

 
 
   _   _            ____   ___  __  __ 
  | \ | | ___ _   _|  _ \ / _ \|  \/  |
  |  \| |/ _ \ | | | |_) | | | | |\/| |
  | |\  |  __/ |_| |  _ <| |_| | |  | |
  |_| \_|\___|\__,_|_| \_\ ___/|_|  |_|

                  2024.09.18

************ MESH READING COMPLETE ************

 * Dimension of the problem: 1D
 * Elements type:            2-node bar
 * Number of Dofs:           160
Gaussian_quad


mesh.NNodes =  160
border_nodes :  [[1.0], [2.0]]
self.order =  1
mesh.ListOfDirichletsBCsValues =  [0, 0.005]
IDs =  tensor([[1]], dtype=torch.int32)
IDs =  tensor([0], dtype=torch.int32)
IDs =  tensor([[2]], dtype=torch.int32)
IDs =  tensor([1], dtype=torch.int32)
frozen :  tensor([0], dtype=torch.int32)
frozen :  tensor([1], dtype=torch.int32)
epoch =  1
     loss =  1.2997354148436913
     loss_decrease =  -0.29973541484369126
epoch =  2
     loss =  0.6372422737786037
     loss_decrease =  0.5097138490642423
epoch =  3
     loss =  0.4188182025065029
     loss_decrease =  0.34276456578583414
epoch =  4
     loss =  0.30676373446269867
     loss_decrease =  0.26754918332868877
epoch =  5
     loss =  -0.029269310907091256
     loss_decrease =  1.0954132044270386
epoch =  6
     loss =  -0.03061032842049393
     loss_decrease =  0.04581650444929942
epoch =  7
     loss =  -0.031132497854774798
     loss_decrease =  0.017058602805818633
epoch =  8
     loss =  -0.03137726240708605
     loss_decrease =  0.007862027436828706
epoch =  9
     loss =  -0.0314177333104379
     loss_decrease =  0.0012898162633433801
epoch =  10
     loss =  -0.03141774172382049
     loss_decrease =  2.6779088436147684e-07
epoch =  11
     loss =  -0.03141774172382049
     loss_decrease =  0.0
epoch =  12
     loss =  -0.03141774172382049
     loss_decrease =  0.0
epoch =  13
     loss =  -0.03141774172382049
     loss_decrease =  0.0
epoch =  14
     loss =  -0.03141774172382049
     loss_decrease =  0.0
epoch =  15
     loss =  -0.03141774172382049
     loss_decrease =  0.0
* Final training loss: -3.1418e-02
# Experiment setting: Weak formulation loss
# 4 mesh resolutions, 3-,4- and 5-point quadrature, fixed mesh

mesh_resolution_w = [10,21,41,80]
quadrature_points = [3,4,5]

loss_u_w = numpy.zeros((len(mesh_resolution_w),len(quadrature_points)))
loss_grad_w = numpy.zeros((len(mesh_resolution_w),len(quadrature_points)))

config["solver"]["TrainingStrategy"] = "Mixed"
config["solver"]["IntegralMethod"] = "Gaussian_quad"
config["solver"]["FrozenMesh"] = True

for res in range(len(mesh_resolution_w)):
    config["interpolation"]["np"] = mesh_resolution_w[res]
    for q in range(len(quadrature_points)):
        config["interpolation"]["n_integr_points"] = quadrature_points[q]

        # Load parameters
        Mat = pre.Material(     flag_lame = True,                          # If True should input lmbda and mu instead of E and nu
                                coef1     = config["material"]["E"],        # Young Modulus
                                coef2     = config["material"]["A"]        # Poisson's ratio
                            )

        MaxElemSize = pre.ElementSize(
                                        dimension     = config["interpolation"]["dimension"],
                                        L             = config["geometry"]["L"],
                                        order         = config["interpolation"]["order"],
                                        np            = config["interpolation"]["np"],
                                    )

        Excluded = []

        Mesh_object = pre.Mesh( 
                                        config["geometry"]["Name"],                 # Create the mesh object
                                        MaxElemSize, 
                                        config["interpolation"]["order"], 
                                        config["interpolation"]["dimension"]
                                )

        Mesh_object.AddBorders(config["Borders"]["Borders"])
        Mesh_object.AddBCs(                                                         # Include Boundary physical domains infos (BCs+volume)
                                        config["geometry"]["Volume_element"],
                                        Excluded,
                                        config["DirichletDictionryList"]
                            )                   

        Mesh_object.MeshGeo()                                                       # Mesh the .geo file if .msh does not exist
        Mesh_object.ReadMesh() 

        print(config["solver"]["IntegralMethod"])
        print()
        # Vtk file not necessary if not using reference element implementation
        if config["solver"]["IntegralMethod"] == "Gaussian_quad":
            Mesh_object.ExportMeshVtk1D()

        # Build the assembly weight matrix if needed
        if config["interpolation"]["dimension"] ==1 and config["solver"]["IntegralMethod"] == "Trapezoidal":
            Mesh_object.AssemblyMatrix()                                            

        if int(Mesh_object.dim) != int(Mesh_object.dimension):
            raise ValueError("The dimension of the provided geometry does not match the job dimension")

        if config["solver"]["TrainingStrategy"]=="Integral":
            match config["solver"]["IntegralMethod"]:                          
                case "Gaussian_quad":
                    Model_FEM = MeshNN_1D(Mesh_object, config["interpolation"]["n_integr_points"])  
                case "Trapezoidal":
                    Model_FEM = MeshNN(Mesh_object)

        if config["solver"]["TrainingStrategy"]=="Mixed":
            if config["solver"]["IntegralMethod"] == "Gaussian_quad":
                Model_FEM = MeshNN_1D(Mesh_object, config["interpolation"]["n_integr_points"])
                Model_test = MeshNN_1D(Mesh_object, config["interpolation"]["n_integr_points"])  
                Model_test.Freeze_Mesh()

        # Default setting
        Model_FEM.Freeze_Mesh()
        Model_FEM.UnFreeze_FEM()

        if not config["solver"]["FrozenMesh"]:
            Model_FEM.UnFreeze_Mesh()    

        if config["solver"]["TrainingStrategy"]=="Mixed":
            Model_FEM = Training_1D_FEM_LBFGS(Model_FEM, config, Mat, Model_test)
        else:
            Model_FEM = Training_1D_FEM_LBFGS(Model_FEM, config, Mat)

        loss_u_w[res,q], loss_grad_w[res,q] = Pplot.Normalized_error_1D(Model_FEM,config,Mat)
 
 
   _   _            ____   ___  __  __ 
  | \ | | ___ _   _|  _ \ / _ \|  \/  |
  |  \| |/ _ \ | | | |_) | | | | |\/| |
  | |\  |  __/ |_| |  _ <| |_| | |  | |
  |_| \_|\___|\__,_|_| \_\ ___/|_|  |_|

                  2024.09.18

************ MESH READING COMPLETE ************

 * Dimension of the problem: 1D
 * Elements type:            2-node bar
 * Number of Dofs:           10
Gaussian_quad


mesh.NNodes =  10
border_nodes :  [[1.0], [2.0]]
self.order =  1
mesh.ListOfDirichletsBCsValues =  [0, 0.005]
IDs =  tensor([[1]], dtype=torch.int32)
IDs =  tensor([0], dtype=torch.int32)
IDs =  tensor([[2]], dtype=torch.int32)
IDs =  tensor([1], dtype=torch.int32)
mesh.NNodes =  10
border_nodes :  [[1.0], [2.0]]
self.order =  1
mesh.ListOfDirichletsBCsValues =  [0, 0.005]
IDs =  tensor([[1]], dtype=torch.int32)
IDs =  tensor([0], dtype=torch.int32)
IDs =  tensor([[2]], dtype=torch.int32)
IDs =  tensor([1], dtype=torch.int32)
frozen :  tensor([0], dtype=torch.int32)
frozen :  tensor([1], dtype=torch.int32)
epoch =  1
     loss =  0.04996717398955754
     loss_decrease =  0.9500328260104425
epoch =  2
     loss =  1.5801587626118599e-10
     loss_decrease =  0.9999999968376062
epoch =  3
     loss =  1.5801587626118599e-10
     loss_decrease =  0.0
epoch =  4
     loss =  1.5801587626118599e-10
     loss_decrease =  0.0
epoch =  5
     loss =  1.5801587626118599e-10
     loss_decrease =  0.0
epoch =  6
     loss =  1.5801587626118599e-10
     loss_decrease =  0.0
epoch =  7
     loss =  1.5801587626118599e-10
     loss_decrease =  0.0
* Final training loss: 1.5802e-10

 
 
   _   _            ____   ___  __  __ 
  | \ | | ___ _   _|  _ \ / _ \|  \/  |
  |  \| |/ _ \ | | | |_) | | | | |\/| |
  | |\  |  __/ |_| |  _ <| |_| | |  | |
  |_| \_|\___|\__,_|_| \_\ ___/|_|  |_|

                  2024.09.18

************ MESH READING COMPLETE ************

 * Dimension of the problem: 1D
 * Elements type:            2-node bar
 * Number of Dofs:           10
Gaussian_quad


mesh.NNodes =  10
border_nodes :  [[1.0], [2.0]]
self.order =  1
mesh.ListOfDirichletsBCsValues =  [0, 0.005]
IDs =  tensor([[1]], dtype=torch.int32)
IDs =  tensor([0], dtype=torch.int32)
IDs =  tensor([[2]], dtype=torch.int32)
IDs =  tensor([1], dtype=torch.int32)
mesh.NNodes =  10
border_nodes :  [[1.0], [2.0]]
self.order =  1
mesh.ListOfDirichletsBCsValues =  [0, 0.005]
IDs =  tensor([[1]], dtype=torch.int32)
IDs =  tensor([0], dtype=torch.int32)
IDs =  tensor([[2]], dtype=torch.int32)
IDs =  tensor([1], dtype=torch.int32)
frozen :  tensor([0], dtype=torch.int32)
frozen :  tensor([1], dtype=torch.int32)
epoch =  1
     loss =  0.010667574981019499
     loss_decrease =  0.9893324250189806
epoch =  2
     loss =  3.369287590824238e-11
     loss_decrease =  0.9999999968415618
epoch =  3
     loss =  3.369287590824238e-11
     loss_decrease =  0.0
epoch =  4
     loss =  3.369287590824238e-11
     loss_decrease =  0.0
epoch =  5
     loss =  3.369287590824238e-11
     loss_decrease =  0.0
epoch =  6
     loss =  3.369287590824238e-11
     loss_decrease =  0.0
epoch =  7
     loss =  3.369287590824238e-11
     loss_decrease =  0.0
* Final training loss: 3.3693e-11

 
 
   _   _            ____   ___  __  __ 
  | \ | | ___ _   _|  _ \ / _ \|  \/  |
  |  \| |/ _ \ | | | |_) | | | | |\/| |
  | |\  |  __/ |_| |  _ <| |_| | |  | |
  |_| \_|\___|\__,_|_| \_\ ___/|_|  |_|

                  2024.09.18

************ MESH READING COMPLETE ************

 * Dimension of the problem: 1D
 * Elements type:            2-node bar
 * Number of Dofs:           10
Gaussian_quad


mesh.NNodes =  10
border_nodes :  [[1.0], [2.0]]
self.order =  1
mesh.ListOfDirichletsBCsValues =  [0, 0.005]
IDs =  tensor([[1]], dtype=torch.int32)
IDs =  tensor([0], dtype=torch.int32)
IDs =  tensor([[2]], dtype=torch.int32)
IDs =  tensor([1], dtype=torch.int32)
mesh.NNodes =  10
border_nodes :  [[1.0], [2.0]]
self.order =  1
mesh.ListOfDirichletsBCsValues =  [0, 0.005]
IDs =  tensor([[1]], dtype=torch.int32)
IDs =  tensor([0], dtype=torch.int32)
IDs =  tensor([[2]], dtype=torch.int32)
IDs =  tensor([1], dtype=torch.int32)
frozen :  tensor([0], dtype=torch.int32)
frozen :  tensor([1], dtype=torch.int32)
epoch =  1
     loss =  0.011767560866835624
     loss_decrease =  0.9882324391331644
epoch =  2
     loss =  1.9001152721864545e-10
     loss_decrease =  0.9999999838529386
epoch =  3
     loss =  1.9001152721864545e-10
     loss_decrease =  0.0
epoch =  4
     loss =  1.9001152721864545e-10
     loss_decrease =  0.0
epoch =  5
     loss =  1.9001152721864545e-10
     loss_decrease =  0.0
epoch =  6
     loss =  1.9001152721864545e-10
     loss_decrease =  0.0
epoch =  7
     loss =  1.9001152721864545e-10
     loss_decrease =  0.0
* Final training loss: 1.9001e-10

 
 
   _   _            ____   ___  __  __ 
  | \ | | ___ _   _|  _ \ / _ \|  \/  |
  |  \| |/ _ \ | | | |_) | | | | |\/| |
  | |\  |  __/ |_| |  _ <| |_| | |  | |
  |_| \_|\___|\__,_|_| \_\ ___/|_|  |_|

                  2024.09.18

************ MESH READING COMPLETE ************

 * Dimension of the problem: 1D
 * Elements type:            2-node bar
 * Number of Dofs:           21
Gaussian_quad


mesh.NNodes =  21
border_nodes :  [[1.0], [2.0]]
self.order =  1
mesh.ListOfDirichletsBCsValues =  [0, 0.005]
IDs =  tensor([[1]], dtype=torch.int32)
IDs =  tensor([0], dtype=torch.int32)
IDs =  tensor([[2]], dtype=torch.int32)
IDs =  tensor([1], dtype=torch.int32)
mesh.NNodes =  21
border_nodes :  [[1.0], [2.0]]
self.order =  1
mesh.ListOfDirichletsBCsValues =  [0, 0.005]
IDs =  tensor([[1]], dtype=torch.int32)
IDs =  tensor([0], dtype=torch.int32)
IDs =  tensor([[2]], dtype=torch.int32)
IDs =  tensor([1], dtype=torch.int32)
frozen :  tensor([0], dtype=torch.int32)
frozen :  tensor([1], dtype=torch.int32)
epoch =  1
     loss =  10.821250730439658
     loss_decrease =  -9.821250730439658
epoch =  2
     loss =  4.255491831492432
     loss_decrease =  0.6067467673101836
epoch =  3
     loss =  3.246720740290397e-11
     loss_decrease =  0.9999999999923704
epoch =  4
     loss =  3.246720740290397e-11
     loss_decrease =  0.0
epoch =  5
     loss =  3.246720740290397e-11
     loss_decrease =  0.0
epoch =  6
     loss =  3.246720740290397e-11
     loss_decrease =  0.0
epoch =  7
     loss =  3.246720740290397e-11
     loss_decrease =  0.0
epoch =  8
     loss =  3.246720740290397e-11
     loss_decrease =  0.0
* Final training loss: 3.2467e-11

 
 
   _   _            ____   ___  __  __ 
  | \ | | ___ _   _|  _ \ / _ \|  \/  |
  |  \| |/ _ \ | | | |_) | | | | |\/| |
  | |\  |  __/ |_| |  _ <| |_| | |  | |
  |_| \_|\___|\__,_|_| \_\ ___/|_|  |_|

                  2024.09.18

************ MESH READING COMPLETE ************

 * Dimension of the problem: 1D
 * Elements type:            2-node bar
 * Number of Dofs:           21
Gaussian_quad


mesh.NNodes =  21
border_nodes :  [[1.0], [2.0]]
self.order =  1
mesh.ListOfDirichletsBCsValues =  [0, 0.005]
IDs =  tensor([[1]], dtype=torch.int32)
IDs =  tensor([0], dtype=torch.int32)
IDs =  tensor([[2]], dtype=torch.int32)
IDs =  tensor([1], dtype=torch.int32)
mesh.NNodes =  21
border_nodes :  [[1.0], [2.0]]
self.order =  1
mesh.ListOfDirichletsBCsValues =  [0, 0.005]
IDs =  tensor([[1]], dtype=torch.int32)
IDs =  tensor([0], dtype=torch.int32)
IDs =  tensor([[2]], dtype=torch.int32)
IDs =  tensor([1], dtype=torch.int32)
frozen :  tensor([0], dtype=torch.int32)
frozen :  tensor([1], dtype=torch.int32)
epoch =  1
     loss =  10.82164257853568
     loss_decrease =  -9.82164257853568
epoch =  2
     loss =  4.253599727878463
     loss_decrease =  0.6069358512805332
epoch =  3
     loss =  5.500412093824087e-13
     loss_decrease =  0.9999999999998708
epoch =  4
     loss =  5.500412093824087e-13
     loss_decrease =  0.0
epoch =  5
     loss =  5.500412093824087e-13
     loss_decrease =  0.0
epoch =  6
     loss =  5.500412093824087e-13
     loss_decrease =  0.0
epoch =  7
     loss =  5.500412093824087e-13
     loss_decrease =  0.0
epoch =  8
     loss =  5.500412093824087e-13
     loss_decrease =  0.0
* Final training loss: 5.5004e-13

 
 
   _   _            ____   ___  __  __ 
  | \ | | ___ _   _|  _ \ / _ \|  \/  |
  |  \| |/ _ \ | | | |_) | | | | |\/| |
  | |\  |  __/ |_| |  _ <| |_| | |  | |
  |_| \_|\___|\__,_|_| \_\ ___/|_|  |_|

                  2024.09.18

************ MESH READING COMPLETE ************

 * Dimension of the problem: 1D
 * Elements type:            2-node bar
 * Number of Dofs:           21
Gaussian_quad


mesh.NNodes =  21
border_nodes :  [[1.0], [2.0]]
self.order =  1
mesh.ListOfDirichletsBCsValues =  [0, 0.005]
IDs =  tensor([[1]], dtype=torch.int32)
IDs =  tensor([0], dtype=torch.int32)
IDs =  tensor([[2]], dtype=torch.int32)
IDs =  tensor([1], dtype=torch.int32)
mesh.NNodes =  21
border_nodes :  [[1.0], [2.0]]
self.order =  1
mesh.ListOfDirichletsBCsValues =  [0, 0.005]
IDs =  tensor([[1]], dtype=torch.int32)
IDs =  tensor([0], dtype=torch.int32)
IDs =  tensor([[2]], dtype=torch.int32)
IDs =  tensor([1], dtype=torch.int32)
frozen :  tensor([0], dtype=torch.int32)
frozen :  tensor([1], dtype=torch.int32)
epoch =  1
     loss =  10.821639033199414
     loss_decrease =  -9.821639033199414
epoch =  2
     loss =  4.253621177619392
     loss_decrease =  0.6069337403909129
epoch =  3
     loss =  5.459349120035627e-13
     loss_decrease =  0.9999999999998715
epoch =  4
     loss =  5.459349120035627e-13
     loss_decrease =  0.0
epoch =  5
     loss =  5.459349120035627e-13
     loss_decrease =  0.0
epoch =  6
     loss =  5.459349120035627e-13
     loss_decrease =  0.0
epoch =  7
     loss =  5.459349120035627e-13
     loss_decrease =  0.0
epoch =  8
     loss =  5.459349120035627e-13
     loss_decrease =  0.0
* Final training loss: 5.4593e-13

 
 
   _   _            ____   ___  __  __ 
  | \ | | ___ _   _|  _ \ / _ \|  \/  |
  |  \| |/ _ \ | | | |_) | | | | |\/| |
  | |\  |  __/ |_| |  _ <| |_| | |  | |
  |_| \_|\___|\__,_|_| \_\ ___/|_|  |_|

                  2024.09.18

************ MESH READING COMPLETE ************

 * Dimension of the problem: 1D
 * Elements type:            2-node bar
 * Number of Dofs:           41
Gaussian_quad


mesh.NNodes =  41
border_nodes :  [[1.0], [2.0]]
self.order =  1
mesh.ListOfDirichletsBCsValues =  [0, 0.005]
IDs =  tensor([[1]], dtype=torch.int32)
IDs =  tensor([0], dtype=torch.int32)
IDs =  tensor([[2]], dtype=torch.int32)
IDs =  tensor([1], dtype=torch.int32)
mesh.NNodes =  41
border_nodes :  [[1.0], [2.0]]
self.order =  1
mesh.ListOfDirichletsBCsValues =  [0, 0.005]
IDs =  tensor([[1]], dtype=torch.int32)
IDs =  tensor([0], dtype=torch.int32)
IDs =  tensor([[2]], dtype=torch.int32)
IDs =  tensor([1], dtype=torch.int32)
frozen :  tensor([0], dtype=torch.int32)
frozen :  tensor([1], dtype=torch.int32)
epoch =  1
     loss =  149.762236322372
     loss_decrease =  -148.762236322372
epoch =  2
     loss =  34.16528198681369
     loss_decrease =  0.771869846325806
epoch =  3
     loss =  5.514502262402074
     loss_decrease =  0.8385933924230324
epoch =  4
     loss =  5.1004642599682555
     loss_decrease =  0.07508166335459376
epoch =  5
     loss =  2.984730523256778e-06
     loss_decrease =  0.9999994148119914
epoch =  6
     loss =  3.324506945634779e-10
     loss_decrease =  0.9998886161775835
epoch =  7
     loss =  3.324506945634779e-10
     loss_decrease =  0.0
epoch =  8
     loss =  3.324506945634779e-10
     loss_decrease =  0.0
epoch =  9
     loss =  3.324506945634779e-10
     loss_decrease =  0.0
epoch =  10
     loss =  3.324506945634779e-10
     loss_decrease =  0.0
epoch =  11
     loss =  3.324506945634779e-10
     loss_decrease =  0.0
* Final training loss: 3.3245e-10

 
 
   _   _            ____   ___  __  __ 
  | \ | | ___ _   _|  _ \ / _ \|  \/  |
  |  \| |/ _ \ | | | |_) | | | | |\/| |
  | |\  |  __/ |_| |  _ <| |_| | |  | |
  |_| \_|\___|\__,_|_| \_\ ___/|_|  |_|

                  2024.09.18

************ MESH READING COMPLETE ************

 * Dimension of the problem: 1D
 * Elements type:            2-node bar
 * Number of Dofs:           41
Gaussian_quad


mesh.NNodes =  41
border_nodes :  [[1.0], [2.0]]
self.order =  1
mesh.ListOfDirichletsBCsValues =  [0, 0.005]
IDs =  tensor([[1]], dtype=torch.int32)
IDs =  tensor([0], dtype=torch.int32)
IDs =  tensor([[2]], dtype=torch.int32)
IDs =  tensor([1], dtype=torch.int32)
mesh.NNodes =  41
border_nodes :  [[1.0], [2.0]]
self.order =  1
mesh.ListOfDirichletsBCsValues =  [0, 0.005]
IDs =  tensor([[1]], dtype=torch.int32)
IDs =  tensor([0], dtype=torch.int32)
IDs =  tensor([[2]], dtype=torch.int32)
IDs =  tensor([1], dtype=torch.int32)
frozen :  tensor([0], dtype=torch.int32)
frozen :  tensor([1], dtype=torch.int32)
epoch =  1
     loss =  149.76224951927202
     loss_decrease =  -148.76224951927202
epoch =  2
     loss =  34.16523747435376
     loss_decrease =  0.7718701636492363
epoch =  3
     loss =  5.516083849101045
     loss_decrease =  0.8385468898542939
epoch =  4
     loss =  5.247155164024966
     loss_decrease =  0.04875355278000454
epoch =  5
     loss =  0.004001719048314324
     loss_decrease =  0.9992373545429436
epoch =  6
     loss =  3.661646526063731e-10
     loss_decrease =  0.9999999084981609
epoch =  7
     loss =  3.661646526063731e-10
     loss_decrease =  0.0
epoch =  8
     loss =  3.661646526063731e-10
     loss_decrease =  0.0
epoch =  9
     loss =  3.661646526063731e-10
     loss_decrease =  0.0
epoch =  10
     loss =  3.661646526063731e-10
     loss_decrease =  0.0
epoch =  11
     loss =  3.661646526063731e-10
     loss_decrease =  0.0
* Final training loss: 3.6616e-10

 
 
   _   _            ____   ___  __  __ 
  | \ | | ___ _   _|  _ \ / _ \|  \/  |
  |  \| |/ _ \ | | | |_) | | | | |\/| |
  | |\  |  __/ |_| |  _ <| |_| | |  | |
  |_| \_|\___|\__,_|_| \_\ ___/|_|  |_|

                  2024.09.18

************ MESH READING COMPLETE ************

 * Dimension of the problem: 1D
 * Elements type:            2-node bar
 * Number of Dofs:           41
Gaussian_quad


mesh.NNodes =  41
border_nodes :  [[1.0], [2.0]]
self.order =  1
mesh.ListOfDirichletsBCsValues =  [0, 0.005]
IDs =  tensor([[1]], dtype=torch.int32)
IDs =  tensor([0], dtype=torch.int32)
IDs =  tensor([[2]], dtype=torch.int32)
IDs =  tensor([1], dtype=torch.int32)
mesh.NNodes =  41
border_nodes :  [[1.0], [2.0]]
self.order =  1
mesh.ListOfDirichletsBCsValues =  [0, 0.005]
IDs =  tensor([[1]], dtype=torch.int32)
IDs =  tensor([0], dtype=torch.int32)
IDs =  tensor([[2]], dtype=torch.int32)
IDs =  tensor([1], dtype=torch.int32)
frozen :  tensor([0], dtype=torch.int32)
frozen :  tensor([1], dtype=torch.int32)
epoch =  1
     loss =  149.7622495705457
     loss_decrease =  -148.7622495705457
epoch =  2
     loss =  34.16523621331812
     loss_decrease =  0.7718701721475909
epoch =  3
     loss =  5.516162236320666
     loss_decrease =  0.8385445895389306
epoch =  4
     loss =  5.249440084579332
     loss_decrease =  0.04835284756222836
epoch =  5
     loss =  6.853403521287848e-05
     loss_decrease =  0.9999869445056789
epoch =  6
     loss =  1.8140067681170891e-10
     loss_decrease =  0.9999973531300725
epoch =  7
     loss =  1.8140067681170891e-10
     loss_decrease =  0.0
epoch =  8
     loss =  1.8140067681170891e-10
     loss_decrease =  0.0
epoch =  9
     loss =  1.8140067681170891e-10
     loss_decrease =  0.0
epoch =  10
     loss =  1.8140067681170891e-10
     loss_decrease =  0.0
epoch =  11
     loss =  1.8140067681170891e-10
     loss_decrease =  0.0
* Final training loss: 1.8140e-10

 
 
   _   _            ____   ___  __  __ 
  | \ | | ___ _   _|  _ \ / _ \|  \/  |
  |  \| |/ _ \ | | | |_) | | | | |\/| |
  | |\  |  __/ |_| |  _ <| |_| | |  | |
  |_| \_|\___|\__,_|_| \_\ ___/|_|  |_|

                  2024.09.18

************ MESH READING COMPLETE ************

 * Dimension of the problem: 1D
 * Elements type:            2-node bar
 * Number of Dofs:           80
Gaussian_quad


mesh.NNodes =  80
border_nodes :  [[1.0], [2.0]]
self.order =  1
mesh.ListOfDirichletsBCsValues =  [0, 0.005]
IDs =  tensor([[1]], dtype=torch.int32)
IDs =  tensor([0], dtype=torch.int32)
IDs =  tensor([[2]], dtype=torch.int32)
IDs =  tensor([1], dtype=torch.int32)
mesh.NNodes =  80
border_nodes :  [[1.0], [2.0]]
self.order =  1
mesh.ListOfDirichletsBCsValues =  [0, 0.005]
IDs =  tensor([[1]], dtype=torch.int32)
IDs =  tensor([0], dtype=torch.int32)
IDs =  tensor([[2]], dtype=torch.int32)
IDs =  tensor([1], dtype=torch.int32)
frozen :  tensor([0], dtype=torch.int32)
frozen :  tensor([1], dtype=torch.int32)
epoch =  1
     loss =  582.6441960637158
     loss_decrease =  -581.6441960637158
epoch =  2
     loss =  234.50100818234264
     loss_decrease =  0.5975227938995921
epoch =  3
     loss =  120.8013347943788
     loss_decrease =  0.48485792990516086
epoch =  4
     loss =  60.14169301119734
     loss_decrease =  0.502143804010385
epoch =  5
     loss =  39.9968081320348
     loss_decrease =  0.334957063403784
epoch =  6
     loss =  18.444388478918246
     loss_decrease =  0.5388534900577352
epoch =  7
     loss =  17.57773746165426
     loss_decrease =  0.04698724591788773
epoch =  8
     loss =  16.217793007368137
     loss_decrease =  0.07736743464583162
epoch =  9
     loss =  7.133281737284696
     loss_decrease =  0.5601570611954492
epoch =  10
     loss =  2.9275112570750474
     loss_decrease =  0.589598257170561
epoch =  11
     loss =  2.8280469425823425
     loss_decrease =  0.033975724005270734
epoch =  12
     loss =  2.7371156842494315
     loss_decrease =  0.03215337658075785
epoch =  13
     loss =  2.732685981733321
     loss_decrease =  0.0016183833740024552
epoch =  14
     loss =  2.709912114960542
     loss_decrease =  0.00833387623935244
epoch =  15
     loss =  2.6865757411803517
     loss_decrease =  0.008611487306676057
epoch =  16
     loss =  2.6539604571687003
     loss_decrease =  0.012140094735360703
epoch =  17
     loss =  1.3187998885937056
     loss_decrease =  0.5030823141952053
epoch =  18
     loss =  1.2010467861999823
     loss_decrease =  0.0892880742652235
epoch =  19
     loss =  1.172709059037471
     loss_decrease =  0.023594190907557995
epoch =  20
     loss =  0.0001901745599626254
     loss_decrease =  0.9998378331279212
epoch =  21
     loss =  2.8790346002416244e-09
     loss_decrease =  0.9999848610949813
epoch =  22
     loss =  1.0386660786815357e-09
     loss_decrease =  0.6392311233097493
epoch =  23
     loss =  1.0386660786815357e-09
     loss_decrease =  0.0
epoch =  24
     loss =  1.0386660786815357e-09
     loss_decrease =  0.0
epoch =  25
     loss =  1.0386660786815357e-09
     loss_decrease =  0.0
epoch =  26
     loss =  1.0386660786815357e-09
     loss_decrease =  0.0
epoch =  27
     loss =  1.0386660786815357e-09
     loss_decrease =  0.0
* Final training loss: 1.0387e-09

 
 
   _   _            ____   ___  __  __ 
  | \ | | ___ _   _|  _ \ / _ \|  \/  |
  |  \| |/ _ \ | | | |_) | | | | |\/| |
  | |\  |  __/ |_| |  _ <| |_| | |  | |
  |_| \_|\___|\__,_|_| \_\ ___/|_|  |_|

                  2024.09.18

************ MESH READING COMPLETE ************

 * Dimension of the problem: 1D
 * Elements type:            2-node bar
 * Number of Dofs:           80
Gaussian_quad


mesh.NNodes =  80
border_nodes :  [[1.0], [2.0]]
self.order =  1
mesh.ListOfDirichletsBCsValues =  [0, 0.005]
IDs =  tensor([[1]], dtype=torch.int32)
IDs =  tensor([0], dtype=torch.int32)
IDs =  tensor([[2]], dtype=torch.int32)
IDs =  tensor([1], dtype=torch.int32)
mesh.NNodes =  80
border_nodes :  [[1.0], [2.0]]
self.order =  1
mesh.ListOfDirichletsBCsValues =  [0, 0.005]
IDs =  tensor([[1]], dtype=torch.int32)
IDs =  tensor([0], dtype=torch.int32)
IDs =  tensor([[2]], dtype=torch.int32)
IDs =  tensor([1], dtype=torch.int32)
frozen :  tensor([0], dtype=torch.int32)
frozen :  tensor([1], dtype=torch.int32)
epoch =  1
     loss =  582.644195119539
     loss_decrease =  -581.644195119539
epoch =  2
     loss =  234.5010108447511
     loss_decrease =  0.5975227886778492
epoch =  3
     loss =  120.80133998394517
     loss_decrease =  0.4848579136235775
epoch =  4
     loss =  60.13313388439249
     loss_decrease =  0.5022146783108171
epoch =  5
     loss =  40.44313753218388
     loss_decrease =  0.32744004977460744
epoch =  6
     loss =  18.58429656642732
     loss_decrease =  0.540483313105016
epoch =  7
     loss =  17.594166296616184
     loss_decrease =  0.05327779107872257
epoch =  8
     loss =  16.399565186858986
     loss_decrease =  0.06789756841089711
epoch =  9
     loss =  7.360301231291259
     loss_decrease =  0.5511892451155298
epoch =  10
     loss =  3.2482894786658454
     loss_decrease =  0.5586743834809081
epoch =  11
     loss =  2.8363938951754823
     loss_decrease =  0.12680384128188568
epoch =  12
     loss =  2.7783192377816612
     loss_decrease =  0.02047482103688146
epoch =  13
     loss =  2.7325749774439467
     loss_decrease =  0.016464724325286263
epoch =  14
     loss =  2.723620532442539
     loss_decrease =  0.003276925638023608
epoch =  15
     loss =  2.686520974752709
     loss_decrease =  0.013621412104923089
epoch =  16
     loss =  2.6823464802078436
     loss_decrease =  0.001553866351350434
epoch =  17
     loss =  2.0652790336923847
     loss_decrease =  0.23004762847327798
epoch =  18
     loss =  1.201904723065617
     loss_decrease =  0.4180424516696875
epoch =  19
     loss =  1.1986825429216719
     loss_decrease =  0.0026808948181238157
epoch =  20
     loss =  0.796905139682086
     loss_decrease =  0.3351824931564388
epoch =  21
     loss =  0.016331925759325894
     loss_decrease =  0.979505809479606
epoch =  22
     loss =  2.66006266314031e-06
     loss_decrease =  0.9998371249843809
epoch =  23
     loss =  8.445574608017376e-10
     loss_decrease =  0.9996825046746062
epoch =  24
     loss =  4.962692727626658e-10
     loss_decrease =  0.41239134600556615
epoch =  25
     loss =  4.962692727626658e-10
     loss_decrease =  0.0
epoch =  26
     loss =  4.962692727626658e-10
     loss_decrease =  0.0
epoch =  27
     loss =  4.962692727626658e-10
     loss_decrease =  0.0
epoch =  28
     loss =  4.962692727626658e-10
     loss_decrease =  0.0
epoch =  29
     loss =  4.962692727626658e-10
     loss_decrease =  0.0
* Final training loss: 4.9627e-10

 
 
   _   _            ____   ___  __  __ 
  | \ | | ___ _   _|  _ \ / _ \|  \/  |
  |  \| |/ _ \ | | | |_) | | | | |\/| |
  | |\  |  __/ |_| |  _ <| |_| | |  | |
  |_| \_|\___|\__,_|_| \_\ ___/|_|  |_|

                  2024.09.18

************ MESH READING COMPLETE ************

 * Dimension of the problem: 1D
 * Elements type:            2-node bar
 * Number of Dofs:           80
Gaussian_quad


mesh.NNodes =  80
border_nodes :  [[1.0], [2.0]]
self.order =  1
mesh.ListOfDirichletsBCsValues =  [0, 0.005]
IDs =  tensor([[1]], dtype=torch.int32)
IDs =  tensor([0], dtype=torch.int32)
IDs =  tensor([[2]], dtype=torch.int32)
IDs =  tensor([1], dtype=torch.int32)
mesh.NNodes =  80
border_nodes :  [[1.0], [2.0]]
self.order =  1
mesh.ListOfDirichletsBCsValues =  [0, 0.005]
IDs =  tensor([[1]], dtype=torch.int32)
IDs =  tensor([0], dtype=torch.int32)
IDs =  tensor([[2]], dtype=torch.int32)
IDs =  tensor([1], dtype=torch.int32)
frozen :  tensor([0], dtype=torch.int32)
frozen :  tensor([1], dtype=torch.int32)
epoch =  1
     loss =  582.6441951201659
     loss_decrease =  -581.6441951201659
epoch =  2
     loss =  234.50101084098952
     loss_decrease =  0.5975227886847384
epoch =  3
     loss =  120.8013399785262
     loss_decrease =  0.4848579136384227
epoch =  4
     loss =  60.133144032814805
     loss_decrease =  0.5022145942793006
epoch =  5
     loss =  40.450548688985506
     loss_decrease =  0.3273169174904352
epoch =  6
     loss =  18.584005227206077
     loss_decrease =  0.5405747059182311
epoch =  7
     loss =  17.625339118193175
     loss_decrease =  0.0515855488250435
epoch =  8
     loss =  16.856791144336952
     loss_decrease =  0.043604719812903564
epoch =  9
     loss =  8.300421559238083
     loss_decrease =  0.5075918371316706
epoch =  10
     loss =  4.75418274168686
     loss_decrease =  0.42723598943048646
epoch =  11
     loss =  2.836750905234714
     loss_decrease =  0.40331471056827956
epoch =  12
     loss =  2.7733825674201333
     loss_decrease =  0.02233835113884901
epoch =  13
     loss =  2.734983789160681
     loss_decrease =  0.013845467520613945
epoch =  14
     loss =  2.7303168431453297
     loss_decrease =  0.0017063889131070243
epoch =  15
     loss =  2.6859441681377954
     loss_decrease =  0.016251840924226577
epoch =  16
     loss =  2.68259130083311
     loss_decrease =  0.0012483011912380955
epoch =  17
     loss =  2.260747975597613
     loss_decrease =  0.15725217818476053
epoch =  18
     loss =  1.2004861504162856
     loss_decrease =  0.4689871832799296
epoch =  19
     loss =  1.1968133326349613
     loss_decrease =  0.003059442026924452
epoch =  20
     loss =  0.04709855776887128
     loss_decrease =  0.9606466969538376
epoch =  21
     loss =  1.117444466319359e-06
     loss_decrease =  0.9999762743379149
epoch =  22
     loss =  7.707277609845787e-10
     loss_decrease =  0.9993102764529112
epoch =  23
     loss =  7.707277609845787e-10
     loss_decrease =  0.0
epoch =  24
     loss =  7.707277609845787e-10
     loss_decrease =  0.0
epoch =  25
     loss =  7.707277609845787e-10
     loss_decrease =  0.0
epoch =  26
     loss =  7.707277609845787e-10
     loss_decrease =  0.0
epoch =  27
     loss =  7.707277609845787e-10
     loss_decrease =  0.0
* Final training loss: 7.7073e-10
# Load default configuration file for resudal loss formulation = two independent models (defines dimension, domain, boundary conditions, number of training iterations etc.)
Default_config_file = 'Configurations/config_1D_Mixed.toml'

if __name__ == "__main__":
    parser = argparse.ArgumentParser()
    parser.add_argument('-cf',type=str, help = 'path to the desired configuration file', default=Default_config_file, action = 'store')
    
    args, unknown = parser.parse_known_args()

    inputs = vars(args)
    print(f"* Executing job in {args.cf}")

with open(args.cf, mode="rb") as f:
    config = tomllib.load(f)
* Executing job in Configurations/config_1D_Mixed.toml
# Experiment setting: Resdiual loss function
# Tested variants: 5 mesh resolutions, 4 training sets, fixed mesh

mesh_resolution_r = [10,20,40,80,160]        # cumulative number of mesh nodes and element mid-points
training_points = [10,25,50,75]

loss_u_r = numpy.zeros((len(mesh_resolution_r),len(training_points)))
loss_grad_r = numpy.zeros((len(mesh_resolution_r),len(training_points)))

config["solver"]["TrainingStrategy"] = "Mixed"
config["solver"]["IntegralMethod"] = "None"
config["solver"]["FrozenMesh"] = True

for res in range(len(mesh_resolution_r)):
    config["interpolation"]["np"] = mesh_resolution_r[res]+mesh_resolution_r[res]-1
    for q in range(len(training_points)):
        config["training"]["Points_per_element"] = training_points[q]

        #%% Initialise material
        Mat = pre.Material(             flag_lame = False,                          # If True should input lmbda and mu instead of E and nu
                                        coef1     = config["material"]["E"],        # Young Modulus
                                        coef2     = config["material"]["nu"]        # Poisson's ratio
                            )

        #%% Create mesh object
        # Definition of the (initial) element size of the mesh
        MaxElemSize = pre.ElementSize(
                                        dimension     = config["interpolation"]["dimension"],
                                        L             = config["geometry"]["L"],
                                        order         = config["interpolation"]["order_u"],
                                        np            = config["interpolation"]["np"],
                                        MaxElemSize2D = config["interpolation"]["MaxElemSize2D"]
                                    )
        Excluded = []
        Mesh_object_u = pre.Mesh( 
                                        config["geometry"]["Name"],                 # Create the mesh object
                                        MaxElemSize, 
                                        config["interpolation"]["order_u"], 
                                        config["interpolation"]["dimension"]
                                )

        Mesh_object_u.AddBorders(config["Borders_u"]["Borders"])
        Mesh_object_u.AddBCs(                                                         # Include Boundary physical domains infos (BCs+volume)
                                        config["geometry"]["Volume_element"],
                                        Excluded,
                                        config["DirichletDictionryList_u"]
                            )   
                            
        Mesh_object_u.MeshGeo()                                                       # Mesh the .geo file if .msh does not exist
        Mesh_object_u.ReadMesh() 
        Mesh_object_u.AssemblyMatrix()                                            # Build the assembly weight matrix

        Mesh_object_du = pre.Mesh( 
                                        config["geometry"]["Name"],                 # Create the mesh object
                                        MaxElemSize, 
                                        config["interpolation"]["order_du"], 
                                        config["interpolation"]["dimension"]
                                )
        Mesh_object_du.AddBorders(config["Borders_du"]["Borders"])
        Mesh_object_du.AddBCs(                                                         # Include Boundary physical domains infos (BCs+volume)
                                        config["geometry"]["Volume_element"],
                                        Excluded,
                                        config["DirichletDictionryList_du"]
                            ) 

        Mesh_object_du.MeshGeo()                                                       # Mesh the .geo file if .msh does not exist
        Mesh_object_du.ReadMesh()   
        Mesh_object_du.AssemblyMatrix()                                            # Build the assembly weight matrix

        if int(Mesh_object_u.dim) != int(Mesh_object_u.dimension):
            raise ValueError("The dimension of the provided geometry does not match the job dimension")

        #%% Application of the Space HiDeNN
        match config["interpolation"]["dimension"]:
            case 1:
                Model_FEM_u = MeshNN(Mesh_object_u)
                Model_FEM_du = MeshNN(Mesh_object_du)


        # Set the coordinates as untrainable
        Model_FEM_u.Freeze_Mesh()
        Model_FEM_du.Freeze_Mesh()

        # Make nodal values trainable (except the BC). Default choice 
        Model_FEM_u.UnFreeze_FEM()
        Model_FEM_du.UnFreeze_FEM()


        if not config["solver"]["FrozenMesh"]:
            Model_FEM_u.UnFreeze_Mesh()    
            Model_FEM_du.UnFreeze_Mesh()    


        Model_FEM_u, Model_FEM_du = Training_1D_Mixed_LBFGS(Model_FEM_u, Model_FEM_du, config, Mat)  
        loss_u_r[res,q], loss_grad_r[res,q] = Pplot.Normalized_error_1D(Model_FEM_u,config,Mat,Model_FEM_du)
   
 
 
   _   _            ____   ___  __  __ 
  | \ | | ___ _   _|  _ \ / _ \|  \/  |
  |  \| |/ _ \ | | | |_) | | | | |\/| |
  | |\  |  __/ |_| |  _ <| |_| | |  | |
  |_| \_|\___|\__,_|_| \_\ ___/|_|  |_|

                  2024.09.18

************ MESH READING COMPLETE ************

 * Dimension of the problem: 1D
 * Elements type:            3-node quadratic bar
 * Number of Dofs:           19
 
 
   _   _            ____   ___  __  __ 
  | \ | | ___ _   _|  _ \ / _ \|  \/  |
  |  \| |/ _ \ | | | |_) | | | | |\/| |
  | |\  |  __/ |_| |  _ <| |_| | |  | |
  |_| \_|\___|\__,_|_| \_\ ___/|_|  |_|

                  2024.09.18

************ MESH READING COMPLETE ************

 * Dimension of the problem: 1D
 * Elements type:            2-node bar
 * Number of Dofs:           10
epoch =  1
     loss =  0.0026235383760869328
     loss_decrease =  0.997376461623913
epoch =  2
     loss =  0.0024022575433551643
     loss_decrease =  0.08434442383183807
epoch =  3
     loss =  0.0024022575433551643
     loss_decrease =  0.0
epoch =  4
     loss =  0.0024022575433551643
     loss_decrease =  0.0
epoch =  5
     loss =  0.0024022575433551643
     loss_decrease =  0.0
epoch =  6
     loss =  0.0024022575433551643
     loss_decrease =  0.0
epoch =  7
     loss =  0.0024022575433551643
     loss_decrease =  0.0
* Final training loss: 2.4023e-03

 
 
   _   _            ____   ___  __  __ 
  | \ | | ___ _   _|  _ \ / _ \|  \/  |
  |  \| |/ _ \ | | | |_) | | | | |\/| |
  | |\  |  __/ |_| |  _ <| |_| | |  | |
  |_| \_|\___|\__,_|_| \_\ ___/|_|  |_|

                  2024.09.18

************ MESH READING COMPLETE ************

 * Dimension of the problem: 1D
 * Elements type:            3-node quadratic bar
 * Number of Dofs:           19
 
 
   _   _            ____   ___  __  __ 
  | \ | | ___ _   _|  _ \ / _ \|  \/  |
  |  \| |/ _ \ | | | |_) | | | | |\/| |
  | |\  |  __/ |_| |  _ <| |_| | |  | |
  |_| \_|\___|\__,_|_| \_\ ___/|_|  |_|

                  2024.09.18

************ MESH READING COMPLETE ************

 * Dimension of the problem: 1D
 * Elements type:            2-node bar
 * Number of Dofs:           10
epoch =  1
     loss =  0.0026938679150323693
     loss_decrease =  0.9973061320849677
epoch =  2
     loss =  0.002482114892741595
     loss_decrease =  0.07860556974940983
epoch =  3
     loss =  0.002482114892741595
     loss_decrease =  0.0
epoch =  4
     loss =  0.002482114892741595
     loss_decrease =  0.0
epoch =  5
     loss =  0.002482114892741595
     loss_decrease =  0.0
epoch =  6
     loss =  0.002482114892741595
     loss_decrease =  0.0
epoch =  7
     loss =  0.002482114892741595
     loss_decrease =  0.0
* Final training loss: 2.4821e-03

 
 
   _   _            ____   ___  __  __ 
  | \ | | ___ _   _|  _ \ / _ \|  \/  |
  |  \| |/ _ \ | | | |_) | | | | |\/| |
  | |\  |  __/ |_| |  _ <| |_| | |  | |
  |_| \_|\___|\__,_|_| \_\ ___/|_|  |_|

                  2024.09.18

************ MESH READING COMPLETE ************

 * Dimension of the problem: 1D
 * Elements type:            3-node quadratic bar
 * Number of Dofs:           19
 
 
   _   _            ____   ___  __  __ 
  | \ | | ___ _   _|  _ \ / _ \|  \/  |
  |  \| |/ _ \ | | | |_) | | | | |\/| |
  | |\  |  __/ |_| |  _ <| |_| | |  | |
  |_| \_|\___|\__,_|_| \_\ ___/|_|  |_|

                  2024.09.18

************ MESH READING COMPLETE ************

 * Dimension of the problem: 1D
 * Elements type:            2-node bar
 * Number of Dofs:           10
epoch =  1
     loss =  0.0027241520365258497
     loss_decrease =  0.9972758479634741
epoch =  2
     loss =  0.0025084226760542735
     loss_decrease =  0.07919138050264586
epoch =  3
     loss =  0.0025084226760542735
     loss_decrease =  0.0
epoch =  4
     loss =  0.0025084226760542735
     loss_decrease =  0.0
epoch =  5
     loss =  0.0025084226760542735
     loss_decrease =  0.0
epoch =  6
     loss =  0.0025084226760542735
     loss_decrease =  0.0
epoch =  7
     loss =  0.0025084226760542735
     loss_decrease =  0.0
* Final training loss: 2.5084e-03

 
 
   _   _            ____   ___  __  __ 
  | \ | | ___ _   _|  _ \ / _ \|  \/  |
  |  \| |/ _ \ | | | |_) | | | | |\/| |
  | |\  |  __/ |_| |  _ <| |_| | |  | |
  |_| \_|\___|\__,_|_| \_\ ___/|_|  |_|

                  2024.09.18

************ MESH READING COMPLETE ************

 * Dimension of the problem: 1D
 * Elements type:            3-node quadratic bar
 * Number of Dofs:           19
 
 
   _   _            ____   ___  __  __ 
  | \ | | ___ _   _|  _ \ / _ \|  \/  |
  |  \| |/ _ \ | | | |_) | | | | |\/| |
  | |\  |  __/ |_| |  _ <| |_| | |  | |
  |_| \_|\___|\__,_|_| \_\ ___/|_|  |_|

                  2024.09.18

************ MESH READING COMPLETE ************

 * Dimension of the problem: 1D
 * Elements type:            2-node bar
 * Number of Dofs:           10
epoch =  1
     loss =  0.002725126256691632
     loss_decrease =  0.9972748737433084
epoch =  2
     loss =  0.0025171587995780386
     loss_decrease =  0.07631479701277064
epoch =  3
     loss =  0.0025171587995780386
     loss_decrease =  0.0
epoch =  4
     loss =  0.0025171587995780386
     loss_decrease =  0.0
epoch =  5
     loss =  0.0025171587995780386
     loss_decrease =  0.0
epoch =  6
     loss =  0.0025171587995780386
     loss_decrease =  0.0
epoch =  7
     loss =  0.0025171587995780386
     loss_decrease =  0.0
* Final training loss: 2.5172e-03

 
 
   _   _            ____   ___  __  __ 
  | \ | | ___ _   _|  _ \ / _ \|  \/  |
  |  \| |/ _ \ | | | |_) | | | | |\/| |
  | |\  |  __/ |_| |  _ <| |_| | |  | |
  |_| \_|\___|\__,_|_| \_\ ___/|_|  |_|

                  2024.09.18

************ MESH READING COMPLETE ************

 * Dimension of the problem: 1D
 * Elements type:            3-node quadratic bar
 * Number of Dofs:           41
 
 
   _   _            ____   ___  __  __ 
  | \ | | ___ _   _|  _ \ / _ \|  \/  |
  |  \| |/ _ \ | | | |_) | | | | |\/| |
  | |\  |  __/ |_| |  _ <| |_| | |  | |
  |_| \_|\___|\__,_|_| \_\ ___/|_|  |_|

                  2024.09.18

************ MESH READING COMPLETE ************

 * Dimension of the problem: 1D
 * Elements type:            2-node bar
 * Number of Dofs:           21
epoch =  1
     loss =  0.0017617958818586328
     loss_decrease =  0.9982382041181413
epoch =  2
     loss =  0.0014189393627734074
     loss_decrease =  0.19460626660310038
epoch =  3
     loss =  0.0011566600334328289
     loss_decrease =  0.18484181651563802
epoch =  4
     loss =  0.001155870635941546
     loss_decrease =  0.0006824801311238024
epoch =  5
     loss =  0.001155870635941546
     loss_decrease =  0.0
epoch =  6
     loss =  0.001155870635941546
     loss_decrease =  0.0
epoch =  7
     loss =  0.001155870635941546
     loss_decrease =  0.0
epoch =  8
     loss =  0.001155870635941546
     loss_decrease =  0.0
epoch =  9
     loss =  0.001155870635941546
     loss_decrease =  0.0
* Final training loss: 1.1559e-03

 
 
   _   _            ____   ___  __  __ 
  | \ | | ___ _   _|  _ \ / _ \|  \/  |
  |  \| |/ _ \ | | | |_) | | | | |\/| |
  | |\  |  __/ |_| |  _ <| |_| | |  | |
  |_| \_|\___|\__,_|_| \_\ ___/|_|  |_|

                  2024.09.18

************ MESH READING COMPLETE ************

 * Dimension of the problem: 1D
 * Elements type:            3-node quadratic bar
 * Number of Dofs:           41
 
 
   _   _            ____   ___  __  __ 
  | \ | | ___ _   _|  _ \ / _ \|  \/  |
  |  \| |/ _ \ | | | |_) | | | | |\/| |
  | |\  |  __/ |_| |  _ <| |_| | |  | |
  |_| \_|\___|\__,_|_| \_\ ___/|_|  |_|

                  2024.09.18

************ MESH READING COMPLETE ************

 * Dimension of the problem: 1D
 * Elements type:            2-node bar
 * Number of Dofs:           21
epoch =  1
     loss =  0.001786464186653039
     loss_decrease =  0.9982135358133469
epoch =  2
     loss =  0.0014242958019414905
     loss_decrease =  0.20272916043734132
epoch =  3
     loss =  0.0011572354185754117
     loss_decrease =  0.1875034546911131
epoch =  4
     loss =  0.0011559904286063513
     loss_decrease =  0.0010758312000102579
epoch =  5
     loss =  0.001155989519761756
     loss_decrease =  7.862042563629879e-07
epoch =  6
     loss =  0.0011559886037113855
     loss_decrease =  7.924383005911475e-07
epoch =  7
     loss =  0.0011559880339260277
     loss_decrease =  4.92898767302106e-07
epoch =  8
     loss =  0.0011559880339260277
     loss_decrease =  0.0
epoch =  9
     loss =  0.0011559880339260277
     loss_decrease =  0.0
epoch =  10
     loss =  0.0011559880339260277
     loss_decrease =  0.0
epoch =  11
     loss =  0.0011559880339260277
     loss_decrease =  0.0
epoch =  12
     loss =  0.0011559880339260277
     loss_decrease =  0.0
* Final training loss: 1.156e-03

 
 
   _   _            ____   ___  __  __ 
  | \ | | ___ _   _|  _ \ / _ \|  \/  |
  |  \| |/ _ \ | | | |_) | | | | |\/| |
  | |\  |  __/ |_| |  _ <| |_| | |  | |
  |_| \_|\___|\__,_|_| \_\ ___/|_|  |_|

                  2024.09.18

************ MESH READING COMPLETE ************

 * Dimension of the problem: 1D
 * Elements type:            3-node quadratic bar
 * Number of Dofs:           41
 
 
   _   _            ____   ___  __  __ 
  | \ | | ___ _   _|  _ \ / _ \|  \/  |
  |  \| |/ _ \ | | | |_) | | | | |\/| |
  | |\  |  __/ |_| |  _ <| |_| | |  | |
  |_| \_|\___|\__,_|_| \_\ ___/|_|  |_|

                  2024.09.18

************ MESH READING COMPLETE ************

 * Dimension of the problem: 1D
 * Elements type:            2-node bar
 * Number of Dofs:           21
epoch =  1
     loss =  0.0017747831554666821
     loss_decrease =  0.9982252168445334
epoch =  2
     loss =  0.001425490886174954
     loss_decrease =  0.1968084203503054
epoch =  3
     loss =  0.001156213052280024
     loss_decrease =  0.18890182778894374
epoch =  4
     loss =  0.0011547623828304999
     loss_decrease =  0.0012546731302361662
epoch =  5
     loss =  0.0011547623828304999
     loss_decrease =  0.0
epoch =  6
     loss =  0.0011547623828304999
     loss_decrease =  0.0
epoch =  7
     loss =  0.0011547623828304999
     loss_decrease =  0.0
epoch =  8
     loss =  0.0011547623828304999
     loss_decrease =  0.0
epoch =  9
     loss =  0.0011547623828304999
     loss_decrease =  0.0
* Final training loss: 1.1548e-03

 
 
   _   _            ____   ___  __  __ 
  | \ | | ___ _   _|  _ \ / _ \|  \/  |
  |  \| |/ _ \ | | | |_) | | | | |\/| |
  | |\  |  __/ |_| |  _ <| |_| | |  | |
  |_| \_|\___|\__,_|_| \_\ ___/|_|  |_|

                  2024.09.18

************ MESH READING COMPLETE ************

 * Dimension of the problem: 1D
 * Elements type:            3-node quadratic bar
 * Number of Dofs:           41
 
 
   _   _            ____   ___  __  __ 
  | \ | | ___ _   _|  _ \ / _ \|  \/  |
  |  \| |/ _ \ | | | |_) | | | | |\/| |
  | |\  |  __/ |_| |  _ <| |_| | |  | |
  |_| \_|\___|\__,_|_| \_\ ___/|_|  |_|

                  2024.09.18

************ MESH READING COMPLETE ************

 * Dimension of the problem: 1D
 * Elements type:            2-node bar
 * Number of Dofs:           21
epoch =  1
     loss =  0.0017682163198734213
     loss_decrease =  0.9982317836801265
epoch =  2
     loss =  0.0014224047290233737
     loss_decrease =  0.1955708625485386
epoch =  3
     loss =  0.0011556269693375112
     loss_decrease =  0.1875540443886409
epoch =  4
     loss =  0.0011542138039898938
     loss_decrease =  0.001222855977848523
epoch =  5
     loss =  0.0011542138039898938
     loss_decrease =  0.0
epoch =  6
     loss =  0.0011542138039898938
     loss_decrease =  0.0
epoch =  7
     loss =  0.0011542138039898938
     loss_decrease =  0.0
epoch =  8
     loss =  0.0011542138039898938
     loss_decrease =  0.0
epoch =  9
     loss =  0.0011542138039898938
     loss_decrease =  0.0
* Final training loss: 1.1542e-03

 
 
   _   _            ____   ___  __  __ 
  | \ | | ___ _   _|  _ \ / _ \|  \/  |
  |  \| |/ _ \ | | | |_) | | | | |\/| |
  | |\  |  __/ |_| |  _ <| |_| | |  | |
  |_| \_|\___|\__,_|_| \_\ ___/|_|  |_|

                  2024.09.18

************ MESH READING COMPLETE ************

 * Dimension of the problem: 1D
 * Elements type:            3-node quadratic bar
 * Number of Dofs:           81
 
 
   _   _            ____   ___  __  __ 
  | \ | | ___ _   _|  _ \ / _ \|  \/  |
  |  \| |/ _ \ | | | |_) | | | | |\/| |
  | |\  |  __/ |_| |  _ <| |_| | |  | |
  |_| \_|\___|\__,_|_| \_\ ___/|_|  |_|

                  2024.09.18

************ MESH READING COMPLETE ************

 * Dimension of the problem: 1D
 * Elements type:            2-node bar
 * Number of Dofs:           41
epoch =  1
     loss =  0.004469650135204953
     loss_decrease =  0.995530349864795
epoch =  2
     loss =  0.0008495686160663134
     loss_decrease =  0.8099250298418811
epoch =  3
     loss =  0.0006362277558545661
     loss_decrease =  0.25111669166825124
epoch =  4
     loss =  0.0005325304562894442
     loss_decrease =  0.1629877015123902
epoch =  5
     loss =  0.00039547237998710776
     loss_decrease =  0.25737133845325416
epoch =  6
     loss =  0.0002676678033663578
     loss_decrease =  0.323169412298569
epoch =  7
     loss =  0.0002664296708633192
     loss_decrease =  0.004625631052622114
epoch =  8
     loss =  0.0002654893192008701
     loss_decrease =  0.0035294554821993394
epoch =  9
     loss =  0.0002653585374959316
     loss_decrease =  0.0004926062763359427
epoch =  10
     loss =  0.0002653464828841008
     loss_decrease =  4.5427638939268055e-05
epoch =  11
     loss =  0.0002653464828841008
     loss_decrease =  0.0
epoch =  12
     loss =  0.0002653464828841008
     loss_decrease =  0.0
epoch =  13
     loss =  0.0002653464828841008
     loss_decrease =  0.0
epoch =  14
     loss =  0.0002653464828841008
     loss_decrease =  0.0
epoch =  15
     loss =  0.0002653464828841008
     loss_decrease =  0.0
* Final training loss: 2.6535e-04

 
 
   _   _            ____   ___  __  __ 
  | \ | | ___ _   _|  _ \ / _ \|  \/  |
  |  \| |/ _ \ | | | |_) | | | | |\/| |
  | |\  |  __/ |_| |  _ <| |_| | |  | |
  |_| \_|\___|\__,_|_| \_\ ___/|_|  |_|

                  2024.09.18

************ MESH READING COMPLETE ************

 * Dimension of the problem: 1D
 * Elements type:            3-node quadratic bar
 * Number of Dofs:           81
 
 
   _   _            ____   ___  __  __ 
  | \ | | ___ _   _|  _ \ / _ \|  \/  |
  |  \| |/ _ \ | | | |_) | | | | |\/| |
  | |\  |  __/ |_| |  _ <| |_| | |  | |
  |_| \_|\___|\__,_|_| \_\ ___/|_|  |_|

                  2024.09.18

************ MESH READING COMPLETE ************

 * Dimension of the problem: 1D
 * Elements type:            2-node bar
 * Number of Dofs:           41
epoch =  1
     loss =  0.005026901675567628
     loss_decrease =  0.9949730983244324
epoch =  2
     loss =  0.0008991918044944606
     loss_decrease =  0.8211240516469968
epoch =  3
     loss =  0.0006516074273865123
     loss_decrease =  0.27534100719161253
epoch =  4
     loss =  0.0005439895660547629
     loss_decrease =  0.1651575117297028
epoch =  5
     loss =  0.00046818658788087955
     loss_decrease =  0.1393463825485438
epoch =  6
     loss =  0.0003022174366485746
     loss_decrease =  0.35449360474745684
epoch =  7
     loss =  0.0002688516412529506
     loss_decrease =  0.11040327707637364
epoch =  8
     loss =  0.0002673620513548542
     loss_decrease =  0.0055405646443307
epoch =  9
     loss =  0.00026710696623049506
     loss_decrease =  0.0009540812657089137
epoch =  10
     loss =  0.0002670867258395303
     loss_decrease =  7.57763500159237e-05
epoch =  11
     loss =  0.000267085865838538
     loss_decrease =  3.2199316143161165e-06
epoch =  12
     loss =  0.00026708508330212515
     loss_decrease =  2.9299057454132814e-06
epoch =  13
     loss =  0.00026708446980660655
     loss_decrease =  2.2970040521019947e-06
epoch =  14
     loss =  0.00026708446980660655
     loss_decrease =  0.0
epoch =  15
     loss =  0.00026708446980660655
     loss_decrease =  0.0
epoch =  16
     loss =  0.00026708446980660655
     loss_decrease =  0.0
epoch =  17
     loss =  0.00026708446980660655
     loss_decrease =  0.0
epoch =  18
     loss =  0.00026708446980660655
     loss_decrease =  0.0
* Final training loss: 2.6708e-04

 
 
   _   _            ____   ___  __  __ 
  | \ | | ___ _   _|  _ \ / _ \|  \/  |
  |  \| |/ _ \ | | | |_) | | | | |\/| |
  | |\  |  __/ |_| |  _ <| |_| | |  | |
  |_| \_|\___|\__,_|_| \_\ ___/|_|  |_|

                  2024.09.18

************ MESH READING COMPLETE ************

 * Dimension of the problem: 1D
 * Elements type:            3-node quadratic bar
 * Number of Dofs:           81
 
 
   _   _            ____   ___  __  __ 
  | \ | | ___ _   _|  _ \ / _ \|  \/  |
  |  \| |/ _ \ | | | |_) | | | | |\/| |
  | |\  |  __/ |_| |  _ <| |_| | |  | |
  |_| \_|\___|\__,_|_| \_\ ___/|_|  |_|

                  2024.09.18

************ MESH READING COMPLETE ************

 * Dimension of the problem: 1D
 * Elements type:            2-node bar
 * Number of Dofs:           41
epoch =  1
     loss =  0.005122085054423114
     loss_decrease =  0.9948779149455769
epoch =  2
     loss =  0.0008926011954443027
     loss_decrease =  0.8257347962870105
epoch =  3
     loss =  0.0006406244894715531
     loss_decrease =  0.28229483363768654
epoch =  4
     loss =  0.0005401458420739357
     loss_decrease =  0.1568448428821409
epoch =  5
     loss =  0.000464841184595769
     loss_decrease =  0.1394154163790802
epoch =  6
     loss =  0.00029536552018577934
     loss_decrease =  0.3645883153777942
epoch =  7
     loss =  0.0002691012477014115
     loss_decrease =  0.08892125413910226
epoch =  8
     loss =  0.00026747014290808956
     loss_decrease =  0.0060613052048416735
epoch =  9
     loss =  0.0002672856068874576
     loss_decrease =  0.000689931289622095
epoch =  10
     loss =  0.00026726021261210914
     loss_decrease =  9.500801649650103e-05
epoch =  11
     loss =  0.00026726021261210914
     loss_decrease =  0.0
epoch =  12
     loss =  0.00026726021261210914
     loss_decrease =  0.0
epoch =  13
     loss =  0.00026726021261210914
     loss_decrease =  0.0
epoch =  14
     loss =  0.00026726021261210914
     loss_decrease =  0.0
epoch =  15
     loss =  0.00026726021261210914
     loss_decrease =  0.0
* Final training loss: 2.6726e-04

 
 
   _   _            ____   ___  __  __ 
  | \ | | ___ _   _|  _ \ / _ \|  \/  |
  |  \| |/ _ \ | | | |_) | | | | |\/| |
  | |\  |  __/ |_| |  _ <| |_| | |  | |
  |_| \_|\___|\__,_|_| \_\ ___/|_|  |_|

                  2024.09.18

************ MESH READING COMPLETE ************

 * Dimension of the problem: 1D
 * Elements type:            3-node quadratic bar
 * Number of Dofs:           81
 
 
   _   _            ____   ___  __  __ 
  | \ | | ___ _   _|  _ \ / _ \|  \/  |
  |  \| |/ _ \ | | | |_) | | | | |\/| |
  | |\  |  __/ |_| |  _ <| |_| | |  | |
  |_| \_|\___|\__,_|_| \_\ ___/|_|  |_|

                  2024.09.18

************ MESH READING COMPLETE ************

 * Dimension of the problem: 1D
 * Elements type:            2-node bar
 * Number of Dofs:           41
epoch =  1
     loss =  0.005132443185188354
     loss_decrease =  0.9948675568148116
epoch =  2
     loss =  0.0008882133068142217
     loss_decrease =  0.8269414244316423
epoch =  3
     loss =  0.0006382542902109383
     loss_decrease =  0.28141777958699815
epoch =  4
     loss =  0.0005373120600084561
     loss_decrease =  0.15815362583637557
epoch =  5
     loss =  0.00042641644253169433
     loss_decrease =  0.20638959318169128
epoch =  6
     loss =  0.0002744977676015351
     loss_decrease =  0.3562683324972103
epoch =  7
     loss =  0.00026878313980382924
     loss_decrease =  0.02081848551133309
epoch =  8
     loss =  0.0002674865018527451
     loss_decrease =  0.004824104488214828
epoch =  9
     loss =  0.00026728808406157554
     loss_decrease =  0.0007417861828362921
epoch =  10
     loss =  0.0002672764697768095
     loss_decrease =  4.3452310292092425e-05
epoch =  11
     loss =  0.0002672753490163785
     loss_decrease =  4.193262624119963e-06
epoch =  12
     loss =  0.0002672753490163785
     loss_decrease =  0.0
epoch =  13
     loss =  0.0002672753490163785
     loss_decrease =  0.0
epoch =  14
     loss =  0.0002672753490163785
     loss_decrease =  0.0
epoch =  15
     loss =  0.0002672753490163785
     loss_decrease =  0.0
epoch =  16
     loss =  0.0002672753490163785
     loss_decrease =  0.0
* Final training loss: 2.6728e-04

 
 
   _   _            ____   ___  __  __ 
  | \ | | ___ _   _|  _ \ / _ \|  \/  |
  |  \| |/ _ \ | | | |_) | | | | |\/| |
  | |\  |  __/ |_| |  _ <| |_| | |  | |
  |_| \_|\___|\__,_|_| \_\ ___/|_|  |_|

                  2024.09.18

************ MESH READING COMPLETE ************

 * Dimension of the problem: 1D
 * Elements type:            3-node quadratic bar
 * Number of Dofs:           159
 
 
   _   _            ____   ___  __  __ 
  | \ | | ___ _   _|  _ \ / _ \|  \/  |
  |  \| |/ _ \ | | | |_) | | | | |\/| |
  | |\  |  __/ |_| |  _ <| |_| | |  | |
  |_| \_|\___|\__,_|_| \_\ ___/|_|  |_|

                  2024.09.18

************ MESH READING COMPLETE ************

 * Dimension of the problem: 1D
 * Elements type:            2-node bar
 * Number of Dofs:           80
epoch =  1
     loss =  0.010907320031309963
     loss_decrease =  0.98909267996869
epoch =  2
     loss =  0.004318638326752108
     loss_decrease =  0.6040605470128998
epoch =  3
     loss =  0.0012263529196381252
     loss_decrease =  0.71603250217982
epoch =  4
     loss =  0.000663210607576482
     loss_decrease =  0.45920085730934324
epoch =  5
     loss =  0.0005004050171648738
     loss_decrease =  0.24548098078005082
epoch =  6
     loss =  0.00044310274032716363
     loss_decrease =  0.11451179519015527
epoch =  7
     loss =  0.00039281647076730474
     loss_decrease =  0.11348670406039504
epoch =  8
     loss =  0.00035106592406990064
     loss_decrease =  0.10628512245388036
epoch =  9
     loss =  0.0003375924791879112
     loss_decrease =  0.03837867465401383
epoch =  10
     loss =  0.00031501065912474167
     loss_decrease =  0.066890767583125
epoch =  11
     loss =  0.0002822190939292818
     loss_decrease =  0.10409668449496717
epoch =  12
     loss =  0.00019821447798653511
     loss_decrease =  0.2976574503630023
epoch =  13
     loss =  0.00011883037757176719
     loss_decrease =  0.40049597396291386
epoch =  14
     loss =  8.287046396855112e-05
     loss_decrease =  0.30261549561683593
epoch =  15
     loss =  7.255959470727538e-05
     loss_decrease =  0.12442152206591553
epoch =  16
     loss =  7.186045511833438e-05
     loss_decrease =  0.009635384427952053
epoch =  17
     loss =  7.150487260722748e-05
     loss_decrease =  0.004948236279903254
epoch =  18
     loss =  7.113578275921286e-05
     loss_decrease =  0.0051617440120760505
epoch =  19
     loss =  7.078720866164432e-05
     loss_decrease =  0.00490012317357122
epoch =  20
     loss =  7.034598909736389e-05
     loss_decrease =  0.00623304086462027
epoch =  21
     loss =  7.026817273126779e-05
     loss_decrease =  0.0011061947823121996
epoch =  22
     loss =  7.026564615710465e-05
     loss_decrease =  3.595616713708791e-05
epoch =  23
     loss =  7.026386209267286e-05
     loss_decrease =  2.5390280021074734e-05
epoch =  24
     loss =  7.026386209267286e-05
     loss_decrease =  0.0
epoch =  25
     loss =  7.026386209267286e-05
     loss_decrease =  0.0
epoch =  26
     loss =  7.026386209267286e-05
     loss_decrease =  0.0
epoch =  27
     loss =  7.026386209267286e-05
     loss_decrease =  0.0
epoch =  28
     loss =  7.026386209267286e-05
     loss_decrease =  0.0
* Final training loss: 7.0264e-05

 
 
   _   _            ____   ___  __  __ 
  | \ | | ___ _   _|  _ \ / _ \|  \/  |
  |  \| |/ _ \ | | | |_) | | | | |\/| |
  | |\  |  __/ |_| |  _ <| |_| | |  | |
  |_| \_|\___|\__,_|_| \_\ ___/|_|  |_|

                  2024.09.18

************ MESH READING COMPLETE ************

 * Dimension of the problem: 1D
 * Elements type:            3-node quadratic bar
 * Number of Dofs:           159
 
 
   _   _            ____   ___  __  __ 
  | \ | | ___ _   _|  _ \ / _ \|  \/  |
  |  \| |/ _ \ | | | |_) | | | | |\/| |
  | |\  |  __/ |_| |  _ <| |_| | |  | |
  |_| \_|\___|\__,_|_| \_\ ___/|_|  |_|

                  2024.09.18

************ MESH READING COMPLETE ************

 * Dimension of the problem: 1D
 * Elements type:            2-node bar
 * Number of Dofs:           80
epoch =  1
     loss =  0.01130502087090017
     loss_decrease =  0.9886949791290999
epoch =  2
     loss =  0.004807697748625082
     loss_decrease =  0.5747289807309958
epoch =  3
     loss =  0.0014281328300783437
     loss_decrease =  0.702948707520816
epoch =  4
     loss =  0.0007062009735913841
     loss_decrease =  0.5055074999202674
epoch =  5
     loss =  0.0005141723300817559
     loss_decrease =  0.2719178402333075
epoch =  6
     loss =  0.00045169896917297657
     loss_decrease =  0.12150276717311054
epoch =  7
     loss =  0.0004012190209390516
     loss_decrease =  0.11175573042893934
epoch =  8
     loss =  0.0003580492486579502
     loss_decrease =  0.10759652466142497
epoch =  9
     loss =  0.0003408679988455812
     loss_decrease =  0.047985716704526574
epoch =  10
     loss =  0.00032047417430846757
     loss_decrease =  0.059829096911946704
epoch =  11
     loss =  0.00029071623448184995
     loss_decrease =  0.09285596847493416
epoch =  12
     loss =  0.00020762900108894884
     loss_decrease =  0.2858018353910966
epoch =  13
     loss =  0.0001306443463591716
     loss_decrease =  0.3707798733607393
epoch =  14
     loss =  9.112299545047803e-05
     loss_decrease =  0.3025109927071793
epoch =  15
     loss =  7.377275772569843e-05
     loss_decrease =  0.19040460247170882
epoch =  16
     loss =  7.29780022407659e-05
     loss_decrease =  0.010773021226718723
epoch =  17
     loss =  7.248935700112479e-05
     loss_decrease =  0.006695788109257786
epoch =  18
     loss =  7.207960123187026e-05
     loss_decrease =  0.005652633520368642
epoch =  19
     loss =  7.133283498386653e-05
     loss_decrease =  0.010360299380701226
epoch =  20
     loss =  7.094900350537179e-05
     loss_decrease =  0.005380852710838574
epoch =  21
     loss =  7.079792976882178e-05
     loss_decrease =  0.0021293285188786156
epoch =  22
     loss =  7.07958460479661e-05
     loss_decrease =  2.9431946138572084e-05
epoch =  23
     loss =  7.079532169282226e-05
     loss_decrease =  7.406580655737566e-06
epoch =  24
     loss =  7.079532169282226e-05
     loss_decrease =  0.0
epoch =  25
     loss =  7.079532169282226e-05
     loss_decrease =  0.0
epoch =  26
     loss =  7.079532169282226e-05
     loss_decrease =  0.0
epoch =  27
     loss =  7.079532169282226e-05
     loss_decrease =  0.0
epoch =  28
     loss =  7.079532169282226e-05
     loss_decrease =  0.0
* Final training loss: 7.0795e-05

 
 
   _   _            ____   ___  __  __ 
  | \ | | ___ _   _|  _ \ / _ \|  \/  |
  |  \| |/ _ \ | | | |_) | | | | |\/| |
  | |\  |  __/ |_| |  _ <| |_| | |  | |
  |_| \_|\___|\__,_|_| \_\ ___/|_|  |_|

                  2024.09.18

************ MESH READING COMPLETE ************

 * Dimension of the problem: 1D
 * Elements type:            3-node quadratic bar
 * Number of Dofs:           159
 
 
   _   _            ____   ___  __  __ 
  | \ | | ___ _   _|  _ \ / _ \|  \/  |
  |  \| |/ _ \ | | | |_) | | | | |\/| |
  | |\  |  __/ |_| |  _ <| |_| | |  | |
  |_| \_|\___|\__,_|_| \_\ ___/|_|  |_|

                  2024.09.18

************ MESH READING COMPLETE ************

 * Dimension of the problem: 1D
 * Elements type:            2-node bar
 * Number of Dofs:           80
epoch =  1
     loss =  0.01135122874676024
     loss_decrease =  0.9886487712532398
epoch =  2
     loss =  0.004890875700158538
     loss_decrease =  0.5691324869517368
epoch =  3
     loss =  0.0014051955985729175
     loss_decrease =  0.7126903882412371
epoch =  4
     loss =  0.0007061721609355706
     loss_decrease =  0.4974563244770039
epoch =  5
     loss =  0.0005199876766110994
     loss_decrease =  0.2636531070239375
epoch =  6
     loss =  0.00045807784789423875
     loss_decrease =  0.11906018450349391
epoch =  7
     loss =  0.0004073075163774036
     loss_decrease =  0.11083341346940014
epoch =  8
     loss =  0.0003603441413144267
     loss_decrease =  0.11530200935320208
epoch =  9
     loss =  0.0003411623856883373
     loss_decrease =  0.05323176770994575
epoch =  10
     loss =  0.0003207491078143458
     loss_decrease =  0.05983449152169923
epoch =  11
     loss =  0.00029327912803969936
     loss_decrease =  0.08564319932745203
epoch =  12
     loss =  0.000206705173789493
     loss_decrease =  0.29519302934673
epoch =  13
     loss =  0.0001327401807774321
     loss_decrease =  0.3578284551667115
epoch =  14
     loss =  9.040187829911762e-05
     loss_decrease =  0.31895619118753415
epoch =  15
     loss =  7.36763868672615e-05
     loss_decrease =  0.18501265401273606
epoch =  16
     loss =  7.29971861202707e-05
     loss_decrease =  0.009218703249040554
epoch =  17
     loss =  7.253172226806026e-05
     loss_decrease =  0.0063764629426063205
epoch =  18
     loss =  7.15422684904976e-05
     loss_decrease =  0.013641669418876737
epoch =  19
     loss =  7.113969857468052e-05
     loss_decrease =  0.005627021959340744
epoch =  20
     loss =  7.095402457298831e-05
     loss_decrease =  0.002609991403004
epoch =  21
     loss =  7.087804438730799e-05
     loss_decrease =  0.0010708368713061374
epoch =  22
     loss =  7.08587705768142e-05
     loss_decrease =  0.00027192920826760685
epoch =  23
     loss =  7.08587705768142e-05
     loss_decrease =  0.0
epoch =  24
     loss =  7.08587705768142e-05
     loss_decrease =  0.0
epoch =  25
     loss =  7.08587705768142e-05
     loss_decrease =  0.0
epoch =  26
     loss =  7.08587705768142e-05
     loss_decrease =  0.0
epoch =  27
     loss =  7.08587705768142e-05
     loss_decrease =  0.0
* Final training loss: 7.0859e-05

 
 
   _   _            ____   ___  __  __ 
  | \ | | ___ _   _|  _ \ / _ \|  \/  |
  |  \| |/ _ \ | | | |_) | | | | |\/| |
  | |\  |  __/ |_| |  _ <| |_| | |  | |
  |_| \_|\___|\__,_|_| \_\ ___/|_|  |_|

                  2024.09.18

************ MESH READING COMPLETE ************

 * Dimension of the problem: 1D
 * Elements type:            3-node quadratic bar
 * Number of Dofs:           159
 
 
   _   _            ____   ___  __  __ 
  | \ | | ___ _   _|  _ \ / _ \|  \/  |
  |  \| |/ _ \ | | | |_) | | | | |\/| |
  | |\  |  __/ |_| |  _ <| |_| | |  | |
  |_| \_|\___|\__,_|_| \_\ ___/|_|  |_|

                  2024.09.18

************ MESH READING COMPLETE ************

 * Dimension of the problem: 1D
 * Elements type:            2-node bar
 * Number of Dofs:           80
epoch =  1
     loss =  0.011341313960972151
     loss_decrease =  0.9886586860390278
epoch =  2
     loss =  0.004900504652073898
     loss_decrease =  0.5679067990765826
epoch =  3
     loss =  0.0014598901966261586
     loss_decrease =  0.702093906592185
epoch =  4
     loss =  0.0007289055608222276
     loss_decrease =  0.5007120655329107
epoch =  5
     loss =  0.000527026966831251
     loss_decrease =  0.2769612482627398
epoch =  6
     loss =  0.0004592393665390855
     loss_decrease =  0.1286226408863637
epoch =  7
     loss =  0.0004091431435266328
     loss_decrease =  0.10908521059504826
epoch =  8
     loss =  0.00036212072542051875
     loss_decrease =  0.11492901408734757
epoch =  9
     loss =  0.00034241307339502385
     loss_decrease =  0.05442287790241515
epoch =  10
     loss =  0.00032349120806922366
     loss_decrease =  0.05526034721218439
epoch =  11
     loss =  0.00029979820575736437
     loss_decrease =  0.0732415649045684
epoch =  12
     loss =  0.000234294578403622
     loss_decrease =  0.21849239286894337
epoch =  13
     loss =  0.00015061800887217967
     loss_decrease =  0.3571425770992094
epoch =  14
     loss =  0.00010095972947187805
     loss_decrease =  0.32969682557975905
epoch =  15
     loss =  7.611157100931262e-05
     loss_decrease =  0.24611950321723863
epoch =  16
     loss =  7.358245938571716e-05
     loss_decrease =  0.033229003028803744
epoch =  17
     loss =  7.290986080724511e-05
     loss_decrease =  0.009140746097467428
epoch =  18
     loss =  7.251141260907455e-05
     loss_decrease =  0.005464942516128963
epoch =  19
     loss =  7.173146148556101e-05
     loss_decrease =  0.010756253332402075
epoch =  20
     loss =  7.124871622539364e-05
     loss_decrease =  0.006729895783101251
epoch =  21
     loss =  7.104596322954237e-05
     loss_decrease =  0.0028457073557629367
epoch =  22
     loss =  7.089560398356747e-05
     loss_decrease =  0.002116365788287063
epoch =  23
     loss =  7.087723465112803e-05
     loss_decrease =  0.00025910396988363695
epoch =  24
     loss =  7.0871908180138e-05
     loss_decrease =  7.515066038116976e-05
epoch =  25
     loss =  7.0871908180138e-05
     loss_decrease =  0.0
epoch =  26
     loss =  7.0871908180138e-05
     loss_decrease =  0.0
epoch =  27
     loss =  7.0871908180138e-05
     loss_decrease =  0.0
epoch =  28
     loss =  7.0871908180138e-05
     loss_decrease =  0.0
epoch =  29
     loss =  7.0871908180138e-05
     loss_decrease =  0.0
* Final training loss: 7.0872e-05

 
 
   _   _            ____   ___  __  __ 
  | \ | | ___ _   _|  _ \ / _ \|  \/  |
  |  \| |/ _ \ | | | |_) | | | | |\/| |
  | |\  |  __/ |_| |  _ <| |_| | |  | |
  |_| \_|\___|\__,_|_| \_\ ___/|_|  |_|

                  2024.09.18

************ MESH READING COMPLETE ************

 * Dimension of the problem: 1D
 * Elements type:            3-node quadratic bar
 * Number of Dofs:           319
 
 
   _   _            ____   ___  __  __ 
  | \ | | ___ _   _|  _ \ / _ \|  \/  |
  |  \| |/ _ \ | | | |_) | | | | |\/| |
  | |\  |  __/ |_| |  _ <| |_| | |  | |
  |_| \_|\___|\__,_|_| \_\ ___/|_|  |_|

                  2024.09.18

************ MESH READING COMPLETE ************

 * Dimension of the problem: 1D
 * Elements type:            2-node bar
 * Number of Dofs:           160
epoch =  1
     loss =  0.016181149801382688
     loss_decrease =  0.9838188501986174
epoch =  2
     loss =  0.011229507107243663
     loss_decrease =  0.30601303089820625
epoch =  3
     loss =  0.007854614323258517
     loss_decrease =  0.3005379267099044
epoch =  4
     loss =  0.004711771939004632
     loss_decrease =  0.40012688782790096
epoch =  5
     loss =  0.0023567625896344707
     loss_decrease =  0.4998139510690452
epoch =  6
     loss =  0.0013710506720708347
     loss_decrease =  0.4182482876718261
epoch =  7
     loss =  0.0009008374371659693
     loss_decrease =  0.34295831983704544
epoch =  8
     loss =  0.0006607719522326722
     loss_decrease =  0.2664914611991949
epoch =  9
     loss =  0.0005435638836772038
     loss_decrease =  0.17738051404790378
epoch =  10
     loss =  0.0004781146314852703
     loss_decrease =  0.12040765429294172
epoch =  11
     loss =  0.0004403797016566881
     loss_decrease =  0.07892444059149173
epoch =  12
     loss =  0.00041429758983789814
     loss_decrease =  0.05922641693218439
epoch =  13
     loss =  0.00039159971767538496
     loss_decrease =  0.054786396829858836
epoch =  14
     loss =  0.0003675001683840827
     loss_decrease =  0.06154128362084131
epoch =  15
     loss =  0.0003401265165934424
     loss_decrease =  0.07448609319283764
epoch =  16
     loss =  0.0003170390834100982
     loss_decrease =  0.06787895696747723
epoch =  17
     loss =  0.0003003099310922949
     loss_decrease =  0.05276684545597077
epoch =  18
     loss =  0.0002902814853529955
     loss_decrease =  0.03339365335945995
epoch =  19
     loss =  0.00028511270985171454
     loss_decrease =  0.017806080518692095
epoch =  20
     loss =  0.00027659372065721993
     loss_decrease =  0.029879373665682173
epoch =  21
     loss =  0.00026073911607881633
     loss_decrease =  0.05732091292864913
epoch =  22
     loss =  0.00024854794778788366
     loss_decrease =  0.046756192451183724
epoch =  23
     loss =  0.00023490741423184267
     loss_decrease =  0.0548808939178292
epoch =  24
     loss =  0.00019439670696259299
     loss_decrease =  0.17245393212351953
epoch =  25
     loss =  0.00014461886457408678
     loss_decrease =  0.2560631976038811
epoch =  26
     loss =  0.00011073723455744082
     loss_decrease =  0.23428222947559338
epoch =  27
     loss =  7.259584823829535e-05
     loss_decrease =  0.34443145046539014
epoch =  28
     loss =  4.880446940371545e-05
     loss_decrease =  0.3277236840939563
epoch =  29
     loss =  3.6140226003547246e-05
     loss_decrease =  0.2594894187949943
epoch =  30
     loss =  2.102562925029649e-05
     loss_decrease =  0.4182208697800402
epoch =  31
     loss =  1.9744294822181086e-05
     loss_decrease =  0.06094154961366195
epoch =  32
     loss =  1.9477915278301944e-05
     loss_decrease =  0.013491469119468663
epoch =  33
     loss =  1.933505557254667e-05
     loss_decrease =  0.007334445381555679
epoch =  34
     loss =  1.9152879906444702e-05
     loss_decrease =  0.009422039953204689
epoch =  35
     loss =  1.886961130359576e-05
     loss_decrease =  0.014789869942933477
epoch =  36
     loss =  1.8594843850749814e-05
     loss_decrease =  0.014561373227311165
epoch =  37
     loss =  1.831025268872132e-05
     loss_decrease =  0.015304842800119504
epoch =  38
     loss =  1.808456295462286e-05
     loss_decrease =  0.012325866711685382
epoch =  39
     loss =  1.7899851617509445e-05
     loss_decrease =  0.010213757312072575
epoch =  40
     loss =  1.7816443073308816e-05
     loss_decrease =  0.00465973383371733
epoch =  41
     loss =  1.7762570645958926e-05
     loss_decrease =  0.0030237476205673013
epoch =  42
     loss =  1.770709919276239e-05
     loss_decrease =  0.003122940609339991
epoch =  43
     loss =  1.7650204100923796e-05
     loss_decrease =  0.003213123234880258
epoch =  44
     loss =  1.7627890442308154e-05
     loss_decrease =  0.0012642153307719699
epoch =  45
     loss =  1.7626925389763607e-05
     loss_decrease =  5.474577617243604e-05
epoch =  46
     loss =  1.762504541934828e-05
     loss_decrease =  0.00010665333708276827
epoch =  47
     loss =  1.7624197716857066e-05
     loss_decrease =  4.809647130230783e-05
epoch =  48
     loss =  1.762342870965756e-05
     loss_decrease =  4.363360034087348e-05
epoch =  49
     loss =  1.762270109322579e-05
     loss_decrease =  4.12868825787175e-05
epoch =  50
     loss =  1.762191797909625e-05
     loss_decrease =  4.4437803569212705e-05
epoch =  51
     loss =  1.7620545417267764e-05
     loss_decrease =  7.788946867843275e-05
epoch =  52
     loss =  1.76196914944549e-05
     loss_decrease =  4.8461769635592056e-05
epoch =  53
     loss =  1.76196914944549e-05
     loss_decrease =  0.0
epoch =  54
     loss =  1.76196914944549e-05
     loss_decrease =  0.0
epoch =  55
     loss =  1.76196914944549e-05
     loss_decrease =  0.0
epoch =  56
     loss =  1.76196914944549e-05
     loss_decrease =  0.0
epoch =  57
     loss =  1.76196914944549e-05
     loss_decrease =  0.0
* Final training loss: 1.762e-05

 
 
   _   _            ____   ___  __  __ 
  | \ | | ___ _   _|  _ \ / _ \|  \/  |
  |  \| |/ _ \ | | | |_) | | | | |\/| |
  | |\  |  __/ |_| |  _ <| |_| | |  | |
  |_| \_|\___|\__,_|_| \_\ ___/|_|  |_|

                  2024.09.18

************ MESH READING COMPLETE ************

 * Dimension of the problem: 1D
 * Elements type:            3-node quadratic bar
 * Number of Dofs:           319
 
 
   _   _            ____   ___  __  __ 
  | \ | | ___ _   _|  _ \ / _ \|  \/  |
  |  \| |/ _ \ | | | |_) | | | | |\/| |
  | |\  |  __/ |_| |  _ <| |_| | |  | |
  |_| \_|\___|\__,_|_| \_\ ___/|_|  |_|

                  2024.09.18

************ MESH READING COMPLETE ************

 * Dimension of the problem: 1D
 * Elements type:            2-node bar
 * Number of Dofs:           160
epoch =  1
     loss =  0.016665281356488273
     loss_decrease =  0.9833347186435117
epoch =  2
     loss =  0.011560440317406514
     loss_decrease =  0.3063159228988533
epoch =  3
     loss =  0.008061491613637992
     loss_decrease =  0.30266569505143914
epoch =  4
     loss =  0.004900904555734339
     loss_decrease =  0.3920598332641994
epoch =  5
     loss =  0.0024816283150945807
     loss_decrease =  0.49363871773610984
epoch =  6
     loss =  0.0013670951065182769
     loss_decrease =  0.4491136733882029
epoch =  7
     loss =  0.0009002685077692825
     loss_decrease =  0.3414733887373133
epoch =  8
     loss =  0.0006570806111758024
     loss_decrease =  0.27012818341947753
epoch =  9
     loss =  0.0005392489673406813
     loss_decrease =  0.1793260093678144
epoch =  10
     loss =  0.00047635369061810784
     loss_decrease =  0.1166349507032771
epoch =  11
     loss =  0.00043893382941490727
     loss_decrease =  0.0785547838511448
epoch =  12
     loss =  0.0004121294074147066
     loss_decrease =  0.061067113546318844
epoch =  13
     loss =  0.00038865958788222583
     loss_decrease =  0.05694769436548402
epoch =  14
     loss =  0.00036376064179825525
     loss_decrease =  0.06406363527436154
epoch =  15
     loss =  0.000337050021705874
     loss_decrease =  0.07342910975837562
epoch =  16
     loss =  0.0003147803102970586
     loss_decrease =  0.06607242241405059
epoch =  17
     loss =  0.00029971946453073717
     loss_decrease =  0.04784557760969378
epoch =  18
     loss =  0.00029074198588307067
     loss_decrease =  0.029952938364287744
epoch =  19
     loss =  0.00028637033366228615
     loss_decrease =  0.01503619165118687
epoch =  20
     loss =  0.00027229384106142445
     loss_decrease =  0.04915485630387252
epoch =  21
     loss =  0.0002617131842472673
     loss_decrease =  0.038857495905573386
epoch =  22
     loss =  0.0002486879302819193
     loss_decrease =  0.04976919295377073
epoch =  23
     loss =  0.0002340759434094773
     loss_decrease =  0.058756317027036445
epoch =  24
     loss =  0.0001885359956601158
     loss_decrease =  0.19455202053675746
epoch =  25
     loss =  0.00013309048363404494
     loss_decrease =  0.2940844894469146
epoch =  26
     loss =  0.00010749971234445016
     loss_decrease =  0.1922810000447589
epoch =  27
     loss =  7.028877966015916e-05
     loss_decrease =  0.34614913726522234
epoch =  28
     loss =  4.7197481766818024e-05
     loss_decrease =  0.32852039834786984
epoch =  29
     loss =  3.386999844969564e-05
     loss_decrease =  0.28237700017487394
epoch =  30
     loss =  2.162247317125721e-05
     loss_decrease =  0.3616039515510663
epoch =  31
     loss =  2.0429982858169357e-05
     loss_decrease =  0.05515050492341603
epoch =  32
     loss =  2.0139280003059277e-05
     loss_decrease =  0.01422922657978816
epoch =  33
     loss =  1.994815069407106e-05
     loss_decrease =  0.009490374480079973
epoch =  34
     loss =  1.971604937804435e-05
     loss_decrease =  0.011635229730628274
epoch =  35
     loss =  1.9454013503865242e-05
     loss_decrease =  0.013290485794324932
epoch =  36
     loss =  1.9036959681790824e-05
     loss_decrease =  0.021437932177417022
epoch =  37
     loss =  1.86575796038721e-05
     loss_decrease =  0.01992860647184158
epoch =  38
     loss =  1.83364736287842e-05
     loss_decrease =  0.017210483991249262
epoch =  39
     loss =  1.805935029955252e-05
     loss_decrease =  0.015113229230546248
epoch =  40
     loss =  1.79564503215367e-05
     loss_decrease =  0.005697878179945964
epoch =  41
     loss =  1.7881020234934934e-05
     loss_decrease =  0.0042007237093678205
epoch =  42
     loss =  1.7817274776649173e-05
     loss_decrease =  0.003564978812630506
epoch =  43
     loss =  1.7771266332540003e-05
     loss_decrease =  0.002582238006985662
epoch =  44
     loss =  1.775557421253707e-05
     loss_decrease =  0.0008830051674033518
epoch =  45
     loss =  1.775557421253707e-05
     loss_decrease =  0.0
epoch =  46
     loss =  1.775557421253707e-05
     loss_decrease =  0.0
epoch =  47
     loss =  1.775557421253707e-05
     loss_decrease =  0.0
epoch =  48
     loss =  1.775557421253707e-05
     loss_decrease =  0.0
epoch =  49
     loss =  1.775557421253707e-05
     loss_decrease =  0.0
* Final training loss: 1.7756e-05

 
 
   _   _            ____   ___  __  __ 
  | \ | | ___ _   _|  _ \ / _ \|  \/  |
  |  \| |/ _ \ | | | |_) | | | | |\/| |
  | |\  |  __/ |_| |  _ <| |_| | |  | |
  |_| \_|\___|\__,_|_| \_\ ___/|_|  |_|

                  2024.09.18

************ MESH READING COMPLETE ************

 * Dimension of the problem: 1D
 * Elements type:            3-node quadratic bar
 * Number of Dofs:           319
 
 
   _   _            ____   ___  __  __ 
  | \ | | ___ _   _|  _ \ / _ \|  \/  |
  |  \| |/ _ \ | | | |_) | | | | |\/| |
  | |\  |  __/ |_| |  _ <| |_| | |  | |
  |_| \_|\___|\__,_|_| \_\ ___/|_|  |_|

                  2024.09.18

************ MESH READING COMPLETE ************

 * Dimension of the problem: 1D
 * Elements type:            2-node bar
 * Number of Dofs:           160
epoch =  1
     loss =  0.01682802625975537
     loss_decrease =  0.9831719737402447
epoch =  2
     loss =  0.011533131862094688
     loss_decrease =  0.31464738145337634
epoch =  3
     loss =  0.007998056523026249
     loss_decrease =  0.30651477684799366
epoch =  4
     loss =  0.004747130412828397
     loss_decrease =  0.4064645080762432
epoch =  5
     loss =  0.0024341035538316415
     loss_decrease =  0.4872473805956863
epoch =  6
     loss =  0.0013640283429587022
     loss_decrease =  0.4396177842099123
epoch =  7
     loss =  0.0008837126587352079
     loss_decrease =  0.3521302813852428
epoch =  8
     loss =  0.0006512829588594291
     loss_decrease =  0.2630150169042934
epoch =  9
     loss =  0.0005418071505775941
     loss_decrease =  0.1680925422546853
epoch =  10
     loss =  0.00047540780390433244
     loss_decrease =  0.12255162487700012
epoch =  11
     loss =  0.00043830953729696886
     loss_decrease =  0.07803461849530126
epoch =  12
     loss =  0.00041229166414164474
     loss_decrease =  0.05935958709859459
epoch =  13
     loss =  0.00039000378608884743
     loss_decrease =  0.05405852213674688
epoch =  14
     loss =  0.00036491526789250587
     loss_decrease =  0.06432890933685989
epoch =  15
     loss =  0.0003380117638132013
     loss_decrease =  0.07372534515938531
epoch =  16
     loss =  0.00031453774116516796
     loss_decrease =  0.06944735408974116
epoch =  17
     loss =  0.0002994653157470096
     loss_decrease =  0.04791929058282272
epoch =  18
     loss =  0.00029086294894742305
     loss_decrease =  0.028725753358542164
epoch =  19
     loss =  0.00028676183804231335
     loss_decrease =  0.014099805148613226
epoch =  20
     loss =  0.00027328867315955165
     loss_decrease =  0.04698381407631254
epoch =  21
     loss =  0.0002619244490093529
     loss_decrease =  0.04158322413737247
epoch =  22
     loss =  0.00024922046490481585
     loss_decrease =  0.04850247524652959
epoch =  23
     loss =  0.00023407776193313867
     loss_decrease =  0.06076027094107458
epoch =  24
     loss =  0.0001906232442415402
     loss_decrease =  0.18564137546740003
epoch =  25
     loss =  0.00013685925418907566
     loss_decrease =  0.2820432013230232
epoch =  26
     loss =  0.00010980503036081743
     loss_decrease =  0.19767917038976343
epoch =  27
     loss =  7.286701984530683e-05
     loss_decrease =  0.3363963417170683
epoch =  28
     loss =  4.868892501955395e-05
     loss_decrease =  0.33181122100343624
epoch =  29
     loss =  3.4935613837760024e-05
     loss_decrease =  0.28247309169940515
epoch =  30
     loss =  2.164997071017085e-05
     loss_decrease =  0.38028938576225724
epoch =  31
     loss =  2.0696983129314953e-05
     loss_decrease =  0.04401796166902879
epoch =  32
     loss =  2.0455106379553156e-05
     loss_decrease =  0.011686570368760944
epoch =  33
     loss =  2.022221600479431e-05
     loss_decrease =  0.011385439431967116
epoch =  34
     loss =  1.9860334813447915e-05
     loss_decrease =  0.01789522924988041
epoch =  35
     loss =  1.9309406275996797e-05
     loss_decrease =  0.027740143488319772
epoch =  36
     loss =  1.892096423539501e-05
     loss_decrease =  0.020116726275766147
epoch =  37
     loss =  1.8662504879736473e-05
     loss_decrease =  0.013659946313678948
epoch =  38
     loss =  1.8480712017152617e-05
     loss_decrease =  0.009741075153381172
epoch =  39
     loss =  1.8300077050277428e-05
     loss_decrease =  0.009774242827199285
epoch =  40
     loss =  1.815784885650093e-05
     loss_decrease =  0.00777199972359353
epoch =  41
     loss =  1.805314766535535e-05
     loss_decrease =  0.00576616712546843
epoch =  42
     loss =  1.7903590602282986e-05
     loss_decrease =  0.008284265206525225
epoch =  43
     loss =  1.7812253231678595e-05
     loss_decrease =  0.0051016230561451385
epoch =  44
     loss =  1.777669964040959e-05
     loss_decrease =  0.0019960187409515805
epoch =  45
     loss =  1.7774165922220973e-05
     loss_decrease =  0.00014253029189158163
epoch =  46
     loss =  1.7771438616731006e-05
     loss_decrease =  0.0001534421081642811
epoch =  47
     loss =  1.7767555599405195e-05
     loss_decrease =  0.0002184976359851065
epoch =  48
     loss =  1.7762066819754523e-05
     loss_decrease =  0.00030892148444190513
epoch =  49
     loss =  1.7759641867220118e-05
     loss_decrease =  0.00013652423217482972
epoch =  50
     loss =  1.7759641867220118e-05
     loss_decrease =  0.0
epoch =  51
     loss =  1.7759641867220118e-05
     loss_decrease =  0.0
epoch =  52
     loss =  1.7759641867220118e-05
     loss_decrease =  0.0
epoch =  53
     loss =  1.7759641867220118e-05
     loss_decrease =  0.0
epoch =  54
     loss =  1.7759641867220118e-05
     loss_decrease =  0.0
* Final training loss: 1.776e-05

 
 
   _   _            ____   ___  __  __ 
  | \ | | ___ _   _|  _ \ / _ \|  \/  |
  |  \| |/ _ \ | | | |_) | | | | |\/| |
  | |\  |  __/ |_| |  _ <| |_| | |  | |
  |_| \_|\___|\__,_|_| \_\ ___/|_|  |_|

                  2024.09.18

************ MESH READING COMPLETE ************

 * Dimension of the problem: 1D
 * Elements type:            3-node quadratic bar
 * Number of Dofs:           319
 
 
   _   _            ____   ___  __  __ 
  | \ | | ___ _   _|  _ \ / _ \|  \/  |
  |  \| |/ _ \ | | | |_) | | | | |\/| |
  | |\  |  __/ |_| |  _ <| |_| | |  | |
  |_| \_|\___|\__,_|_| \_\ ___/|_|  |_|

                  2024.09.18

************ MESH READING COMPLETE ************

 * Dimension of the problem: 1D
 * Elements type:            2-node bar
 * Number of Dofs:           160
epoch =  1
     loss =  0.016722037531690367
     loss_decrease =  0.9832779624683097
epoch =  2
     loss =  0.011498230720766462
     loss_decrease =  0.31239056849526464
epoch =  3
     loss =  0.008138200716514585
     loss_decrease =  0.292221480491209
epoch =  4
     loss =  0.0048920830841078095
     loss_decrease =  0.3988741179385678
epoch =  5
     loss =  0.0024709536905875447
     loss_decrease =  0.49490766037589007
epoch =  6
     loss =  0.001400177737010025
     loss_decrease =  0.43334521308770874
epoch =  7
     loss =  0.0009158609338204167
     loss_decrease =  0.34589666039386585
epoch =  8
     loss =  0.0006679062938610273
     loss_decrease =  0.2707339409325747
epoch =  9
     loss =  0.0005481067975240823
     loss_decrease =  0.17936572456056535
epoch =  10
     loss =  0.0004824961247519558
     loss_decrease =  0.11970417639136056
epoch =  11
     loss =  0.0004418856166783728
     loss_decrease =  0.0841675321111859
epoch =  12
     loss =  0.0004151750690744849
     loss_decrease =  0.060446745935451476
epoch =  13
     loss =  0.0003917690275678299
     loss_decrease =  0.056376317486577746
epoch =  14
     loss =  0.0003679020980992208
     loss_decrease =  0.06092091969796375
epoch =  15
     loss =  0.00033971900866117274
     loss_decrease =  0.07660486195555005
epoch =  16
     loss =  0.0003158502407637446
     loss_decrease =  0.07026032482402018
epoch =  17
     loss =  0.00030069336175983833
     loss_decrease =  0.047987549312155195
epoch =  18
     loss =  0.00029188904682276814
     loss_decrease =  0.02928004424687677
epoch =  19
     loss =  0.0002871998446455844
     loss_decrease =  0.016065015896368898
epoch =  20
     loss =  0.0002793880574309116
     loss_decrease =  0.027199830920218188
epoch =  21
     loss =  0.00026346216165441924
     loss_decrease =  0.05700277929893467
epoch =  22
     loss =  0.0002510998674852701
     loss_decrease =  0.04692246541787901
epoch =  23
     loss =  0.00023759483677076806
     loss_decrease =  0.0537835039490583
epoch =  24
     loss =  0.00019899157905631522
     loss_decrease =  0.16247515408635474
epoch =  25
     loss =  0.0001451034294336973
     loss_decrease =  0.2708061812372844
epoch =  26
     loss =  0.000111625266510766
     loss_decrease =  0.23071930865857737
epoch =  27
     loss =  7.556385408527957e-05
     loss_decrease =  0.3230577946437278
epoch =  28
     loss =  4.921411228258394e-05
     loss_decrease =  0.348708282837955
epoch =  29
     loss =  3.630834520526812e-05
     loss_decrease =  0.2622371201823539
epoch =  30
     loss =  2.2454141023428136e-05
     loss_decrease =  0.3815707960116514
epoch =  31
     loss =  2.0747671852622327e-05
     loss_decrease =  0.07599797155568405
epoch =  32
     loss =  2.03602332074313e-05
     loss_decrease =  0.018673837139083996
epoch =  33
     loss =  2.0137578301095715e-05
     loss_decrease =  0.010935773871898395
epoch =  34
     loss =  1.9938717745093704e-05
     loss_decrease =  0.009875097840895346
epoch =  35
     loss =  1.9688138330650274e-05
     loss_decrease =  0.012567478894428354
epoch =  36
     loss =  1.926747027890837e-05
     loss_decrease =  0.021366573348736286
epoch =  37
     loss =  1.880288344192116e-05
     loss_decrease =  0.024112497918098788
epoch =  38
     loss =  1.8378702019872707e-05
     loss_decrease =  0.022559381562869133
epoch =  39
     loss =  1.807059568078186e-05
     loss_decrease =  0.016764314409020573
epoch =  40
     loss =  1.7932507452088847e-05
     loss_decrease =  0.0076415980486946354
epoch =  41
     loss =  1.7841768577781897e-05
     loss_decrease =  0.0050600215585791235
epoch =  42
     loss =  1.7783386170964627e-05
     loss_decrease =  0.0032722320415013544
epoch =  43
     loss =  1.7751984087279154e-05
     loss_decrease =  0.0017658101434440906
epoch =  44
     loss =  1.774994805003059e-05
     loss_decrease =  0.00011469350347287001
epoch =  45
     loss =  1.774668664865138e-05
     loss_decrease =  0.0001837414605393605
epoch =  46
     loss =  1.7745776750722987e-05
     loss_decrease =  5.1271425838883427e-05
epoch =  47
     loss =  1.7732693067240316e-05
     loss_decrease =  0.0007372843503250879
epoch =  48
     loss =  1.7732693067240316e-05
     loss_decrease =  0.0
epoch =  49
     loss =  1.7732693067240316e-05
     loss_decrease =  0.0
epoch =  50
     loss =  1.7732693067240316e-05
     loss_decrease =  0.0
epoch =  51
     loss =  1.7732693067240316e-05
     loss_decrease =  0.0
epoch =  52
     loss =  1.7732693067240316e-05
     loss_decrease =  0.0
* Final training loss: 1.7733e-05
import matplotlib.pyplot as plt
import matplotlib
plt.rcParams['text.usetex'] = False

# Plot normalized displacement error

fig = matplotlib.pyplot.gcf()
ax = plt.gca()

plt.plot(mesh_resolution_r, loss_u_r[:,0],'-', color = "cyan", label = 'Residual loss, 10 p./e.')
plt.plot(mesh_resolution_r, loss_u_r[:,1],'-', color = "darkblue", label = 'Residual loss, 25 p./e.')
plt.plot(mesh_resolution_r, loss_u_r[:,2],'-', color = "darkgreen", label = 'Residual loss, 50 p./e.')
plt.plot(mesh_resolution_r, loss_u_r[:,3],'-', color = "yellowgreen", label = 'Residual loss, 75 p./e.')

plt.plot(mesh_resolution_w, loss_u_w[:,0],'-', color = "plum", label = 'Weak eq. loss, G.q.(3)')
plt.plot(mesh_resolution_w, loss_u_w[:,1],'-', color = "pink", label = 'Weak eq. loss, G.q.(4)')
plt.plot(mesh_resolution_w, loss_u_w[:,1],'-', color = "indigo", label = 'Weak eq. loss, G.q.(5)')
plt.plot(mesh_resolution_pe, loss_u_pe,'--', color = "gray", label = 'Potential energy loss, G.q.(5)')

ax.set_xscale('log')
ax.set_yscale('log')
ax.set_ylim([0.0011, 1.3])

plt.xlabel("Number of mesh nodes")
plt.ylabel("Normalized displacement error")
plt.legend(loc='center left', bbox_to_anchor=(1, 0.5),frameon=False )

plt.show()

# Plot normalized strain error

fig = matplotlib.pyplot.gcf()
ax = plt.gca()

plt.plot(mesh_resolution_r, loss_grad_r[:,0],'-', color = "cyan", label = 'Residual loss, 10 p./e.')
plt.plot(mesh_resolution_r, loss_grad_r[:,1],'-', color = "darkblue", label = 'Residual loss, 25 p./e.')
plt.plot(mesh_resolution_r, loss_grad_r[:,2],'-', color = "darkgreen", label = 'Residual loss, 50 p./e.')
plt.plot(mesh_resolution_r, loss_grad_r[:,3],'-', color = "yellowgreen", label = 'Residual loss, 75 p./e.')

plt.plot(mesh_resolution_w, loss_grad_w[:,0],'-', color = "plum", label = 'Weak eq. loss, G.q.(3)')
plt.plot(mesh_resolution_w, loss_grad_w[:,1],'-', color = "pink", label = 'Weak eq. loss, G.q.(4)')
plt.plot(mesh_resolution_w, loss_grad_w[:,1],'-', color = "indigo", label = 'Weak eq. loss, G.q.(5)')
plt.plot(mesh_resolution_pe, loss_grad_pe,'--', color = "gray", label = 'Potential energy loss, G.q.(5)')

ax.set_xscale('log')
ax.set_yscale('log')
ax.set_ylim([0.005, 1.1])

plt.xlabel("Number of mesh nodes")
plt.ylabel("Normalized strain error")
plt.legend(loc='center left', bbox_to_anchor=(1, 0.5),frameon=False )
plt.show()
../_images/fede46f3e8731782788aab8c803f968288d293bd961d13e7ac09e8c38fc82d19.svg ../_images/a044f17df5a1232a37bb91886a398fc40dd2bf859255b03361c239ab8c5b166b.svg