-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
27 changed files
with
6,437 additions
and
125 deletions.
There are no files selected for viewing
Large diffs are not rendered by default.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,109 @@ | ||
''' | ||
myfempy Tutorial 02 | ||
Geração da malha por meio da opção legacy | ||
''' | ||
|
||
# Imports | ||
|
||
from myfempy import ModelGen | ||
from myfempy import Solver | ||
from myfempy import PostProcess | ||
from myfempy import postproc_plot | ||
from myfempy import preview_plot | ||
from math import pi | ||
|
||
import sys | ||
|
||
# Definição do material, geometria | ||
|
||
mat = { | ||
"NAME": "material", | ||
"VXX": 0.25, | ||
"EXX": 200E6, | ||
"MAT": 'isotropic', | ||
"DEF": 'axial' | ||
} | ||
|
||
|
||
geo = { | ||
"NAME": "geo", | ||
"SEC":"I", | ||
'DIM':{'b':100,'h':150,'t':5,'d':5}} | ||
|
||
# Linha (malha beam 2) 500 mm | ||
|
||
meshdata = {"LEGACY": {'lx': 400, 'mesh': 'line2', 'elem': 'beam21', 'nx': 2}, | ||
"PROPMAT": [mat], | ||
"PROPGEO": [geo], | ||
# "FORCES": [force], | ||
# "BOUNDCOND": [bondcond], | ||
# "QUADRATURE": {'meth': 'gaussian', 'npp': 4}, | ||
# "DOMAIN":'structural' | ||
} | ||
|
||
|
||
modelinfo = ModelGen.get_model(meshdata) | ||
|
||
previewset = {'RENDER': {'filename': 'tutorial_02a', 'show': True, 'scale': 1, 'savepng': True, 'lines': True, 'cs': True}, | ||
} | ||
|
||
preview_plot(previewset, modelinfo) | ||
|
||
|
||
sys.exit() | ||
# Definição do material, geometria | ||
|
||
mat = { | ||
"NAME": "material", | ||
"VXX": 0.25, | ||
"EXX": 200E6, | ||
"MAT": 'isotropic', | ||
"DEF": 'planestress' | ||
} | ||
|
||
geo = { | ||
"NAME": "geometria", | ||
"THICKN": 1.0 | ||
} | ||
|
||
|
||
# Retangulo estado plano (malha quad 4) 100 x 50 mm | ||
|
||
meshdata = {"LEGACY": {'lx': 100, 'ly': 50, 'mesh': 'quad4', 'elem': 'plane41', 'nx': 10, 'ny': 5}, | ||
"PROPMAT": [mat], | ||
"PROPGEO": [geo], | ||
# "FORCES": [force], | ||
# "BOUNDCOND": [bondcond], | ||
# "QUADRATURE": {'meth': 'gaussian', 'npp': 4}, | ||
# "DOMAIN":'structural' | ||
} | ||
|
||
|
||
modelinfo = ModelGen.get_model(meshdata) | ||
|
||
previewset = {'RENDER': {'filename': 'tutorial_02b', 'show': True, 'scale': 1, 'savepng': True, 'lines': True}, | ||
} | ||
|
||
preview_plot(previewset, modelinfo) | ||
|
||
|
||
# Retangulo estado plano (malha tria 3) 100 x 50 mm | ||
|
||
meshdata = {"LEGACY": {'lx': 100, 'ly': 50, 'mesh': 'tria3', 'elem': 'plane31', 'nx': 10, 'ny': 5}, | ||
"PROPMAT": [mat], | ||
"PROPGEO": [geo], | ||
# "FORCES": [force], | ||
# "BOUNDCOND": [bondcond], | ||
# "QUADRATURE": {'meth': 'gaussian', 'npp': 4}, | ||
# "DOMAIN":'structural' | ||
} | ||
|
||
|
||
modelinfo = ModelGen.get_model(meshdata) | ||
|
||
previewset = {'RENDER': {'filename': 'tutorial_02c', 'show': True, 'scale': 1, 'savepng': True, 'lines': True}, | ||
} | ||
|
||
preview_plot(previewset, modelinfo) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,221 @@ | ||
''' | ||
myfempy Tutorial 03 | ||
Geração da malha com gmsh | ||
Necessario instalação prévia do gmsh (não nativo do myfempy) | ||
''' | ||
|
||
# Imports | ||
|
||
from myfempy import ModelGen | ||
from myfempy import Solver | ||
from myfempy import PostProcess | ||
from myfempy import postproc_plot | ||
from myfempy import preview_plot | ||
|
||
# Definição do material, geometria | ||
|
||
mat = { | ||
"NAME": "material", | ||
"VXX": 0.25, | ||
"EXX": 200E6, | ||
"MAT": 'isotropic', | ||
"DEF": 'planestress' | ||
} | ||
|
||
geo = { | ||
"NAME": "geometria", | ||
"THICKN": 1.0 | ||
} | ||
|
||
# ---------------------------------------------------------- | ||
|
||
# Placa L estado plano (malha quad 4) 100 x 100 mm | ||
|
||
# f1 = { | ||
# 'DEF': 'forceedge', | ||
# 'DOF': 'fy', | ||
# 'DIR': 'edge', | ||
# 'TAG': 3, | ||
# 'VAL': [-1000.0], | ||
# } | ||
|
||
# bc1 = { | ||
# 'DEF': 'fixed', | ||
# 'DOF': 'all', | ||
# 'DIR': 'edge', | ||
# 'TAG': 5, | ||
# } | ||
|
||
|
||
# points = [[0, 0, 0], | ||
# [100, 0, 0], | ||
# [100, 50, 0], | ||
# [50, 50, 0], | ||
# [50, 100, 0], | ||
# [0, 100, 0], | ||
# ] | ||
|
||
# lines = [[1, 2], | ||
# [2, 3], | ||
# [3, 4], | ||
# [4, 5], | ||
# [5, 6], | ||
# [6, 1], | ||
# ] | ||
|
||
# plane = [[1, 2, 3, 4, 5, 6]] | ||
|
||
# meshdata = {"GMSH": {'filename': 'tutorial_03a', | ||
# 'pointlist': points, | ||
# 'linelist': lines, | ||
# 'planelist': plane, | ||
# 'meshconfig': { | ||
# 'mesh': 'tria3', #tria3 | ||
# 'elem': 'plane31', #plane31 | ||
# 'sizeelement': 10, | ||
# 'meshmap': {'on': True, | ||
# 'edge': 'all', | ||
# # "numbernodes": 10, | ||
# } | ||
# } | ||
# }, | ||
# "PROPMAT": [mat], | ||
# "PROPGEO": [geo], | ||
# "FORCES": [f1], | ||
# "BOUNDCOND": [bc1], | ||
# } | ||
|
||
# modelinfo = ModelGen.get_model(meshdata) | ||
|
||
# previewset = {'RENDER': {'filename': 'tutorial_03a', | ||
# 'show': True, | ||
# 'scale': 5, | ||
# 'savepng': True, | ||
# 'lines': True, | ||
# 'plottags': {'point': True, | ||
# 'edge': True}}, | ||
# } | ||
|
||
# preview_plot(previewset, modelinfo) | ||
|
||
|
||
# -------------------------------------------------- | ||
|
||
# # Placa H estado plano (malha quad 4) 100 x 100 mm | ||
|
||
f1 = { | ||
'DEF': 'forceedge', | ||
'DOF': 'fx', | ||
'DIR': 'edge', | ||
'TAG': 8, | ||
'VAL': [100.0], | ||
} | ||
|
||
f2 = { | ||
'DEF': 'forceedge', | ||
'DOF': 'fx', | ||
'DIR': 'edge', | ||
'TAG': 10, | ||
'VAL': [-100.0], | ||
} | ||
|
||
f3 = { | ||
'DEF': 'forceedge', | ||
'DOF': 'fx', | ||
'DIR': 'edge', | ||
'TAG': 4, | ||
'VAL': [100.0], | ||
} | ||
|
||
f4 = { | ||
'DEF': 'forceedge', | ||
'DOF': 'fx', | ||
'DIR': 'edge', | ||
'TAG': 2, | ||
'VAL': [-100.0], | ||
} | ||
|
||
bc1 = { | ||
'DEF': 'fixed', | ||
'DOF': 'uy', | ||
'DIR': 'edge', | ||
'TAG': 3, | ||
} | ||
|
||
bc2 = { | ||
'DEF': 'fixed', | ||
'DOF': 'uy', | ||
'DIR': 'edge', | ||
'TAG': 9, | ||
} | ||
|
||
points = [ | ||
[0, 0, 0], | ||
[20, 0, 0], | ||
[20, 30, 0], | ||
[80, 30, 0], | ||
[80, 0, 0], | ||
[100, 0, 0], | ||
[100, 100, 0], | ||
[80, 100, 0], | ||
[80, 70, 0], | ||
[20, 70, 0], | ||
[20, 100, 0], | ||
[0, 100, 0], | ||
] | ||
|
||
lines = [[1, 2], | ||
[2, 3], | ||
[3, 4], | ||
[4, 5], | ||
[5, 6], | ||
[6, 7], | ||
[7, 8], | ||
[8, 9], | ||
[9, 10], | ||
[10, 11], | ||
[11, 12], | ||
[12, 1], | ||
] | ||
|
||
plane = [[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]] | ||
|
||
meshdata = {"GMSH": {'filename': 'tutorial_03b', | ||
'pointlist': points, | ||
'linelist': lines, | ||
'planelist': plane, | ||
'meshconfig': { | ||
'mesh': 'quad4', #tria3 | ||
'elem': 'plane41', #plane31 | ||
'sizeelement': 5, | ||
'meshmap': {'on': True, | ||
'edge': 'all', | ||
# "numbernodes": 10, | ||
} | ||
} | ||
}, | ||
"PROPMAT": [mat], | ||
"PROPGEO": [geo], | ||
"FORCES": [f1, f2, f3, f4], | ||
"BOUNDCOND": [bc1, bc2], | ||
} | ||
|
||
modelinfo = ModelGen.get_model(meshdata) | ||
|
||
previewset = {'RENDER': {'filename': 'tutorial_03b', | ||
'show': True, | ||
'scale': 4, | ||
'savepng': True, | ||
'lines': True, | ||
'plottags': { | ||
# 'point': True, | ||
'edge': True, | ||
# 'surf': True | ||
} | ||
}, | ||
} | ||
|
||
preview_plot(previewset, modelinfo) |
Oops, something went wrong.