1D Case - Figures 8b and 8d#
Investigation of the influence of
mesh resolution
the number of quadrature points when computing the loss with the Gaussian quadrature rule
The study has been done on fixed and r-adapted meshes.
#%% 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 mechanical functions
from neurom.src.Training import Training_1D_FEM_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: Gauss quadrature
# Tested variants: 6 mesh resolutions, 3-,4- and 5-point quadrature rule, fixed and r-adaptive mesh
mesh_resolution = [10,21,41,80,160,324]
quadrature_points = [3,4,5]
setting = ["fixed", "r-adaptive"]
config["solver"]["IntegralMethod"] = "Gaussian_quad"
loss_u = numpy.zeros((len(setting),len(mesh_resolution), len(quadrature_points)))
loss_grad = numpy.zeros((len(setting),len(mesh_resolution), len(quadrature_points)))
for q in range(len(quadrature_points)):
config["interpolation"]["n_integr_points"] = quadrature_points[q]
for set in range(len(setting)):
if setting[set] == "fixed":
config["solver"]["FrozenMesh"] = True
elif setting[set] == "r-adaptive":
config["solver"]["FrozenMesh"] = False
for res in range(len(mesh_resolution)):
config["interpolation"]["np"] = mesh_resolution[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)
l2_loss, l2_loss_grad = Pplot.Normalized_error_1D(Model_FEM,config,Mat)
loss_u[set, res, q] = l2_loss
loss_grad[set, res, q] = l2_loss_grad
_ _ ____ ___ __ __
| \ | | ___ _ _| _ \ / _ \| \/ |
| \| |/ _ \ | | | |_) | | | | |\/| |
| |\ | __/ |_| | _ <| |_| | | | |
|_| \_|\___|\__,_|_| \_\ ___/|_| |_|
2024.09.16
************ 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.012880413395373335
loss_decrease = 1.0128804133953733
epoch = 2
loss = -0.012880413395373335
loss_decrease = 0.0
epoch = 3
loss = -0.012880413395373335
loss_decrease = 0.0
epoch = 4
loss = -0.012880413395373335
loss_decrease = 0.0
epoch = 5
loss = -0.012880413395373335
loss_decrease = 0.0
epoch = 6
loss = -0.012880413395373335
loss_decrease = 0.0
* Final training loss: -1.2880e-02
_ _ ____ ___ __ __
| \ | | ___ _ _| _ \ / _ \| \/ |
| \| |/ _ \ | | | |_) | | | | |\/| |
| |\ | __/ |_| | _ <| |_| | | | |
|_| \_|\___|\__,_|_| \_\ ___/|_| |_|
2024.09.16
************ 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.02640650203142158
loss_decrease = 1.0264065020314215
epoch = 2
loss = -0.026510943498860597
loss_decrease = 0.00395514208261062
epoch = 3
loss = -0.026510943498860597
loss_decrease = 0.0
epoch = 4
loss = -0.026510943498860597
loss_decrease = 0.0
epoch = 5
loss = -0.026510943498860597
loss_decrease = 0.0
epoch = 6
loss = -0.026510943498860597
loss_decrease = 0.0
epoch = 7
loss = -0.026510943498860597
loss_decrease = 0.0
* Final training loss: -2.6511e-02
_ _ ____ ___ __ __
| \ | | ___ _ _| _ \ / _ \| \/ |
| \| |/ _ \ | | | |_) | | | | |\/| |
| |\ | __/ |_| | _ <| |_| | | | |
|_| \_|\___|\__,_|_| \_\ ___/|_| |_|
2024.09.16
************ 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.2899387404897017
loss_decrease = 0.7100612595102983
epoch = 2
loss = -0.029972552618226567
loss_decrease = 1.1033754667196367
epoch = 3
loss = -0.03000798023719271
loss_decrease = 0.001182002060932223
epoch = 4
loss = -0.03000798023719271
loss_decrease = 0.0
epoch = 5
loss = -0.03000798023719271
loss_decrease = 0.0
epoch = 6
loss = -0.03000798023719271
loss_decrease = 0.0
epoch = 7
loss = -0.03000798023719271
loss_decrease = 0.0
epoch = 8
loss = -0.03000798023719271
loss_decrease = 0.0
* Final training loss: -3.0008e-02
_ _ ____ ___ __ __
| \ | | ___ _ _| _ \ / _ \| \/ |
| \| |/ _ \ | | | |_) | | | | |\/| |
| |\ | __/ |_| | _ <| |_| | | | |
|_| \_|\___|\__,_|_| \_\ ___/|_| |_|
2024.09.16
************ 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.6288340606213749
loss_decrease = 0.3711659393786251
epoch = 2
loss = 0.30664343227818863
loss_decrease = 0.5123619226745089
epoch = 3
loss = -0.030312420444596255
loss_decrease = 1.0988523387551201
epoch = 4
loss = -0.031085753858900063
loss_decrease = 0.025512097119307027
epoch = 5
loss = -0.031120088656901156
loss_decrease = 0.0011045187501947118
epoch = 6
loss = -0.031120088656901156
loss_decrease = 0.0
epoch = 7
loss = -0.031120088656901156
loss_decrease = 0.0
epoch = 8
loss = -0.031120088656901156
loss_decrease = 0.0
epoch = 9
loss = -0.031120088656901156
loss_decrease = 0.0
epoch = 10
loss = -0.031120088656901156
loss_decrease = 0.0
* Final training loss: -3.1120e-02
_ _ ____ ___ __ __
| \ | | ___ _ _| _ \ / _ \| \/ |
| \| |/ _ \ | | | |_) | | | | |\/| |
| |\ | __/ |_| | _ <| |_| | | | |
|_| \_|\___|\__,_|_| \_\ ___/|_| |_|
2024.09.16
************ 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.2997354148663827
loss_decrease = -0.29973541486638267
epoch = 2
loss = 0.6372422738026718
loss_decrease = 0.5097138490542842
epoch = 3
loss = 0.41881820253429336
loss_decrease = 0.342764565767047
epoch = 4
loss = 0.3067637348496916
loss_decrease = 0.2675491824532784
epoch = 5
loss = -0.029269298266880114
loss_decrease = 1.0954131631016344
epoch = 6
loss = -0.030610327531555633
loss_decrease = 0.04581692572359924
epoch = 7
loss = -0.0311348624706043
loss_decrease = 0.017135881297184265
epoch = 8
loss = -0.0313773085469604
loss_decrease = 0.007786964743621467
epoch = 9
loss = -0.031417697791288744
loss_decrease = 0.0012872118801361206
epoch = 10
loss = -0.03141774220799398
loss_decrease = 1.4137479306243473e-06
epoch = 11
loss = -0.03141774220799398
loss_decrease = 0.0
epoch = 12
loss = -0.03141774220799398
loss_decrease = 0.0
epoch = 13
loss = -0.03141774220799398
loss_decrease = 0.0
epoch = 14
loss = -0.03141774220799398
loss_decrease = 0.0
epoch = 15
loss = -0.03141774220799398
loss_decrease = 0.0
* Final training loss: -3.1418e-02
_ _ ____ ___ __ __
| \ | | ___ _ _| _ \ / _ \| \/ |
| \| |/ _ \ | | | |_) | | | | |\/| |
| |\ | __/ |_| | _ <| |_| | | | |
|_| \_|\___|\__,_|_| \_\ ___/|_| |_|
2024.09.16
************ MESH READING COMPLETE ************
* Dimension of the problem: 1D
* Elements type: 2-node bar
* Number of Dofs: 324
Gaussian_quad
mesh.NNodes = 324
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 = 2.766709318960943
loss_decrease = -1.766709318960943
epoch = 2
loss = 1.3729149889035779
loss_decrease = 0.503773316736004
epoch = 3
loss = 0.8802528972640002
loss_decrease = 0.3588438436621789
epoch = 4
loss = 0.6594251560601
loss_decrease = 0.2508685195928084
epoch = 5
loss = 0.529567132995965
loss_decrease = 0.1969260982398732
epoch = 6
loss = 0.43838711240891726
loss_decrease = 0.1721783979893301
epoch = 7
loss = 0.36664816565684216
loss_decrease = 0.16364291905816492
epoch = 8
loss = 0.31888619905050497
loss_decrease = 0.13026648182126502
epoch = 9
loss = 0.24402686506469262
loss_decrease = 0.23475250483937118
epoch = 10
loss = -0.028716034885372513
loss_decrease = 1.1176757111466384
epoch = 11
loss = -0.030108730172630903
loss_decrease = 0.048498871547471435
epoch = 12
loss = -0.03052496756741886
loss_decrease = 0.013824475240284928
epoch = 13
loss = -0.030903381167604885
loss_decrease = 0.012396855110500777
epoch = 14
loss = -0.03114046563752024
loss_decrease = 0.007671797096554725
epoch = 15
loss = -0.0312936835639943
loss_decrease = 0.004920219506591128
epoch = 16
loss = -0.03142926002591829
loss_decrease = 0.004332390645119874
epoch = 17
loss = -0.03147299568589841
loss_decrease = 0.0013915586922522332
epoch = 18
loss = -0.03149143092890119
loss_decrease = 0.000585747959513169
epoch = 19
loss = -0.031492180015897
loss_decrease = 2.3787010425118394e-05
epoch = 20
loss = -0.03149222615128921
loss_decrease = 1.4649793118369932e-06
epoch = 21
loss = -0.031492227447639444
loss_decrease = 4.1164134579230756e-08
epoch = 22
loss = -0.031492227447639444
loss_decrease = 0.0
epoch = 23
loss = -0.031492227447639444
loss_decrease = 0.0
epoch = 24
loss = -0.031492227447639444
loss_decrease = 0.0
epoch = 25
loss = -0.031492227447639444
loss_decrease = 0.0
* Final training loss: -3.1492e-02
_ _ ____ ___ __ __
| \ | | ___ _ _| _ \ / _ \| \/ |
| \| |/ _ \ | | | |_) | | | | |\/| |
| |\ | __/ |_| | _ <| |_| | | | |
|_| \_|\___|\__,_|_| \_\ ___/|_| |_|
2024.09.16
************ 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.02345344503485764
loss_decrease = 1.0234534450348576
Correction
epoch = 2
loss = 0.060985625290614145
loss_decrease = -3.600284316439413
Correction
epoch = 3
loss = 2.6685454890084674
loss_decrease = -42.75695873071853
Correction
epoch = 4
loss = 2.571814387875291
loss_decrease = 0.03624862365344887
Correction
epoch = 5
loss = -0.013483699544506136
loss_decrease = 1.0052428742945347
Correction
epoch = 6
loss = -0.0011422477291338357
loss_decrease = -0.9152867708625828
Correction
epoch = 7
loss = -0.022031735399951638
loss_decrease = 18.28805357893621
epoch = 8
loss = -0.029355330465270835
loss_decrease = 0.3324111756232908
Correction
Correction
Correction
epoch = 9
loss = 5361.756998124403
loss_decrease = -182651.200598753
Correction
epoch = 10
loss = 1.3947781462962014
loss_decrease = 0.9997398654682067
epoch = 11
loss = -0.0214893050501363
loss_decrease = 1.0154069699953363
Correction
Correction
Correction
Correction
epoch = 12
loss = 2.6811478330917398
loss_decrease = -125.76661422211667
Correction
Correction
Correction
Correction
epoch = 13
loss = 0.2336592820897402
loss_decrease = 0.912851026263517
Correction
epoch = 14
loss = 0.21213274980106012
loss_decrease = 0.09212787138673362
Correction
epoch = 15
loss = 0.77890570657198
loss_decrease = -2.6717843298710093
Correction
Correction
epoch = 16
loss = 96.1642592099574
loss_decrease = -122.46071982600206
Correction
Correction
epoch = 17
loss = 17653201.412670996
loss_decrease = -183572.41446501866
Correction
Correction
epoch = 18
loss = 527556059290816.4
loss_decrease = -29884440.18199154
Correction
Correction
epoch = 19
loss = 4.709529892018963e+29
loss_decrease = -892707004133340.8
Correction
Correction
epoch = 20
loss = 3.753144032577062e+59
loss_decrease = -7.969254084016652e+29
Correction
Correction
epoch = 21
loss = 2.383584642540439e+119
loss_decrease = -6.350901062818451e+59
Correction
Correction
epoch = 22
loss = 9.613937022966571e+238
loss_decrease = -4.0333944309693064e+119
Correction
Correction
epoch = 23
loss = inf
loss_decrease = -inf
epoch = 24
loss = nan
loss_decrease = nan
epoch = 25
loss = nan
loss_decrease = nan
epoch = 26
loss = nan
loss_decrease = nan
epoch = 27
loss = nan
loss_decrease = nan
epoch = 28
loss = nan
loss_decrease = nan
epoch = 29
loss = nan
loss_decrease = nan
epoch = 30
loss = nan
loss_decrease = nan
epoch = 31
loss = nan
loss_decrease = nan
epoch = 32
loss = nan
loss_decrease = nan
epoch = 33
loss = nan
loss_decrease = nan
epoch = 34
loss = nan
loss_decrease = nan
epoch = 35
loss = nan
loss_decrease = nan
epoch = 36
loss = nan
loss_decrease = nan
epoch = 37
loss = nan
loss_decrease = nan
epoch = 38
loss = nan
loss_decrease = nan
epoch = 39
loss = nan
loss_decrease = nan
epoch = 40
loss = nan
loss_decrease = nan
epoch = 41
loss = nan
loss_decrease = nan
epoch = 42
loss = nan
loss_decrease = nan
epoch = 43
loss = nan
loss_decrease = nan
epoch = 44
loss = nan
loss_decrease = nan
epoch = 45
loss = nan
loss_decrease = nan
epoch = 46
loss = nan
loss_decrease = nan
epoch = 47
loss = nan
loss_decrease = nan
epoch = 48
loss = nan
loss_decrease = nan
epoch = 49
loss = nan
loss_decrease = nan
epoch = 50
loss = nan
loss_decrease = nan
epoch = 51
loss = nan
loss_decrease = nan
epoch = 52
loss = nan
loss_decrease = nan
epoch = 53
loss = nan
loss_decrease = nan
epoch = 54
loss = nan
loss_decrease = nan
epoch = 55
loss = nan
loss_decrease = nan
epoch = 56
loss = nan
loss_decrease = nan
epoch = 57
loss = nan
loss_decrease = nan
epoch = 58
loss = nan
loss_decrease = nan
epoch = 59
loss = nan
loss_decrease = nan
epoch = 60
loss = nan
loss_decrease = nan
epoch = 61
loss = nan
loss_decrease = nan
epoch = 62
loss = nan
loss_decrease = nan
epoch = 63
loss = nan
loss_decrease = nan
epoch = 64
loss = nan
loss_decrease = nan
epoch = 65
loss = nan
loss_decrease = nan
epoch = 66
loss = nan
loss_decrease = nan
epoch = 67
loss = nan
loss_decrease = nan
epoch = 68
loss = nan
loss_decrease = nan
epoch = 69
loss = nan
loss_decrease = nan
epoch = 70
loss = nan
loss_decrease = nan
epoch = 71
loss = nan
loss_decrease = nan
epoch = 72
loss = nan
loss_decrease = nan
epoch = 73
loss = nan
loss_decrease = nan
epoch = 74
loss = nan
loss_decrease = nan
epoch = 75
loss = nan
loss_decrease = nan
epoch = 76
loss = nan
loss_decrease = nan
epoch = 77
loss = nan
loss_decrease = nan
epoch = 78
loss = nan
loss_decrease = nan
epoch = 79
loss = nan
loss_decrease = nan
epoch = 80
loss = nan
loss_decrease = nan
epoch = 81
loss = nan
loss_decrease = nan
epoch = 82
loss = nan
loss_decrease = nan
epoch = 83
loss = nan
loss_decrease = nan
epoch = 84
loss = nan
loss_decrease = nan
epoch = 85
loss = nan
loss_decrease = nan
epoch = 86
loss = nan
loss_decrease = nan
epoch = 87
loss = nan
loss_decrease = nan
epoch = 88
loss = nan
loss_decrease = nan
epoch = 89
loss = nan
loss_decrease = nan
epoch = 90
loss = nan
loss_decrease = nan
epoch = 91
loss = nan
loss_decrease = nan
epoch = 92
loss = nan
loss_decrease = nan
epoch = 93
loss = nan
loss_decrease = nan
epoch = 94
loss = nan
loss_decrease = nan
epoch = 95
loss = nan
loss_decrease = nan
epoch = 96
loss = nan
loss_decrease = nan
epoch = 97
loss = nan
loss_decrease = nan
epoch = 98
loss = nan
loss_decrease = nan
epoch = 99
loss = nan
loss_decrease = nan
epoch = 100
loss = nan
loss_decrease = nan
* Final training loss: nan
_ _ ____ ___ __ __
| \ | | ___ _ _| _ \ / _ \| \/ |
| \| |/ _ \ | | | |_) | | | | |\/| |
| |\ | __/ |_| | _ <| |_| | | | |
|_| \_|\___|\__,_|_| \_\ ___/|_| |_|
2024.09.16
************ 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.026408687980821535
loss_decrease = 1.0264086879808216
epoch = 2
loss = -0.027354404018971185
loss_decrease = 0.03581079222248547
epoch = 3
loss = -0.027386271070905712
loss_decrease = 0.0011649697033218733
epoch = 4
loss = -0.02755579325755699
loss_decrease = 0.006190042675484011
epoch = 5
loss = -0.027585874746659488
loss_decrease = 0.001091657526289729
epoch = 6
loss = -0.027585993361344926
loss_decrease = 4.299834119005778e-06
epoch = 7
loss = -0.027585993361344926
loss_decrease = 0.0
epoch = 8
loss = -0.027585993361344926
loss_decrease = 0.0
epoch = 9
loss = -0.027585993361344926
loss_decrease = 0.0
epoch = 10
loss = -0.027585993361344926
loss_decrease = 0.0
epoch = 11
loss = -0.027585993361344926
loss_decrease = 0.0
* Final training loss: -2.7586e-02
_ _ ____ ___ __ __
| \ | | ___ _ _| _ \ / _ \| \/ |
| \| |/ _ \ | | | |_) | | | | |\/| |
| |\ | __/ |_| | _ <| |_| | | | |
|_| \_|\___|\__,_|_| \_\ ___/|_| |_|
2024.09.16
************ 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.3033096606516888
loss_decrease = 0.6966903393483113
epoch = 2
loss = -0.029975057368729432
loss_decrease = 1.098826583051543
epoch = 3
loss = -0.03039827995010227
loss_decrease = 0.014119158344442528
epoch = 4
loss = -0.030626069506167117
loss_decrease = 0.007493501488859065
epoch = 5
loss = -0.03063529623657595
loss_decrease = 0.00030127047177809534
epoch = 6
loss = -0.03063529623657595
loss_decrease = 0.0
epoch = 7
loss = -0.03063529623657595
loss_decrease = 0.0
epoch = 8
loss = -0.03063529623657595
loss_decrease = 0.0
epoch = 9
loss = -0.03063529623657595
loss_decrease = 0.0
epoch = 10
loss = -0.03063529623657595
loss_decrease = 0.0
* Final training loss: -3.0635e-02
_ _ ____ ___ __ __
| \ | | ___ _ _| _ \ / _ \| \/ |
| \| |/ _ \ | | | |_) | | | | |\/| |
| |\ | __/ |_| | _ <| |_| | | | |
|_| \_|\___|\__,_|_| \_\ ___/|_| |_|
2024.09.16
************ 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.636684576594095
loss_decrease = 0.36331542340590495
epoch = 2
loss = 0.3115845255293267
loss_decrease = 0.5106139884899852
epoch = 3
loss = -0.030165494407746588
loss_decrease = 1.0968131981410205
epoch = 4
loss = -0.03107536885838808
loss_decrease = 0.030162756106123442
epoch = 5
loss = -0.031124186747844573
loss_decrease = 0.0015709512469171197
epoch = 6
loss = -0.031124186747844573
loss_decrease = 0.0
epoch = 7
loss = -0.031124186747844573
loss_decrease = 0.0
epoch = 8
loss = -0.031124186747844573
loss_decrease = 0.0
epoch = 9
loss = -0.031124186747844573
loss_decrease = 0.0
epoch = 10
loss = -0.031124186747844573
loss_decrease = 0.0
* Final training loss: -3.1124e-02
_ _ ____ ___ __ __
| \ | | ___ _ _| _ \ / _ \| \/ |
| \| |/ _ \ | | | |_) | | | | |\/| |
| |\ | __/ |_| | _ <| |_| | | | |
|_| \_|\___|\__,_|_| \_\ ___/|_| |_|
2024.09.16
************ 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.3435185711081117
loss_decrease = -0.3435185711081117
epoch = 2
loss = 0.6612229448060266
loss_decrease = 0.5078423484234676
epoch = 3
loss = 0.4334143143250511
loss_decrease = 0.34452620295535025
epoch = 4
loss = 0.31586825810567665
loss_decrease = 0.2712094463294942
epoch = 5
loss = -0.027987436391144416
loss_decrease = 1.0886047764311315
epoch = 6
loss = -0.030494805776594684
loss_decrease = 0.0895891052830988
epoch = 7
loss = -0.031066065982094795
loss_decrease = 0.018733033083901885
epoch = 8
loss = -0.03134802090613749
loss_decrease = 0.009075977763170954
epoch = 9
loss = -0.03141718191235145
loss_decrease = 0.0022062319793980144
epoch = 10
loss = -0.031418447001685924
loss_decrease = 4.026743512537158e-05
epoch = 11
loss = -0.031418447001685924
loss_decrease = 0.0
epoch = 12
loss = -0.031418447001685924
loss_decrease = 0.0
epoch = 13
loss = -0.031418447001685924
loss_decrease = 0.0
epoch = 14
loss = -0.031418447001685924
loss_decrease = 0.0
epoch = 15
loss = -0.031418447001685924
loss_decrease = 0.0
* Final training loss: -3.1418e-02
_ _ ____ ___ __ __
| \ | | ___ _ _| _ \ / _ \| \/ |
| \| |/ _ \ | | | |_) | | | | |\/| |
| |\ | __/ |_| | _ <| |_| | | | |
|_| \_|\___|\__,_|_| \_\ ___/|_| |_|
2024.09.16
************ MESH READING COMPLETE ************
* Dimension of the problem: 1D
* Elements type: 2-node bar
* Number of Dofs: 324
Gaussian_quad
mesh.NNodes = 324
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)
Correction
epoch = 1
loss = 10.449698943633352
loss_decrease = -9.449698943633352
Correction
epoch = 2
loss = 2.7755108885072706
loss_decrease = 0.7343932199885725
Correction
epoch = 3
loss = 1.4971597323436407
loss_decrease = 0.460582288275999
Correction
epoch = 4
loss = 1.0150380448259528
loss_decrease = 0.32202421498671946
Correction
epoch = 5
loss = 0.7766734263555162
loss_decrease = 0.23483318648544715
Correction
epoch = 6
loss = 0.6074912610631291
loss_decrease = 0.21782921824203785
epoch = 7
loss = 0.49602254074211055
loss_decrease = 0.18349024498878344
epoch = 8
loss = 0.43810299373957484
loss_decrease = 0.11676797372127679
epoch = 9
loss = 0.36835608541095355
loss_decrease = 0.15920208107521291
epoch = 10
loss = 0.3300329822754282
loss_decrease = 0.10403819742185193
epoch = 11
loss = 0.30018721833715456
loss_decrease = 0.09043267049402336
epoch = 12
loss = 0.08572319193279204
loss_decrease = 0.7144342373814456
Correction
epoch = 13
loss = -0.0038912813198031197
loss_decrease = 1.045393565405893
Correction
epoch = 14
loss = -0.02903738347572926
loss_decrease = 6.4621650529236
epoch = 15
loss = -0.029793688156009787
loss_decrease = 0.02604589634987873
epoch = 16
loss = -0.030551540400571855
loss_decrease = 0.02543667103561327
epoch = 17
loss = -0.030890346131178015
loss_decrease = 0.011089644782683962
epoch = 18
loss = -0.031034568044480782
loss_decrease = 0.004668834486033864
epoch = 19
loss = -0.03122285081419582
loss_decrease = 0.006066872574001254
epoch = 20
loss = -0.031330532089145186
loss_decrease = 0.003448797023377785
epoch = 21
loss = -0.0314674655357221
loss_decrease = 0.00437060711855434
epoch = 22
loss = -0.03148955260174309
loss_decrease = 0.000701901651275914
epoch = 23
loss = -0.0314921692112957
loss_decrease = 8.309452934119772e-05
epoch = 24
loss = -0.031492417954025284
loss_decrease = 7.898558143725783e-06
epoch = 25
loss = -0.031492423776234936
loss_decrease = 1.8487655220362128e-07
epoch = 26
loss = -0.03149242507905141
loss_decrease = 4.136920301898884e-08
epoch = 27
loss = -0.03149242507905141
loss_decrease = 0.0
epoch = 28
loss = -0.03149242507905141
loss_decrease = 0.0
epoch = 29
loss = -0.03149242507905141
loss_decrease = 0.0
epoch = 30
loss = -0.03149242507905141
loss_decrease = 0.0
* Final training loss: -3.1492e-02
_ _ ____ ___ __ __
| \ | | ___ _ _| _ \ / _ \| \/ |
| \| |/ _ \ | | | |_) | | | | |\/| |
| |\ | __/ |_| | _ <| |_| | | | |
|_| \_|\___|\__,_|_| \_\ ___/|_| |_|
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.013737392169712176
loss_decrease = 1.0137373921697121
epoch = 2
loss = -0.013737392169712176
loss_decrease = 0.0
epoch = 3
loss = -0.013737392169712176
loss_decrease = 0.0
epoch = 4
loss = -0.013737392169712176
loss_decrease = 0.0
epoch = 5
loss = -0.013737392169712176
loss_decrease = 0.0
epoch = 6
loss = -0.013737392169712176
loss_decrease = 0.0
* Final training loss: -1.3737e-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.02642810075780263
loss_decrease = 1.0264281007578027
epoch = 2
loss = -0.02653259274797934
loss_decrease = 0.003953821393913805
epoch = 3
loss = -0.02653259274797934
loss_decrease = 0.0
epoch = 4
loss = -0.02653259274797934
loss_decrease = 0.0
epoch = 5
loss = -0.02653259274797934
loss_decrease = 0.0
epoch = 6
loss = -0.02653259274797934
loss_decrease = 0.0
epoch = 7
loss = -0.02653259274797934
loss_decrease = 0.0
* Final training loss: -2.6533e-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.28993858398478
loss_decrease = 0.71006141601522
epoch = 2
loss = -0.029972669655830755
loss_decrease = 1.103375926183747
epoch = 3
loss = -0.030008098006719754
loss_decrease = 0.0011820218651129354
epoch = 4
loss = -0.030008098006719754
loss_decrease = 0.0
epoch = 5
loss = -0.030008098006719754
loss_decrease = 0.0
epoch = 6
loss = -0.030008098006719754
loss_decrease = 0.0
epoch = 7
loss = -0.030008098006719754
loss_decrease = 0.0
epoch = 8
loss = -0.030008098006719754
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.6288340579136511
loss_decrease = 0.3711659420863489
epoch = 2
loss = 0.3066434323896402
loss_decrease = 0.5123619203975316
epoch = 3
loss = -0.0303123068363896
loss_decrease = 1.0988519682295783
epoch = 4
loss = -0.03108590739871624
loss_decrease = 0.025521005923506295
epoch = 5
loss = -0.03112009073734338
loss_decrease = 0.001099641010593502
epoch = 6
loss = -0.03112009073734338
loss_decrease = 0.0
epoch = 7
loss = -0.03112009073734338
loss_decrease = 0.0
epoch = 8
loss = -0.03112009073734338
loss_decrease = 0.0
epoch = 9
loss = -0.03112009073734338
loss_decrease = 0.0
epoch = 10
loss = -0.03112009073734338
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.299735414843696
loss_decrease = -0.2997354148436959
epoch = 2
loss = 0.6372422737787344
loss_decrease = 0.5097138490641434
epoch = 3
loss = 0.4188182025066328
loss_decrease = 0.3427645657857652
epoch = 4
loss = 0.3067637344411117
loss_decrease = 0.2675491833804585
epoch = 5
loss = -0.02926931167283999
loss_decrease = 1.0954132069299694
epoch = 6
loss = -0.030610328472554023
loss_decrease = 0.045816478867127156
epoch = 7
loss = -0.03113237280707191
loss_decrease = 0.01705451592869924
epoch = 8
loss = -0.03137752352937967
loss_decrease = 0.007874463145708919
epoch = 9
loss = -0.03141773869452104
loss_decrease = 0.001281655166435121
epoch = 10
loss = -0.03141774202958806
loss_decrease = 1.0615235722681734e-07
epoch = 11
loss = -0.03141774202958806
loss_decrease = 0.0
epoch = 12
loss = -0.03141774202958806
loss_decrease = 0.0
epoch = 13
loss = -0.03141774202958806
loss_decrease = 0.0
epoch = 14
loss = -0.03141774202958806
loss_decrease = 0.0
epoch = 15
loss = -0.03141774202958806
loss_decrease = 0.0
* Final training loss: -3.1418e-02
_ _ ____ ___ __ __
| \ | | ___ _ _| _ \ / _ \| \/ |
| \| |/ _ \ | | | |_) | | | | |\/| |
| |\ | __/ |_| | _ <| |_| | | | |
|_| \_|\___|\__,_|_| \_\ ___/|_| |_|
2024.09.18
************ MESH READING COMPLETE ************
* Dimension of the problem: 1D
* Elements type: 2-node bar
* Number of Dofs: 324
Gaussian_quad
mesh.NNodes = 324
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 = 2.7667093189605603
loss_decrease = -1.7667093189605603
epoch = 2
loss = 1.3729149889032675
loss_decrease = 0.5037733167360475
epoch = 3
loss = 0.8802528972642755
loss_decrease = 0.35884384366183353
epoch = 4
loss = 0.6594251561294288
loss_decrease = 0.25086851951428263
epoch = 5
loss = 0.5295671326454663
loss_decrease = 0.19692609885582613
epoch = 6
loss = 0.43838708109579305
loss_decrease = 0.1721784565710884
epoch = 7
loss = 0.36664722825995344
loss_decrease = 0.16364499760467066
epoch = 8
loss = 0.3188624513229842
loss_decrease = 0.13032902816079595
epoch = 9
loss = 0.22992235923374982
loss_decrease = 0.2789293368354137
epoch = 10
loss = -0.028783440910221253
loss_decrease = 1.1251876546767625
epoch = 11
loss = -0.03012669905720116
loss_decrease = 0.04666774035702259
epoch = 12
loss = -0.030568618039775286
loss_decrease = 0.014668682477793536
epoch = 13
loss = -0.030922120588916226
loss_decrease = 0.011564230632898388
epoch = 14
loss = -0.031148957850208013
loss_decrease = 0.0073357601927564854
epoch = 15
loss = -0.03131110973626068
loss_decrease = 0.005205692172188841
epoch = 16
loss = -0.03143344168305327
loss_decrease = 0.0039069821486053
epoch = 17
loss = -0.0314753692309693
loss_decrease = 0.0013338516456069007
epoch = 18
loss = -0.03149135771458797
loss_decrease = 0.0005079681036096005
epoch = 19
loss = -0.031492077397731334
loss_decrease = 2.28533539229123e-05
epoch = 20
loss = -0.03149217101356766
loss_decrease = 2.97267897394231e-06
epoch = 21
loss = -0.0314922111286827
loss_decrease = 1.273812307985311e-06
epoch = 22
loss = -0.031492235453265224
loss_decrease = 7.72399957006323e-07
epoch = 23
loss = -0.03149223669506062
loss_decrease = 3.94317957365002e-08
epoch = 24
loss = -0.03149223669506062
loss_decrease = 0.0
epoch = 25
loss = -0.03149223669506062
loss_decrease = 0.0
epoch = 26
loss = -0.03149223669506062
loss_decrease = 0.0
epoch = 27
loss = -0.03149223669506062
loss_decrease = 0.0
* Final training loss: -3.1492e-02
_ _ ____ ___ __ __
| \ | | ___ _ _| _ \ / _ \| \/ |
| \| |/ _ \ | | | |_) | | | | |\/| |
| |\ | __/ |_| | _ <| |_| | | | |
|_| \_|\___|\__,_|_| \_\ ___/|_| |_|
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.022257131067019736
loss_decrease = 1.0222571310670197
epoch = 2
loss = -0.02563281323462354
loss_decrease = 0.15166744345617103
epoch = 3
loss = -0.02697316784918917
loss_decrease = 0.05229057779561802
epoch = 4
loss = -0.02704168546296438
loss_decrease = 0.00254021382131693
Correction
epoch = 5
loss = 0.32165129261631964
loss_decrease = -12.894646620930683
Correction
epoch = 6
loss = 3495.8059102897623
loss_decrease = -10867.309845282416
Correction
epoch = 7
loss = 5595256.999153065
loss_decrease = -1599.5628294991016
Correction
epoch = 8
loss = 13643551459087.467
loss_decrease = -2438412.724544314
Correction
epoch = 9
loss = 8.101885797373431e+25
loss_decrease = -5938252823443.342
Correction
epoch = 10
loss = 2.8569532141001988e+51
loss_decrease = -3.5262817639646327e+25
Correction
epoch = 11
loss = 3.5525250649409706e+102
loss_decrease = -1.2434663078862645e+51
Correction
epoch = 12
loss = 5.492944305682325e+204
loss_decrease = -1.5462084588482974e+102
Correction
epoch = 13
loss = inf
loss_decrease = -inf
epoch = 14
loss = nan
loss_decrease = nan
epoch = 15
loss = nan
loss_decrease = nan
epoch = 16
loss = nan
loss_decrease = nan
epoch = 17
loss = nan
loss_decrease = nan
epoch = 18
loss = nan
loss_decrease = nan
epoch = 19
loss = nan
loss_decrease = nan
epoch = 20
loss = nan
loss_decrease = nan
epoch = 21
loss = nan
loss_decrease = nan
epoch = 22
loss = nan
loss_decrease = nan
epoch = 23
loss = nan
loss_decrease = nan
epoch = 24
loss = nan
loss_decrease = nan
epoch = 25
loss = nan
loss_decrease = nan
epoch = 26
loss = nan
loss_decrease = nan
epoch = 27
loss = nan
loss_decrease = nan
epoch = 28
loss = nan
loss_decrease = nan
epoch = 29
loss = nan
loss_decrease = nan
epoch = 30
loss = nan
loss_decrease = nan
epoch = 31
loss = nan
loss_decrease = nan
epoch = 32
loss = nan
loss_decrease = nan
epoch = 33
loss = nan
loss_decrease = nan
epoch = 34
loss = nan
loss_decrease = nan
epoch = 35
loss = nan
loss_decrease = nan
epoch = 36
loss = nan
loss_decrease = nan
epoch = 37
loss = nan
loss_decrease = nan
epoch = 38
loss = nan
loss_decrease = nan
epoch = 39
loss = nan
loss_decrease = nan
epoch = 40
loss = nan
loss_decrease = nan
epoch = 41
loss = nan
loss_decrease = nan
epoch = 42
loss = nan
loss_decrease = nan
epoch = 43
loss = nan
loss_decrease = nan
epoch = 44
loss = nan
loss_decrease = nan
epoch = 45
loss = nan
loss_decrease = nan
epoch = 46
loss = nan
loss_decrease = nan
epoch = 47
loss = nan
loss_decrease = nan
epoch = 48
loss = nan
loss_decrease = nan
epoch = 49
loss = nan
loss_decrease = nan
epoch = 50
loss = nan
loss_decrease = nan
epoch = 51
loss = nan
loss_decrease = nan
epoch = 52
loss = nan
loss_decrease = nan
epoch = 53
loss = nan
loss_decrease = nan
epoch = 54
loss = nan
loss_decrease = nan
epoch = 55
loss = nan
loss_decrease = nan
epoch = 56
loss = nan
loss_decrease = nan
epoch = 57
loss = nan
loss_decrease = nan
epoch = 58
loss = nan
loss_decrease = nan
epoch = 59
loss = nan
loss_decrease = nan
epoch = 60
loss = nan
loss_decrease = nan
epoch = 61
loss = nan
loss_decrease = nan
epoch = 62
loss = nan
loss_decrease = nan
epoch = 63
loss = nan
loss_decrease = nan
epoch = 64
loss = nan
loss_decrease = nan
epoch = 65
loss = nan
loss_decrease = nan
epoch = 66
loss = nan
loss_decrease = nan
epoch = 67
loss = nan
loss_decrease = nan
epoch = 68
loss = nan
loss_decrease = nan
epoch = 69
loss = nan
loss_decrease = nan
epoch = 70
loss = nan
loss_decrease = nan
epoch = 71
loss = nan
loss_decrease = nan
epoch = 72
loss = nan
loss_decrease = nan
epoch = 73
loss = nan
loss_decrease = nan
epoch = 74
loss = nan
loss_decrease = nan
epoch = 75
loss = nan
loss_decrease = nan
epoch = 76
loss = nan
loss_decrease = nan
epoch = 77
loss = nan
loss_decrease = nan
epoch = 78
loss = nan
loss_decrease = nan
epoch = 79
loss = nan
loss_decrease = nan
epoch = 80
loss = nan
loss_decrease = nan
epoch = 81
loss = nan
loss_decrease = nan
epoch = 82
loss = nan
loss_decrease = nan
epoch = 83
loss = nan
loss_decrease = nan
epoch = 84
loss = nan
loss_decrease = nan
epoch = 85
loss = nan
loss_decrease = nan
epoch = 86
loss = nan
loss_decrease = nan
epoch = 87
loss = nan
loss_decrease = nan
epoch = 88
loss = nan
loss_decrease = nan
epoch = 89
loss = nan
loss_decrease = nan
epoch = 90
loss = nan
loss_decrease = nan
epoch = 91
loss = nan
loss_decrease = nan
epoch = 92
loss = nan
loss_decrease = nan
epoch = 93
loss = nan
loss_decrease = nan
epoch = 94
loss = nan
loss_decrease = nan
epoch = 95
loss = nan
loss_decrease = nan
epoch = 96
loss = nan
loss_decrease = nan
epoch = 97
loss = nan
loss_decrease = nan
epoch = 98
loss = nan
loss_decrease = nan
epoch = 99
loss = nan
loss_decrease = nan
epoch = 100
loss = nan
loss_decrease = nan
* Final training loss: nan
_ _ ____ ___ __ __
| \ | | ___ _ _| _ \ / _ \| \/ |
| \| |/ _ \ | | | |_) | | | | |\/| |
| |\ | __/ |_| | _ <| |_| | | | |
|_| \_|\___|\__,_|_| \_\ ___/|_| |_|
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.02643125063247561
loss_decrease = 1.0264312506324755
epoch = 2
loss = -0.02753300342225591
loss_decrease = 0.0416837176984201
epoch = 3
loss = -0.02760195503396842
loss_decrease = 0.002504325832348973
epoch = 4
loss = -0.027910656216967207
loss_decrease = 0.011184033254850383
epoch = 5
loss = -0.027959865904850868
loss_decrease = 0.0017631146864166552
epoch = 6
loss = -0.02796470577483168
loss_decrease = 0.00017310061490577228
epoch = 7
loss = -0.02796470577483168
loss_decrease = 0.0
epoch = 8
loss = -0.02796470577483168
loss_decrease = 0.0
epoch = 9
loss = -0.02796470577483168
loss_decrease = 0.0
epoch = 10
loss = -0.02796470577483168
loss_decrease = 0.0
epoch = 11
loss = -0.02796470577483168
loss_decrease = 0.0
* Final training loss: -2.7965e-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.3033075188850817
loss_decrease = 0.6966924811149183
epoch = 2
loss = -0.029974611988948227
loss_decrease = 1.0988258124926509
epoch = 3
loss = -0.03042408652882254
loss_decrease = 0.014995174584412869
epoch = 4
loss = -0.030641416273674976
loss_decrease = 0.007143344949618983
epoch = 5
loss = -0.03065249924646187
loss_decrease = 0.0003616991031976866
epoch = 6
loss = -0.03065249924646187
loss_decrease = 0.0
epoch = 7
loss = -0.03065249924646187
loss_decrease = 0.0
epoch = 8
loss = -0.03065249924646187
loss_decrease = 0.0
epoch = 9
loss = -0.03065249924646187
loss_decrease = 0.0
epoch = 10
loss = -0.03065249924646187
loss_decrease = 0.0
* Final training loss: -3.0652e-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.6366845774063419
loss_decrease = 0.3633154225936581
epoch = 2
loss = 0.3115845372667018
loss_decrease = 0.5106139706791676
epoch = 3
loss = -0.03016551262865305
loss_decrease = 1.0968132529722832
epoch = 4
loss = -0.031075328489223675
loss_decrease = 0.030160795600285083
epoch = 5
loss = -0.031124189372408
loss_decrease = 0.0015723368202292555
epoch = 6
loss = -0.031124189372408
loss_decrease = 0.0
epoch = 7
loss = -0.031124189372408
loss_decrease = 0.0
epoch = 8
loss = -0.031124189372408
loss_decrease = 0.0
epoch = 9
loss = -0.031124189372408
loss_decrease = 0.0
epoch = 10
loss = -0.031124189372408
loss_decrease = 0.0
* Final training loss: -3.1124e-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.3435185706700832
loss_decrease = -0.3435185706700832
epoch = 2
loss = 0.6612229760879144
loss_decrease = 0.5078423249794547
epoch = 3
loss = 0.4334164469513063
loss_decrease = 0.3445230086897639
epoch = 4
loss = 0.31578318743141115
loss_decrease = 0.2714093116385846
epoch = 5
loss = -0.028201671256340426
loss_decrease = 1.0893070701000063
epoch = 6
loss = -0.030476749610297907
loss_decrease = 0.08067175641039316
epoch = 7
loss = -0.031079227819612865
loss_decrease = 0.019768453559476176
epoch = 8
loss = -0.03134915502569923
loss_decrease = 0.008685132322239553
epoch = 9
loss = -0.031416544609877986
loss_decrease = 0.002149645951334598
epoch = 10
loss = -0.031418450373165444
loss_decrease = 6.066113607090632e-05
epoch = 11
loss = -0.031418450373165444
loss_decrease = 0.0
epoch = 12
loss = -0.031418450373165444
loss_decrease = 0.0
epoch = 13
loss = -0.031418450373165444
loss_decrease = 0.0
epoch = 14
loss = -0.031418450373165444
loss_decrease = 0.0
epoch = 15
loss = -0.031418450373165444
loss_decrease = 0.0
* Final training loss: -3.1418e-02
_ _ ____ ___ __ __
| \ | | ___ _ _| _ \ / _ \| \/ |
| \| |/ _ \ | | | |_) | | | | |\/| |
| |\ | __/ |_| | _ <| |_| | | | |
|_| \_|\___|\__,_|_| \_\ ___/|_| |_|
2024.09.18
************ MESH READING COMPLETE ************
* Dimension of the problem: 1D
* Elements type: 2-node bar
* Number of Dofs: 324
Gaussian_quad
mesh.NNodes = 324
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)
Correction
epoch = 1
loss = 10.449699028993122
loss_decrease = -9.449699028993122
Correction
epoch = 2
loss = 2.775509488644647
loss_decrease = 0.7343933561202212
Correction
epoch = 3
loss = 1.497329672816278
loss_decrease = 0.46052078764556387
Correction
epoch = 4
loss = 0.992106655193255
loss_decrease = 0.33741601919420033
epoch = 5
loss = 0.7604470531631862
loss_decrease = 0.2335027195084618
Correction
epoch = 6
loss = 0.6739926078741886
loss_decrease = 0.11368897404412076
epoch = 7
loss = 0.508352757433324
loss_decrease = 0.2457591500347492
epoch = 8
loss = 0.4252366582476938
loss_decrease = 0.16350083277856867
epoch = 9
loss = 0.36224872683090853
loss_decrease = 0.14812441541692242
epoch = 10
loss = 0.3174446016600615
loss_decrease = 0.12368331991891535
Correction
epoch = 11
loss = 0.29793316980593076
loss_decrease = 0.06146405310437357
epoch = 12
loss = 0.14723126797580466
loss_decrease = 0.5058245173851944
Correction
Correction
epoch = 13
loss = -0.018485087136716555
loss_decrease = 1.1255513682036231
epoch = 14
loss = -0.027976763242416658
loss_decrease = 0.5134774878527338
epoch = 15
loss = -0.029521310739462424
loss_decrease = 0.055208227044078406
epoch = 16
loss = -0.030346227575707332
loss_decrease = 0.02794309654896882
epoch = 17
loss = -0.030875335549333714
loss_decrease = 0.0174357083530851
epoch = 18
loss = -0.031022755563551222
loss_decrease = 0.004774685411336015
epoch = 19
loss = -0.031178898040804696
loss_decrease = 0.005033159512010817
epoch = 20
loss = -0.031308757264986345
loss_decrease = 0.004164971578267393
epoch = 21
loss = -0.03144391700090075
loss_decrease = 0.004316994595807716
epoch = 22
loss = -0.03148899458309492
loss_decrease = 0.0014335867313503292
epoch = 23
loss = -0.031492085709692426
loss_decrease = 9.816529992248404e-05
epoch = 24
loss = -0.031492399386716115
loss_decrease = 9.960503301702718e-06
epoch = 25
loss = -0.03149243541528023
loss_decrease = 1.1440399848801345e-06
epoch = 26
loss = -0.03149243879390022
loss_decrease = 1.0728354105979613e-07
epoch = 27
loss = -0.03149243879390022
loss_decrease = 0.0
epoch = 28
loss = -0.03149243879390022
loss_decrease = 0.0
epoch = 29
loss = -0.03149243879390022
loss_decrease = 0.0
epoch = 30
loss = -0.03149243879390022
loss_decrease = 0.0
epoch = 31
loss = -0.03149243879390022
loss_decrease = 0.0
* Final training loss: -3.1492e-02
_ _ ____ ___ __ __
| \ | | ___ _ _| _ \ / _ \| \/ |
| \| |/ _ \ | | | |_) | | | | |\/| |
| |\ | __/ |_| | _ <| |_| | | | |
|_| \_|\___|\__,_|_| \_\ ___/|_| |_|
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
_ _ ____ ___ __ __
| \ | | ___ _ _| _ \ / _ \| \/ |
| \| |/ _ \ | | | |_) | | | | |\/| |
| |\ | __/ |_| | _ <| |_| | | | |
|_| \_|\___|\__,_|_| \_\ ___/|_| |_|
2024.09.18
************ MESH READING COMPLETE ************
* Dimension of the problem: 1D
* Elements type: 2-node bar
* Number of Dofs: 324
Gaussian_quad
mesh.NNodes = 324
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 = 2.766709318960562
loss_decrease = -1.766709318960562
epoch = 2
loss = 1.3729149889033176
loss_decrease = 0.5037733167360298
epoch = 3
loss = 0.8802528972628966
loss_decrease = 0.3588438436628613
epoch = 4
loss = 0.6594251559809964
loss_decrease = 0.25086851968173385
epoch = 5
loss = 0.5295671333904348
loss_decrease = 0.1969260975453352
epoch = 6
loss = 0.43838714773049064
loss_decrease = 0.17217833190701387
epoch = 7
loss = 0.36664922864435767
loss_decrease = 0.163640561675945
epoch = 8
loss = 0.31895231558037884
loss_decrease = 0.1300886769633542
epoch = 9
loss = 0.2332277781823991
loss_decrease = 0.268769133222914
epoch = 10
loss = -0.028768324105347794
loss_decrease = 1.123348617945711
epoch = 11
loss = -0.03012031946529313
loss_decrease = 0.046995972201731795
epoch = 12
loss = -0.030553141054455387
loss_decrease = 0.014369754267081605
epoch = 13
loss = -0.030920478124826574
loss_decrease = 0.012022890534118104
epoch = 14
loss = -0.031154265859898344
loss_decrease = 0.007560935316975512
epoch = 15
loss = -0.031305841635716286
loss_decrease = 0.004865329727222041
epoch = 16
loss = -0.031432307685571044
loss_decrease = 0.004039694933819476
epoch = 17
loss = -0.03147364604429449
loss_decrease = 0.001315155067103933
epoch = 18
loss = -0.03149083399551651
loss_decrease = 0.0005461061358391769
epoch = 19
loss = -0.03149211636721903
loss_decrease = 4.072206225776206e-05
epoch = 20
loss = -0.03149221793807548
loss_decrease = 3.2252788371017046e-06
epoch = 21
loss = -0.03149222473486055
loss_decrease = 2.1582427375189892e-07
epoch = 22
loss = -0.031492228085616
loss_decrease = 1.0639945189939058e-07
epoch = 23
loss = -0.031492228085616
loss_decrease = 0.0
epoch = 24
loss = -0.031492228085616
loss_decrease = 0.0
epoch = 25
loss = -0.031492228085616
loss_decrease = 0.0
epoch = 26
loss = -0.031492228085616
loss_decrease = 0.0
epoch = 27
loss = -0.031492228085616
loss_decrease = 0.0
* Final training loss: -3.1492e-02
_ _ ____ ___ __ __
| \ | | ___ _ _| _ \ / _ \| \/ |
| \| |/ _ \ | | | |_) | | | | |\/| |
| |\ | __/ |_| | _ <| |_| | | | |
|_| \_|\___|\__,_|_| \_\ ___/|_| |_|
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.022671525914665792
loss_decrease = 1.0226715259146657
epoch = 2
loss = -0.025088205102115888
loss_decrease = 0.10659534768618242
epoch = 3
loss = -0.026846742129146492
loss_decrease = 0.07009417452834411
epoch = 4
loss = -0.02705297878480696
loss_decrease = 0.0076819993527842455
epoch = 5
loss = -0.027062775334064725
loss_decrease = 0.00036212460504591313
Correction
epoch = 6
loss = 2031.2315484752376
loss_decrease = -75057.29128578198
Correction
epoch = 7
loss = 3814460.8675209014
loss_decrease = -1876.9054856568475
Correction
epoch = 8
loss = 12883551333034.13
loss_decrease = -3377553.9888934693
Correction
epoch = 9
loss = 1.4682271527489734e+26
loss_decrease = -11396136940784.562
Correction
epoch = 10
loss = 1.9068139755301408e+52
loss_decrease = -1.2987186430655487e+26
Correction
epoch = 11
loss = 3.216166145189472e+104
loss_decrease = -1.686670113845426e+52
Correction
epoch = 12
loss = 9.149529789724187e+208
loss_decrease = -2.8448560729393433e+104
Correction
epoch = 13
loss = inf
loss_decrease = -inf
epoch = 14
loss = nan
loss_decrease = nan
epoch = 15
loss = nan
loss_decrease = nan
epoch = 16
loss = nan
loss_decrease = nan
epoch = 17
loss = nan
loss_decrease = nan
epoch = 18
loss = nan
loss_decrease = nan
epoch = 19
loss = nan
loss_decrease = nan
epoch = 20
loss = nan
loss_decrease = nan
epoch = 21
loss = nan
loss_decrease = nan
epoch = 22
loss = nan
loss_decrease = nan
epoch = 23
loss = nan
loss_decrease = nan
epoch = 24
loss = nan
loss_decrease = nan
epoch = 25
loss = nan
loss_decrease = nan
epoch = 26
loss = nan
loss_decrease = nan
epoch = 27
loss = nan
loss_decrease = nan
epoch = 28
loss = nan
loss_decrease = nan
epoch = 29
loss = nan
loss_decrease = nan
epoch = 30
loss = nan
loss_decrease = nan
epoch = 31
loss = nan
loss_decrease = nan
epoch = 32
loss = nan
loss_decrease = nan
epoch = 33
loss = nan
loss_decrease = nan
epoch = 34
loss = nan
loss_decrease = nan
epoch = 35
loss = nan
loss_decrease = nan
epoch = 36
loss = nan
loss_decrease = nan
epoch = 37
loss = nan
loss_decrease = nan
epoch = 38
loss = nan
loss_decrease = nan
epoch = 39
loss = nan
loss_decrease = nan
epoch = 40
loss = nan
loss_decrease = nan
epoch = 41
loss = nan
loss_decrease = nan
epoch = 42
loss = nan
loss_decrease = nan
epoch = 43
loss = nan
loss_decrease = nan
epoch = 44
loss = nan
loss_decrease = nan
epoch = 45
loss = nan
loss_decrease = nan
epoch = 46
loss = nan
loss_decrease = nan
epoch = 47
loss = nan
loss_decrease = nan
epoch = 48
loss = nan
loss_decrease = nan
epoch = 49
loss = nan
loss_decrease = nan
epoch = 50
loss = nan
loss_decrease = nan
epoch = 51
loss = nan
loss_decrease = nan
epoch = 52
loss = nan
loss_decrease = nan
epoch = 53
loss = nan
loss_decrease = nan
epoch = 54
loss = nan
loss_decrease = nan
epoch = 55
loss = nan
loss_decrease = nan
epoch = 56
loss = nan
loss_decrease = nan
epoch = 57
loss = nan
loss_decrease = nan
epoch = 58
loss = nan
loss_decrease = nan
epoch = 59
loss = nan
loss_decrease = nan
epoch = 60
loss = nan
loss_decrease = nan
epoch = 61
loss = nan
loss_decrease = nan
epoch = 62
loss = nan
loss_decrease = nan
epoch = 63
loss = nan
loss_decrease = nan
epoch = 64
loss = nan
loss_decrease = nan
epoch = 65
loss = nan
loss_decrease = nan
epoch = 66
loss = nan
loss_decrease = nan
epoch = 67
loss = nan
loss_decrease = nan
epoch = 68
loss = nan
loss_decrease = nan
epoch = 69
loss = nan
loss_decrease = nan
epoch = 70
loss = nan
loss_decrease = nan
epoch = 71
loss = nan
loss_decrease = nan
epoch = 72
loss = nan
loss_decrease = nan
epoch = 73
loss = nan
loss_decrease = nan
epoch = 74
loss = nan
loss_decrease = nan
epoch = 75
loss = nan
loss_decrease = nan
epoch = 76
loss = nan
loss_decrease = nan
epoch = 77
loss = nan
loss_decrease = nan
epoch = 78
loss = nan
loss_decrease = nan
epoch = 79
loss = nan
loss_decrease = nan
epoch = 80
loss = nan
loss_decrease = nan
epoch = 81
loss = nan
loss_decrease = nan
epoch = 82
loss = nan
loss_decrease = nan
epoch = 83
loss = nan
loss_decrease = nan
epoch = 84
loss = nan
loss_decrease = nan
epoch = 85
loss = nan
loss_decrease = nan
epoch = 86
loss = nan
loss_decrease = nan
epoch = 87
loss = nan
loss_decrease = nan
epoch = 88
loss = nan
loss_decrease = nan
epoch = 89
loss = nan
loss_decrease = nan
epoch = 90
loss = nan
loss_decrease = nan
epoch = 91
loss = nan
loss_decrease = nan
epoch = 92
loss = nan
loss_decrease = nan
epoch = 93
loss = nan
loss_decrease = nan
epoch = 94
loss = nan
loss_decrease = nan
epoch = 95
loss = nan
loss_decrease = nan
epoch = 96
loss = nan
loss_decrease = nan
epoch = 97
loss = nan
loss_decrease = nan
epoch = 98
loss = nan
loss_decrease = nan
epoch = 99
loss = nan
loss_decrease = nan
epoch = 100
loss = nan
loss_decrease = nan
* Final training loss: nan
_ _ ____ ___ __ __
| \ | | ___ _ _| _ \ / _ \| \/ |
| \| |/ _ \ | | | |_) | | | | |\/| |
| |\ | __/ |_| | _ <| |_| | | | |
|_| \_|\___|\__,_|_| \_\ ___/|_| |_|
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.026430722517324104
loss_decrease = 1.0264307225173241
epoch = 2
loss = -0.02752720718041627
loss_decrease = 0.041485232285022544
epoch = 3
loss = -0.027594256336286982
loss_decrease = 0.002435741316991019
epoch = 4
loss = -0.027895953202603668
loss_decrease = 0.01093332114625421
epoch = 5
loss = -0.027944708509471453
loss_decrease = 0.0017477555440993176
epoch = 6
loss = -0.02794873681817133
loss_decrease = 0.00014415282587444038
epoch = 7
loss = -0.02794873681817133
loss_decrease = 0.0
epoch = 8
loss = -0.02794873681817133
loss_decrease = 0.0
epoch = 9
loss = -0.02794873681817133
loss_decrease = 0.0
epoch = 10
loss = -0.02794873681817133
loss_decrease = 0.0
epoch = 11
loss = -0.02794873681817133
loss_decrease = 0.0
* Final training loss: -2.7949e-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.3033075158984128
loss_decrease = 0.6966924841015871
epoch = 2
loss = -0.029974610323496527
loss_decrease = 1.098825807974821
epoch = 3
loss = -0.03042404820867362
loss_decrease = 0.014993952559402782
epoch = 4
loss = -0.030641226429513838
loss_decrease = 0.007138373544198632
epoch = 5
loss = -0.030652300341560308
loss_decrease = 0.0003614056399453862
epoch = 6
loss = -0.030652300341560308
loss_decrease = 0.0
epoch = 7
loss = -0.030652300341560308
loss_decrease = 0.0
epoch = 8
loss = -0.030652300341560308
loss_decrease = 0.0
epoch = 9
loss = -0.030652300341560308
loss_decrease = 0.0
epoch = 10
loss = -0.030652300341560308
loss_decrease = 0.0
* Final training loss: -3.0652e-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.636684577413208
loss_decrease = 0.36331542258679195
epoch = 2
loss = 0.31158453722248525
loss_decrease = 0.5106139707538934
epoch = 3
loss = -0.03016551257831368
loss_decrease = 1.0968132528244627
epoch = 4
loss = -0.03107532862201797
loss_decrease = 0.030160801721578163
epoch = 5
loss = -0.031124189370184466
loss_decrease = 0.001572332468654112
epoch = 6
loss = -0.031124189370184466
loss_decrease = 0.0
epoch = 7
loss = -0.031124189370184466
loss_decrease = 0.0
epoch = 8
loss = -0.031124189370184466
loss_decrease = 0.0
epoch = 9
loss = -0.031124189370184466
loss_decrease = 0.0
epoch = 10
loss = -0.031124189370184466
loss_decrease = 0.0
* Final training loss: -3.1124e-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.3435185706721908
loss_decrease = -0.3435185706721908
epoch = 2
loss = 0.6612229759474972
loss_decrease = 0.5078423250847413
epoch = 3
loss = 0.43341643737071767
loss_decrease = 0.34452302303976196
epoch = 4
loss = 0.31578354934626374
loss_decrease = 0.27140846050524386
epoch = 5
loss = -0.0282040433645704
loss_decrease = 1.089314479563481
epoch = 6
loss = -0.030485651005482554
loss_decrease = 0.08089647329709769
epoch = 7
loss = -0.031078544736673167
loss_decrease = 0.01944828834667122
epoch = 8
loss = -0.03135659992144453
loss_decrease = 0.008946853436263207
epoch = 9
loss = -0.03141785737013723
loss_decrease = 0.001953574330321531
epoch = 10
loss = -0.031418444964606405
loss_decrease = 1.87025633943155e-05
epoch = 11
loss = -0.031418444964606405
loss_decrease = 0.0
epoch = 12
loss = -0.031418444964606405
loss_decrease = 0.0
epoch = 13
loss = -0.031418444964606405
loss_decrease = 0.0
epoch = 14
loss = -0.031418444964606405
loss_decrease = 0.0
epoch = 15
loss = -0.031418444964606405
loss_decrease = 0.0
* Final training loss: -3.1418e-02
_ _ ____ ___ __ __
| \ | | ___ _ _| _ \ / _ \| \/ |
| \| |/ _ \ | | | |_) | | | | |\/| |
| |\ | __/ |_| | _ <| |_| | | | |
|_| \_|\___|\__,_|_| \_\ ___/|_| |_|
2024.09.18
************ MESH READING COMPLETE ************
* Dimension of the problem: 1D
* Elements type: 2-node bar
* Number of Dofs: 324
Gaussian_quad
mesh.NNodes = 324
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)
Correction
epoch = 1
loss = 10.449699030411479
loss_decrease = -9.449699030411479
Correction
epoch = 2
loss = 2.775509452462695
loss_decrease = 0.73439335961876
Correction
epoch = 3
loss = 1.4973347291427388
loss_decrease = 0.4605189588476589
Correction
epoch = 4
loss = 0.9969477118173787
loss_decrease = 0.3341851408280926
Correction
epoch = 5
loss = 0.7379935031537179
loss_decrease = 0.2597470314582518
Correction
epoch = 6
loss = 0.591980024667901
loss_decrease = 0.1978519836039851
epoch = 7
loss = 0.48275572974321074
loss_decrease = 0.1845067238306981
epoch = 8
loss = 0.3992822353860188
loss_decrease = 0.17291041662331685
epoch = 9
loss = 0.34841915431453485
loss_decrease = 0.12738628609988234
epoch = 10
loss = 0.31134558378224675
loss_decrease = 0.10640508730131408
Correction
epoch = 11
loss = 0.28428123120130816
loss_decrease = 0.08692704824060468
Correction
epoch = 12
loss = 0.07085407567778784
loss_decrease = 0.750760627501244
Correction
epoch = 13
loss = -0.022302529147844204
loss_decrease = 1.3147670608147648
epoch = 14
loss = -0.029496853185116037
loss_decrease = 0.32257884249720836
epoch = 15
loss = -0.030211545943087673
loss_decrease = 0.024229457748810527
epoch = 16
loss = -0.030620784143166366
loss_decrease = 0.013545755018614833
epoch = 17
loss = -0.03092947328499525
loss_decrease = 0.010081033208869439
epoch = 18
loss = -0.03112267589030039
loss_decrease = 0.006246553361090399
epoch = 19
loss = -0.031257205295940164
loss_decrease = 0.004322552665906859
epoch = 20
loss = -0.03135836373924317
loss_decrease = 0.003236323988189097
epoch = 21
loss = -0.031410216829703935
loss_decrease = 0.0016535649274288262
epoch = 22
loss = -0.03143242865019042
loss_decrease = 0.0007071527269904179
epoch = 23
loss = -0.03145062322361812
loss_decrease = 0.0005788472036375746
epoch = 24
loss = -0.03147600639123593
loss_decrease = 0.0008070799563281985
epoch = 25
loss = -0.03148802585952952
loss_decrease = 0.0003818612864728965
Correction
epoch = 26
loss = -0.03149009449988005
loss_decrease = 6.56960953906355e-05
epoch = 27
loss = -0.031491471581013224
loss_decrease = 4.373061291317066e-05
epoch = 28
loss = -0.031492137092688936
loss_decrease = 2.1133076426757188e-05
epoch = 29
loss = -0.03149240676949992
loss_decrease = 8.563306141868425e-06
epoch = 30
loss = -0.03149240906415443
loss_decrease = 7.28637390234333e-08
epoch = 31
loss = -0.03149240906415443
loss_decrease = 0.0
epoch = 32
loss = -0.03149240906415443
loss_decrease = 0.0
epoch = 33
loss = -0.03149240906415443
loss_decrease = 0.0
epoch = 34
loss = -0.03149240906415443
loss_decrease = 0.0
* Final training loss: -3.1492e-02
import matplotlib.pyplot as plt
import matplotlib
plt.rcParams['text.usetex'] = False
# Plot normalized displacement error
print("Fixed : ", loss_grad[0,:,0])
print("Fixed : ", loss_grad[0,:,1])
print("Fixed : ", loss_grad[0,:,2])
print()
print("Adapt : ", loss_u[1,:,0])
print("Adapt : ", loss_u[1,:,1])
print("Adapt : ", loss_u[1,:,2])
print()
fig = matplotlib.pyplot.gcf()
ax = plt.gca()
plt.plot(mesh_resolution, loss_u[0,:,0],'-', color = "orange", label = 'G.q.(3)')
plt.plot(mesh_resolution, loss_u[0,:,1],'-', color = "maroon", label = 'G.q.(4)')
plt.plot(mesh_resolution, loss_u[0,:,2],'-', color = "red", label = 'G.q.(5)')
plt.plot(mesh_resolution, loss_u[1,:,0],':', color = "orange", label = 'G.q.(3), r-adaptivity')
plt.plot(mesh_resolution, loss_u[1,:,1],':', color = "maroon", label = 'G.q.(4), r-adaptivity')
plt.plot(mesh_resolution, loss_u[1,:,2],':', color = "red", label = 'G.q.(5)., r-adaptivity')
ax.set_xscale('log')
ax.set_yscale('log')
ax.set_ylim([0.00008, 29])
plt.xlabel("Number of mesh nodes")
plt.ylabel("Normalized displacement error")
plt.legend(loc="lower left", frameon=False )
plt.show()
# Plot normalized strain error
fig = matplotlib.pyplot.gcf()
ax = plt.gca()
plt.plot(mesh_resolution, loss_grad[0,:,0],'-', color = "orange", label = 'G.q.(3)')
plt.plot(mesh_resolution, loss_grad[0,:,1],'-', color = "maroon", label = 'G.q.(4)')
plt.plot(mesh_resolution, loss_grad[0,:,2],'-', color = "red", label = 'G.q.(5)')
plt.plot(mesh_resolution, loss_grad[1,:,0],':', color = "orange", label = 'G.q.(3)., r-adaptivity')
plt.plot(mesh_resolution, loss_grad[1,:,1],':', color = "maroon", label = 'G.q.(4), r-adaptivity')
plt.plot(mesh_resolution, loss_grad[1,:,2],':', color = "red", label = 'G.q.(5), r-adaptivity')
ax.set_xscale('log')
ax.set_yscale('log')
ax.set_ylim([0.01, 23])
plt.xlabel("Number of mesh nodes")
plt.ylabel("Normalized strain error")
plt.legend(loc="lower left", frameon=False )
plt.show()
Fixed : [0.74538078 0.39509747 0.21741465 0.11137825 0.05548029 0.02732404]
Fixed : [0.744659 0.39509584 0.21741463 0.11137785 0.05548063 0.02732191]
Fixed : [0.74467163 0.39509585 0.21741463 0.11137784 0.05548108 0.02732794]
Adapt : [ nan 0.06747639 0.01315608 0.00487374 0.0013304 0.00062885]
Adapt : [ nan 0.05637289 0.01308851 0.0048737 0.00122884 0.00038636]
Adapt : [ nan 0.05694514 0.01308796 0.0048737 0.00127661 0.00169349]