From 35e60b9983a15d01cbc24daaa58204a866861516 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20D=C3=B6rfler?= Date: Sat, 27 May 2017 23:53:33 +0200 Subject: [PATCH] Add Pyr5 elements, including med support and tests --- geometry/3d_pyr/Pyr5.hdf | Bin 0 -> 77451 bytes geometry/3d_pyr/Pyr5.med | Bin 0 -> 12937 bytes geometry/3d_pyr/Pyr5.py | 73 ++++++++++ src/JuliaFEM.jl | 1 + src/elements_lagrange.jl | 39 +++++- src/integrate.jl | 25 +++- src/preprocess_aster_reader.jl | 5 +- src/problems_elasticity.jl | 2 +- src/problems_heat.jl | 2 +- test/test_elasticity_med_pyr5_point_load.jl | 46 +++++++ test/test_elasticity_pyr5_point_load.jl | 47 +++++++ verification/2017-05-27-pyramids/Pyr5.astk | 128 ++++++++++++++++++ verification/2017-05-27-pyramids/Pyr5.comm | 54 ++++++++ verification/2017-05-27-pyramids/Pyr5.med | Bin 0 -> 12937 bytes verification/2017-05-27-pyramids/Pyr5.resu | 67 +++++++++ verification/2017-05-27-pyramids/Pyr5.rmed | Bin 0 -> 21442 bytes .../2017-05-27-pyramids/Pyr5_displacement.txt | 8 ++ 17 files changed, 490 insertions(+), 7 deletions(-) create mode 100644 geometry/3d_pyr/Pyr5.hdf create mode 100644 geometry/3d_pyr/Pyr5.med create mode 100644 geometry/3d_pyr/Pyr5.py create mode 100644 test/test_elasticity_med_pyr5_point_load.jl create mode 100644 test/test_elasticity_pyr5_point_load.jl create mode 100644 verification/2017-05-27-pyramids/Pyr5.astk create mode 100644 verification/2017-05-27-pyramids/Pyr5.comm create mode 100644 verification/2017-05-27-pyramids/Pyr5.med create mode 100644 verification/2017-05-27-pyramids/Pyr5.resu create mode 100644 verification/2017-05-27-pyramids/Pyr5.rmed create mode 100644 verification/2017-05-27-pyramids/Pyr5_displacement.txt diff --git a/geometry/3d_pyr/Pyr5.hdf b/geometry/3d_pyr/Pyr5.hdf new file mode 100644 index 0000000000000000000000000000000000000000..1205602bdc4234e1c8eba11a1f41bff590ae415d GIT binary patch literal 77451 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 RQJU4cm37>`lCZ?|{{y_gwch{$ literal 0 HcmV?d00001 diff --git a/geometry/3d_pyr/Pyr5.med b/geometry/3d_pyr/Pyr5.med new file mode 100644 index 0000000000000000000000000000000000000000..5d1c059e14d618bc3d598c6d1f8c6c8555e48c93 GIT binary patch literal 12937 zcmeHNeQXp(6rb(2*U}bRN(<78wtTi0nidK)5-4qNuf1}&d%bIcR^x#{O%((w)$&JE z!6@Pf{854=fC<453}}ExNhG0a<3}P=z{C(tL?LR3d>M>V1?#+>H`m?Uy}h$s6WZJ) zcW-a@&6_vxrB>Dh&Kvb{`y(2vUy^%_jc#it3RzV zX~4q=a+(-J1VXHtgpw48WS70ZN>LI$WlquCjY6$-q(I_D$?J2Km9fR45p`b9PlOE z%UlkpQ}i{69yyVtA+q3t`bpx(%~Oq4IuJ9FvRU}Ufg?*G#i#QFbZS3BBvBQ7Gv@f< z>9Pqc0xOj!#44VlVp9~3xxUAjH?OK`S-!HHKbLux(63?0tIfAs&Kobm^a&Wo(_5-@ z>7KcNQv+aKQR$J>N1%Ef;@Hn|*~c9NPzmKqvg=)x8;+9Y9-WeknYAiST)QbwQAzhu zCW4SoA0q;7xEM|??;9*!o?j=T^&tIUvW4Wcr0iFQOKRS|DnH zs0D_N1qM*Ag;SgvRFLrG>8~Ick3kb^%e8GsUYa)mmHI2l%P2P-CBv&Am)|L|4q62{ z2A4lXE69Jhdu3yH;Wmnw6V&&H4YyG_v`~R+L}{a7lQh%EE5EP!9?r`dB1$hE{p=az zB@D(k3QDj3BzQzQBcWZ|B$#|;g>L{V^(VnKlpDDuSUt+RVbGFb#n4WI1$&;4H+B~$ z0gqS144|DX3Bqxf0jw&*=kqBBNZ&mAR-UnY8->(VLN3yiK4^uEknlBLTC3ZogBdhu z{L)fKXeRgKFeJGbhapL_1(7rZwq3C#9X4QY$}~E=R5@xUWFaX|BE@}la|H>^+Kn#l zB4qt}gl?r3mHMd}M7}-y#5Lm}Y6S;er3X#Wv<|?GuaM<5JQ+3)B9KsUKa;S95spF> zYd^$0^wo`~CFSosDOXf2g3*T`WViVIeykB?3=Kk7zp;!R^O+pA(AO_Ym9rPLCgIC%!l{{UN{5kczT5N59SC3J*O(j(>Re|gFsGan znlen#Y|a$M#?b_;K=#_Y)-&rzM4K?eDQFUp3ULW6LOaBW3Xtbb#I689zInFb*HGEZhj3~ZpNh}UNwqN|m1i~8g7#mN24GL2TYebYb4kv)H z%~P3#LyV{(tY8{;q51I_X)D=X151F>c@ME(K0iK2YU+yjBe>Ese8Ga#kqn3ZkqHN= zr2vDHphmMZO%+9P74R}s^LFVwDo4)oMHlb_4v;%4mp94SC5cn98LgQ zE%|JsLyV{(FK0S-q51I_DQZ~vO2{R+>u2voIDT%&mlr~X1K)peYL+U;QJ=fqqump! za=YWb*1?0kBDzKmWCSZ@1DK20I>N zjgWXjtGxO2xDr~+N8{}FDqA_>{~%U+n@=@u@&6rL^tyFh8u+7#pTXwP|Km%;P+PB; z0P}zZ "9 node quadratic quadrangle element", "Tet4" => "4 node linear tetrahedral element", "Tet10" => "10 node quadratic tetrahedral element", + "Pyr5" => "5 node linear pyramid element", "Wedge6" => "6 node linear prismatic element (wedge)", "Wedge15" => "15 node quadratic prismatic element (wedge)", "Hex8" => "8 node linear hexahedral element", @@ -31,6 +32,7 @@ global const ELEMENT_SIZES = Dict( "Quad9" => (2, 9), "Tet4" => (3, 4), "Tet10" => (3, 10), + "Pyr5" => (3,5), "Wedge6" => (3, 6), "Wedge15" => (3, 15), "Hex8" => (3, 8), @@ -355,6 +357,39 @@ end # +type Pyr5 <: AbstractElement +end + + +function get_reference_coordinates(::Type{Pyr5}) + Vector{Float64}[ + [-1.0,-1.0,-1.0], # N1 + [ 1.0,-1.0,-1.0], # N2 + [ 1.0, 1.0,-1.0], # N3 + [-1.0, 1.0,-1.0], # N4 + [ 0.0, 0.0, 1.0]] # N5 +end + +function get_interpolation_polynomial(::Type{Pyr5}, xi) + [ + 1.0/8.0*(1.0-1.0*xi[1])*(1.0-1.0*xi[2])*(1.0-1.0*xi[3]) + 1.0/8.0*(1.0+1.0*xi[1])*(1.0-1.0*xi[2])*(1.0-1.0*xi[3]) + 1.0/8.0*(1.0+1.0*xi[1])*(1.0+1.0*xi[2])*(1.0-1.0*xi[3]) + 1.0/8.0*(1.0-1.0*xi[1])*(1.0+1.0*xi[2])*(1.0-1.0*xi[3]) + 1.0/2.0*(1.0+xi[3]) + ]' +end + +function get_interpolation_polynomial(::Type{Pyr5}, xi, ::Type{Val{:partial_derivatives}}) + [ + -0.125*(1.0-xi[2])*(1.0-xi[3]) 0.125*(1.0-xi[2])*(1.0-xi[3]) 0.125*(1.0+xi[2])*(1.0-xi[3]) -0.125*(1.0+xi[2])*(1.0-xi[3]) 0.0 + -0.125*(1.0-xi[1])*(1.0-xi[3]) -0.125*(1.0+xi[1])*(1.0-xi[3]) 0.125*(1.0+xi[1])*(1.0-xi[3]) 0.125*(1.0-xi[1])*(1.0-xi[3]) 0.0 + -0.125*(1.0-xi[1])*(1.0-xi[2]) -0.125*(1.0+xi[1])*(1.0-xi[2]) -0.125*(1.0+xi[1])*(1.0+xi[2]) -0.125*(1.0-xi[1])*(1.0+xi[2]) 0.5 + ] +end + +# + type Wedge6 <: AbstractElement end @@ -576,6 +611,7 @@ end @create_basis Quad9 @create_basis Tet4 @create_basis Tet10 +@create_basis Pyr5 @create_basis Wedge6 @create_basis Wedge15 @create_basis Hex8 @@ -583,7 +619,8 @@ end @create_basis Hex27 function inside(::Union{Type{Seg2}, Type{Seg3}, Type{Quad4}, Type{Quad8}, - Type{Quad9}, Type{Hex8}, Type{Hex20}, Type{Hex27}}, xi) + Type{Quad9}, Type{Pyr5}, Type{Hex8}, Type{Hex20}, + Type{Hex27}}, xi) return all(-1.0 .<= xi .<= 1.0) end diff --git a/src/integrate.jl b/src/integrate.jl index 14219f0..86dd72c 100644 --- a/src/integrate.jl +++ b/src/integrate.jl @@ -271,6 +271,27 @@ function get_integration_points(element::TetrahedralElement, ::Type{Val{4}}) return zip(weights, points) end +# http://www.colorado.edu/engineering/CAS/courses.d/AFEM.d/AFEM.Ch12.d/AFEM.Ch12.pdf + +typealias PyramidalElement Union{Pyr5,} + +function get_integration_points(element::PyramidalElement, ::Type{Val{2}}) + g1 = 0.5842373946721771876874344 + g2 = -2.0/3.0 + g3 = 2.0/5.0 + w1 = 81.0/100.0 + w2 = 125.0/27.0 + weights = [w1, w1, w1, w1, w2] + points = Vector{Float64}[ + [-g1, -g1, g2], + [ g1, -g1, g2], + [ g1, g1, g2], + [-g1, g1, g2], + [0.0, 0.0, g3], + ] + return zip(weights, points) +end + typealias PrismaticElement Union{Wedge6, Wedge15} function get_integration_points(element::PrismaticElement, ::Type{Val{2}}) @@ -408,14 +429,14 @@ function get_integration_points(element::PrismaticElement, ::Type{Val{3}}) end function get_integration_points(element::Union{TriangularElement, - TetrahedralElement, PrismaticElement}, order::Int64) + TetrahedralElement, PyramidalElement, PrismaticElement}, order::Int64) return get_integration_points(element, Val{order}) end ### default number of integration points for each element ### 2 for linear elements, 3 for quadratic -typealias LinearElement Union{Seg2, Tri3, Quad4, Tet4, Wedge6, Hex8} +typealias LinearElement Union{Seg2, Tri3, Quad4, Tet4, Pyr5, Wedge6, Hex8} typealias QuadraticElement Union{Seg3, Tri6, Tri7, Tet10, Quad8, Quad9, Wedge15, Hex20, Hex27} diff --git a/src/preprocess_aster_reader.jl b/src/preprocess_aster_reader.jl index 07c324f..143a485 100644 --- a/src/preprocess_aster_reader.jl +++ b/src/preprocess_aster_reader.jl @@ -176,6 +176,7 @@ end global const med_connectivity = Dict{Symbol, Vector{Int}}( :Tet4 => [4,3,1,2], :Tet10 => [4,3,1,2,10,7,8,9,6,5], + :Pyr5 => [1,4,3,2,5], :Wedge6 => [4,5,6,1,2,3], :Hex8 => [4,8,7,3,1,5,6,2], :Hex20 => [4,8,7,3,1,5,6,2,20,15,19,11,12,16,14,10,17,13,18,9], @@ -209,8 +210,8 @@ global const mapping = Dict( :H20 => :Hex20, :H27 => :Hex27, - :PY5 => :Pyramid5, - :P13 => :Pyramid13, + :PY5 => :Pyr5, + :P13 => :Pyr13, ) diff --git a/src/problems_elasticity.jl b/src/problems_elasticity.jl index da28467..26eb708 100644 --- a/src/problems_elasticity.jl +++ b/src/problems_elasticity.jl @@ -69,7 +69,7 @@ end typealias Elasticity2DSurfaceElements Union{Poi1, Seg2, Seg3} typealias Elasticity2DVolumeElements Union{Tri3, Tri6, Quad4, Quad8, Quad9} typealias Elasticity3DSurfaceElements Union{Poi1, Tri3, Tri6, Quad4, Quad8, Quad9} -typealias Elasticity3DVolumeElements Union{Tet4, Wedge6, Wedge15, Hex8, Tet10, Hex20, Hex27} +typealias Elasticity3DVolumeElements Union{Tet4, Pyr5, Wedge6, Wedge15, Hex8, Tet10, Hex20, Hex27} function initialize_internal_params!(params, ip, type_) #::Type{Val{:type_2d}}) param_keys = keys(params) diff --git a/src/problems_heat.jl b/src/problems_heat.jl index c7956b0..0874020 100644 --- a/src/problems_heat.jl +++ b/src/problems_heat.jl @@ -67,7 +67,7 @@ function assemble!{E}(assembly::Assembly, problem::Problem{Heat}, element::Eleme info("Unknown element type $E for 3d heat problem!") end -typealias Heat3DVolumeElements Union{Tet4, Tet10, Hex8, Hex20, Hex27} +typealias Heat3DVolumeElements Union{Tet4, Tet10, Pyr5, Hex8, Hex20, Hex27} typealias Heat3DSurfaceElements Union{Tri3, Tri6, Quad4, Quad8, Quad9} function assemble!{E<:Heat3DVolumeElements}(assembly::Assembly, problem::Problem{Heat}, element::Element{E}, time, ::Type{Val{Symbol("3D")}}) diff --git a/test/test_elasticity_med_pyr5_point_load.jl b/test/test_elasticity_med_pyr5_point_load.jl new file mode 100644 index 0000000..8cf3ecc --- /dev/null +++ b/test/test_elasticity_med_pyr5_point_load.jl @@ -0,0 +1,46 @@ +# This file is a part of JuliaFEM. +# License is MIT: see https://github.com/JuliaFEM/JuliaFEM.jl/blob/master/LICENSE.md + +using JuliaFEM +using JuliaFEM.Preprocess +using JuliaFEM.Testing + +@testset "test Pyr5 elasticity with point load" begin + fn = Pkg.dir("JuliaFEM") * "/geometry/3d_pyr/Pyr5.med" + mesh = aster_read_mesh(fn) + element_sets = join(keys(mesh.element_sets), ", ") + info("element sets: $element_sets") + + element1 = create_elements(mesh,"Pyr5") + baseQuad = create_elements(mesh,"baseQuad") + tipPoint = Element(Poi1, collect(mesh.node_sets[:tipPoint])) + + update!([element1,baseQuad,tipPoint], "geometry", mesh.nodes) + update!([element1], "youngs modulus", 288.0) + update!([element1], "poissons ratio", 1/3) + + update!([tipPoint], "displacement traction force 1", 5.0) + update!([tipPoint], "displacement traction force 2", -7.0) + update!([tipPoint], "displacement traction force 3", 3.0) + + elasticity_problem = Problem(Elasticity, "solve continuum block", 3) + elasticity_problem.properties.finite_strain = false + push!(elasticity_problem, element1) + push!(elasticity_problem, tipPoint) + + baseQuad[1]["displacement 1"] = 0.0 + baseQuad[1]["displacement 2"] = 0.0 + baseQuad[1]["displacement 3"] = 0.0 + boundary_problem = Problem(Dirichlet, "Boundary conditions", 3, "displacement") + push!(boundary_problem, baseQuad) + + solver = LinearSolver(elasticity_problem, boundary_problem) + solver() + + disp = element1[1]("displacement", [0.0, 0.0, 1.0], 0.0) + info("########################################################") + info("displacement at tip: $disp") + # Code_Aster Result in verification/2017-05-27-pyramids/Pyr5_displacement.txt + u_expected = [6.9444444444427100E-02,-9.7222222222197952E-02,1.0416666666679683E-02] + @test isapprox(disp, u_expected) +end diff --git a/test/test_elasticity_pyr5_point_load.jl b/test/test_elasticity_pyr5_point_load.jl new file mode 100644 index 0000000..3ac86dd --- /dev/null +++ b/test/test_elasticity_pyr5_point_load.jl @@ -0,0 +1,47 @@ +# This file is a part of JuliaFEM. +# License is MIT: see https://github.com/JuliaFEM/JuliaFEM.jl/blob/master/LICENSE.md + +using JuliaFEM +using JuliaFEM.Preprocess +using JuliaFEM.Testing + +@testset "test Pyr5 elasticity with point load" begin + nodes = Dict{Int64, Node}( + 1 => [-1.0,-1.0,-1.0], + 2 => [ 1.0,-1.0,-1.0], + 3 => [ 1.0, 1.0,-1.0], + 4 => [-1.0, 1.0,-1.0], + 5 => [ 0.0, 0.0, 1.0]) + + element1 = Element(Pyr5, [1, 2, 3, 4, 5]) + baseQuad = Element(Quad4, [1, 2, 3, 4]) + tipPoint = Element(Poi1, [5,]) + + update!([element1,baseQuad,tipPoint], "geometry", nodes) + update!([element1], "youngs modulus", 288.0) + update!([element1], "poissons ratio", 1/3) + + update!([tipPoint], "displacement traction force 1", 5.0) + update!([tipPoint], "displacement traction force 2", -7.0) + update!([tipPoint], "displacement traction force 3", 3.0) + + elasticity_problem = Problem(Elasticity, "solve continuum block", 3) + elasticity_problem.properties.finite_strain = false + push!(elasticity_problem, element1, baseQuad, tipPoint) + + baseQuad["displacement 1"] = 0.0 + baseQuad["displacement 2"] = 0.0 + baseQuad["displacement 3"] = 0.0 + boundary_problem = Problem(Dirichlet, "Boundary conditions", 3, "displacement") + push!(boundary_problem, baseQuad) + + solver = LinearSolver(elasticity_problem, boundary_problem) + solver() + + disp = element1("displacement", [0.0, 0.0, 1.0], 0.0) + info("########################################################") + info("displacement at tip: $disp") + # Code_Aster Result in verification/2017-05-27-pyramids/Pyr5_displacement.txt + u_expected = [6.9444444444427100E-02,-9.7222222222197952E-02,1.0416666666679683E-02] + @test isapprox(disp, u_expected) +end diff --git a/verification/2017-05-27-pyramids/Pyr5.astk b/verification/2017-05-27-pyramids/Pyr5.astk new file mode 100644 index 0000000..443f333 --- /dev/null +++ b/verification/2017-05-27-pyramids/Pyr5.astk @@ -0,0 +1,128 @@ +etude,fich,3,FR F +opt_val,rep_dex _VIDE +etude,fich,2,type mess +etude,fich,3,UL 8 +option,ORBInitRef 0 +etude,fich,4,donnee 0 +option,nbmaxnook 1 +etude,fich,2,resultat 1 +nom_fich_export Pyr5.export +option,rep_dex 0 +etude,fich,4,compress 0 +etude oui +debug 0 +opt_val,cpresok RESNOOK +etude,fich,3,donnee 0 +etude,fich,4,serv Local +serv_fich_export -1 +surcharge,nbfic 0 +option,rep_outils 0 +etude,fich,3,resultat 1 +option,cpresok 1 +etude,fich,5,compress 0 +etude,fich,1,serv Local +etude,fich,1,FR F +memoire 512.0 +etude,fich,1,UL 20 +onglet_actif etude +asquit non +etude,fich,2,donnee 0 +option,classe 1 +etude,fich,4,type dat +opt_val,exectool _VIDE +etude,fich,4,resultat 1 +opt_val,mpi_nbcpu 1 +etude,fich,1,donnee 1 +rex non +etude,fich,1,nom Pyr5.med +etude,fich,1,type mmed +suivi_interactif 0 +pre_eda non +etude,fich,4,FR F +option,multiple 1 +opt_val,only_nook _VIDE +etude,fich,3,nom Pyr5.resu +etude,fich,4,UL 29 +option,mpi_nbcpu 1 +serv_tests -1 +etude,fich,5,nom Pyr5.rmed +make_etude run +option,depart 1 +option,only_nook 1 +opt_val,ORBInitRef _VIDE +nom_profil Pyr5.astk +args _VIDE +etude,fich,5,resultat 1 +etude,fich,0,donnee 1 +etude,fich,3,serv Local +etude,fich,0,compress 0 +option,corefilesize 1 +opt_val,distrib _VIDE +asdeno non +serv_surcharge -1 +serv_sources -1 +surcharge non +etude,fich,0,serv Local +M_1 oui +option,distrib 1 +serv_etude -1 +asdenot non +M_2 non +etude,fich,2,FR F +opt_val,rep_outils _VIDE +M_3 non +etude,fich,2,UL 6 +consult non +M_4 non +asno non +etude,fich,1,compress 0 +etude,fich,3,type resu +opt_val,ncpus 1 +serveur pde +opt_val,classe _VIDE +opt_val,dbgjeveux _VIDE +option,ncpus 1 +etude,fich,0,type comm +opt_val,facmtps 1 +args_fixe _VIDE +etude,fich,0,resultat 0 +opt_val,rep_mat _VIDE +special _VIDE +tests,nbfic 0 +temps 600 +option,dbgjeveux 0 +etude,fich,5,FR F +etude,fich,5,serv Local +asrest non +batch 0 +etude,fich,2,compress 0 +etude,fich,5,UL 80 +option,facmtps 1 +serv_profil -1 +etude,fich,0,FR F +opt_val,multiple _VIDE +opt_val,after_job _VIDE +option,rep_mat 0 +etude,fich,0,UL 1 +etude,fich,0,nom Pyr5.comm +etude,fich,2,serv Local +option,exectool 1 +asverif non +etude,fich,2,nom Pyr5.mess +option,after_job 1 +opt_val,depart _VIDE +opt_val,mpi_nbnoeud 1 +etude,fich,1,resultat 0 +sources,nbfic 0 +etude,fich,5,donnee 0 +etude,fich,4,nom Pyr5_displacement.txt +tests non +noeud pde +etude,fich,3,compress 0 +etude,fich,5,type rmed +option,mpi_nbnoeud 1 +opt_val,corefilesize unlimited +etude,nbfic 6 +agla non +opt_val,nbmaxnook 5 +version testing diff --git a/verification/2017-05-27-pyramids/Pyr5.comm b/verification/2017-05-27-pyramids/Pyr5.comm new file mode 100644 index 0000000..b01ce9d --- /dev/null +++ b/verification/2017-05-27-pyramids/Pyr5.comm @@ -0,0 +1,54 @@ + +DEBUT(); + +MA=DEFI_MATERIAU(ELAS=_F(E=288.0, + NU=0.333333333333,),); + +MAIL=LIRE_MAILLAGE(FORMAT='MED',); + +MODE=AFFE_MODELE(MAILLAGE=MAIL, + AFFE=_F(TOUT='OUI', + PHENOMENE='MECANIQUE', + MODELISATION='3D',),); + +MATE=AFFE_MATERIAU(MAILLAGE=MAIL, + AFFE=_F(TOUT='OUI', + MATER=MA,),); + +CHAR=AFFE_CHAR_MECA(MODELE=MODE, + DDL_IMPO=_F(GROUP_MA='baseQuad', + DX=0.0, + DY=0.0, + DZ=0.0,), + FORCE_NODALE=_F(GROUP_NO='tipPoint', + FX=5.0, + FY=-7.0, + FZ=3.0,),); + +RESU=MECA_STATIQUE(MODELE=MODE, + CHAM_MATER=MATE, + EXCIT=_F(CHARGE=CHAR,),); + +RESU=CALC_CHAMP(reuse =RESU, + RESULTAT=RESU, + CONTRAINTE=('SIGM_ELNO','SIGM_NOEU',), + CRITERES=('SIEQ_ELNO','SIEQ_NOEU',),); + +TABLE1=CREA_TABLE(RESU=_F(RESULTAT=RESU, + NOM_CHAM='DEPL', + NOM_CMP=('DX','DY','DZ',), + GROUP_NO='tipPoint',),); + +IMPR_TABLE(TABLE=TABLE1, + UNITE=29, + FORMAT_R='E16.16', + NOM_PARA=('DX','DY','DZ',), + TITRE='Displacement of Node 5',); + +IMPR_RESU(FORMAT='MED', + UNITE=80, + RESU=_F(RESULTAT=RESU, + NOM_CHAM=('SIGM_NOEU','SIEQ_NOEU','DEPL',),),); + +FIN(); +#CHECKSUM:6d5681cc411c12890d7eabc8a131b2cc -:FIN CHECKSUM \ No newline at end of file diff --git a/verification/2017-05-27-pyramids/Pyr5.med b/verification/2017-05-27-pyramids/Pyr5.med new file mode 100644 index 0000000000000000000000000000000000000000..5d1c059e14d618bc3d598c6d1f8c6c8555e48c93 GIT binary patch literal 12937 zcmeHNeQXp(6rb(2*U}bRN(<78wtTi0nidK)5-4qNuf1}&d%bIcR^x#{O%((w)$&JE z!6@Pf{854=fC<453}}ExNhG0a<3}P=z{C(tL?LR3d>M>V1?#+>H`m?Uy}h$s6WZJ) zcW-a@&6_vxrB>Dh&Kvb{`y(2vUy^%_jc#it3RzV zX~4q=a+(-J1VXHtgpw48WS70ZN>LI$WlquCjY6$-q(I_D$?J2Km9fR45p`b9PlOE z%UlkpQ}i{69yyVtA+q3t`bpx(%~Oq4IuJ9FvRU}Ufg?*G#i#QFbZS3BBvBQ7Gv@f< z>9Pqc0xOj!#44VlVp9~3xxUAjH?OK`S-!HHKbLux(63?0tIfAs&Kobm^a&Wo(_5-@ z>7KcNQv+aKQR$J>N1%Ef;@Hn|*~c9NPzmKqvg=)x8;+9Y9-WeknYAiST)QbwQAzhu zCW4SoA0q;7xEM|??;9*!o?j=T^&tIUvW4Wcr0iFQOKRS|DnH zs0D_N1qM*Ag;SgvRFLrG>8~Ick3kb^%e8GsUYa)mmHI2l%P2P-CBv&Am)|L|4q62{ z2A4lXE69Jhdu3yH;Wmnw6V&&H4YyG_v`~R+L}{a7lQh%EE5EP!9?r`dB1$hE{p=az zB@D(k3QDj3BzQzQBcWZ|B$#|;g>L{V^(VnKlpDDuSUt+RVbGFb#n4WI1$&;4H+B~$ z0gqS144|DX3Bqxf0jw&*=kqBBNZ&mAR-UnY8->(VLN3yiK4^uEknlBLTC3ZogBdhu z{L)fKXeRgKFeJGbhapL_1(7rZwq3C#9X4QY$}~E=R5@xUWFaX|BE@}la|H>^+Kn#l zB4qt}gl?r3mHMd}M7}-y#5Lm}Y6S;er3X#Wv<|?GuaM<5JQ+3)B9KsUKa;S95spF> zYd^$0^wo`~CFSosDOXf2g3*T`WViVIeykB?3=Kk7zp;!R^O+pA(AO_Ym9rPLCgIC%!l{{UN{5kczT5N59SC3J*O(j(>Re|gFsGan znlen#Y|a$M#?b_;K=#_Y)-&rzM4K?eDQFUp3ULW6LOaBW3Xtbb#I689zInFb*HGEZhj3~ZpNh}UNwqN|m1i~8g7#mN24GL2TYebYb4kv)H z%~P3#LyV{(tY8{;q51I_X)D=X151F>c@ME(K0iK2YU+yjBe>Ese8Ga#kqn3ZkqHN= zr2vDHphmMZO%+9P74R}s^LFVwDo4)oMHlb_4v;%4mp94SC5cn98LgQ zE%|JsLyV{(FK0S-q51I_DQZ~vO2{R+>u2voIDT%&mlr~X1K)peYL+U;QJ=fqqump! za=YWb*1?0kBDzKmWCSZ@1DK20I>N zjgWXjtGxO2xDr~+N8{}FDqA_>{~%U+n@=@u@&6rL^tyFh8u+7#pTXwP|Km%;P+PB; z0P}zZ FERMETURE DE LA BASE "GLOBALE" EFFECTUEE. + + Arrêt normal dans "FIN". + ARRET NORMAL DANS "FIN" PAR APPEL A "JEFINI". + + MEMOIRE JEVEUX MINIMALE REQUISE POUR L'EXECUTION : 34.01 Mo + MEMOIRE JEVEUX OPTIMALE REQUISE POUR L'EXECUTION : 44.62 Mo + MAXIMUM DE MEMOIRE UTILISEE PAR LE PROCESSUS LORS DE L'EXECUTION : 442.53 Mo + + ******************************************************************************** + * COMMAND : USER : SYSTEM : USER+SYS : ELAPSED * + ******************************************************************************** + * init (jdc) : 0.18 : 0.01 : 0.19 : 0.19 * + * . compile : 0.00 : 0.00 : 0.00 : 0.00 * + * . exec_compile : 0.03 : 0.00 : 0.03 : 0.03 * + * . report : 0.00 : 0.00 : 0.00 : 0.00 * + * . build : 0.00 : 0.00 : 0.00 : 0.00 * + * DEBUT : 0.00 : 0.03 : 0.03 : 0.03 * + * DEFI_MATERIAU : 0.00 : 0.00 : 0.00 : 0.00 * + * LIRE_MAILLAGE : 0.01 : 0.00 : 0.01 : 0.00 * + * AFFE_MODELE : 0.00 : 0.00 : 0.00 : 0.01 * + * AFFE_MATERIAU : 0.01 : 0.00 : 0.01 : 0.00 * + * AFFE_CHAR_MECA : 0.00 : 0.00 : 0.00 : 0.01 * + * MECA_STATIQUE : 0.01 : 0.00 : 0.01 : 0.01 * + * CALC_CHAMP : 0.01 : 0.00 : 0.01 : 0.01 * + * CREA_TABLE : 0.00 : 0.00 : 0.00 : 0.00 * + * IMPR_TABLE : 0.02 : 0.00 : 0.02 : 0.02 * + * IMPR_RESU : 0.01 : 0.00 : 0.01 : 0.01 * + * FIN : 0.02 : 0.01 : 0.03 : 0.03 * + * . part Superviseur : 0.23 : 0.04 : 0.27 : 0.26 * + * . part Fortran : 0.05 : 0.01 : 0.06 : 0.06 * + ******************************************************************************** + * TOTAL_JOB : 0.28 : 0.05 : 0.33 : 0.33 * + ******************************************************************************** + diff --git a/verification/2017-05-27-pyramids/Pyr5.rmed b/verification/2017-05-27-pyramids/Pyr5.rmed new file mode 100644 index 0000000000000000000000000000000000000000..8fed571a3996c5f3db3c720b762fd1b7d8eeb70e GIT binary patch literal 21442 zcmeHP33wDm7OqJk!7u~}VWXTwxDp_kgCoR9GRbt333D+sfdque5hMl_2?)5K%IYV_ zioohBtjM==3d)BUtO&E42&f1mh=8ad2+AdDyaA7Fy{=c2>7JgR$v8pK)JNuZRlRyu z_3G8DzpAU5Utq{<5!Eg#tXVU{LoJ5w4wjOP8Ow&ha@ks7u!rfcJDXVI`8TswD?(03 zFutS69u-D3ghaF>l(aNj@~n>1e8D2v^(Miw19>81AU9I5I7-cW{r!|5LfaV9gb>~g zPN9xo>5QWfBjlUYDSefjv?7d(_7=h#rCfow3nAgOW-Zii))$giR44S21|12bzv1*x z%4D>7F#)55$u5|@m?#f9@_O=S<+jgMYkNdXP+1eR-e`(}x*!OQ{N~?YKR&cqY*H7` z(S_&7G-_>P`g{%aLxY3qj6|eCOB0fky+Vpo+V)6Rob*65z-S}!rGdog10Utt3v2}D zZWy8Sg9komI--Tl!XZI(=4Q>=Npts;`U4fiCDEaUkU;4YI?ya!>@lV|$5~*YEuuBI zritSd_F#$T?pit?K6`(jgK`nxK0e}{a(PXNjm)HVfFVKHgFdFc7$bz!sb|KX%W<0W zXuU0fvk+!JA|nIhB(;k%1lw18=LcleLi0ofXMGK4m(Y z1qn$kp)$E@9=QMsDC5H9+(*c8s0FJ%xAfa1WIH4vN7q8_Ir0~eB5(iP`ywg!NO<^@ z4=-)nep3M?HHM%xkmqm+gd4hsTGlBT0n&Au{<1ZNz}dT zl2VgX22$Dbl+@IW{sS`lr6iHSrl-daYUDQzQ$U zrP%17$u=wiNw#4DNU|7wNTTx+mhD&=LK|gjt;-TUA|ctNUvtv0maa?a2dN%vs-&H; z+WmJTH{ZKz(YQ#>Q^$Vsv53O}%t~aMmkvNgH2AadT&p!QisdT<5|GdptdEAdj1Vkq zv6`R79Ew*Y;mO3~Ixu)BUDB3i@%r7R1p}G}b&_RgS1B72(P(0+>NFY+#T;VbG(47Q zl+@gmV!rUGW-;_v(-jw$nOIi2kJ7=&@g9t(w77)H=U~{dq7afZpYOVtiL0qXnkA!{ z&MS5E`QZ1-$N4$UvZQ!A2A$55DvPJd;{9at{?a%YEG)%<(qKA(Vm<#n^MKbZtKTfE z-z=-&EUO=6Ks`_&$d=b{mbDMsBIkiL^8jf-00K-apJKbS{ElhToZw?rq$EH)#*V2h z8#;Z=_~4~VOWI~lmGxMfU*DLd!88K?`B(ZUPj8GjYM@aAjT&gwKyVrWETv6h7*pIP z*z!!`p5S^a4;DDHU?{a%OKo;*p3x+f8ZC5pV9}cbLoG6B2PJ7yXM92a3+9&XAfwDQ-RW$Y%-&;*%$z=+2t;#16#ZzATI$Q*wb$M+qahHI&zQ6mGeM~F^hWS^sv@nHx+-4=z- z0Em{&7#}+`@o+_KNXUO`S0?NajZ?@MtX}hdPoQ0t=|S0Zth#?fw7+p=A^>+Ul65;=)>XW{g|}z8hlaAk>Am#DiRAmBC3y?+#4D2CR`c!fJjW zbL1}U&b<{ocoz=H>c`SUi~5<+xf0@v`aY!QP!Sq)fF)Zt)vvtE`{Cj9_cff$dppoB z%JiV@@a80Um-jHLgS$!P`70SVrDgr9 zuSk=w+PJvac!_G;8kG` z|9zljX2ZF>6xv70wD7gLkTEH{yvVO6z3y)uL8%Zp4H)IEy0%?j-1cwI*IPF#F7M?( zkjqQos_)5N-s)6lAKYKnxxCZyEQgTj%kv-g;qsJS4m!QMD=V*~R}9&emA-v0wG5_7 z)W2#-Q;St7G8A`b{fl5}f{DJvU5_vBBIy2DL$rB%v(ZG)c18$x>p@f$!IJ~795;qV~d(=UT)Qk_G2v^NtJ zI)_p*Hug?`lZFovrvW>Z_BeyCQHRpcy4J@eXb1~}7wL5tq^DPm#31$m>z}VI_)Qjc z5aou>g3i+05)EcS71y=}&6&P3)}L-T-r`hkN!o_$XobcR8h*vN>&Z{}45NhcMapOaT$$RYfD z3QY*~QWp|?16MHZuz3URl|VOM@{;byQ4e%eGYy^7VqSVJ|%vMX~X zviJyD+_S+(i6o;X*J`m83A}*6cwMi2-IR9s%GWJv+WyASr~zdSD7!FKpc_G7gK9`? zyWl7)rNLp$H`7~5Lea2vR)tr-FjUN+n~nMGq>Gm~2sTsU5NzG@ahGi1g%J_w=^d%v zuoPZpFVHU;$WorU>9d2%tJyA1eU8824ai=&z(m6+Mx;wSow8m|5bg#`)_)~GCoS zmABi^bJq>X3Hna7ojh{sB_*+KaBKp(@YNwD88sId`7lu!wz5phLj&TQdVF@G@QDXB z421T&Nt8*}F+ya!`RD}Q-C&~1D|ZAfTz8h5;PpXba&n4NS_azR>V4e@gK%vU(@lV% zn#gR?qVTB+^iE>1b_Er{afXyhK@u?SdS%HaALF8WJ|7RRBhJS?#>a6ql{E`PlYo$C zBp(`j35GKfdhz1D1;A&!1fmq1nJA8UH!5fBYsJBf#EH)7YM&Cl0+IXh@2^^x~Jlc?-( z>uxd8DJ=$01NnSsNfs+pgJsDJ{NdW69S1jgM8){%K1oBua;cj(p8x#E*B zoxjd9BDKk=6XTo;viMM09F{!l!Lxq`v9+3Pw#^Q6Q`j3o{&f>==Z5_HlB+ywe1^Hp ztCryWyU|kW@i~*$hP5J^8v{A$1kV=->bYf2MNgb;JUAy9(9|zB>x!!S&uw6 zjLMn?DDf(CC;_rB7Cv)8WliK)a)ohdGnFSYx2c#`Y(8tul>}tDzZ|+Kj()=evdRM1 zwR!@wEq{ykd;hcuCnBeT0J4?XoOR+hjS9F10a@oqtCy)59|vT^(Wt)LaJF>$1DPe` z@9vTPIMQWEpOnQjM$Uh4&6&jPRHTED4nUfY^vltduVkO}A#nrJkxfj+Dna z<>^24)a@Al@6W2fM|u(IkFxlR-TU5X7j-^sHPV$nsCjdb_hWR?l3MMimkr;%I7 znkO!Bxem5?X})%a>w{ZPE?)C)jH`D<%^26yD>7ef^Fznax;@|;xccVBo8mvn>W@?& zAAsqvRqad}vh%r^vl<^@Qh?fWTmipn~5$->kcQV8@v94j9XsORBk;uk2&3w4kX z=p8tKqhV2e#i2hf1WL3rB`9kaAdm|=lpxSuQ5SMlRv|Y8nt(PlsA`@Xx{kB4##~7V zwE5`1r>_76x_c<=T0J4q@`(Sixu|k6vL%yDI1K~>6*^dKG@&+)32ULa4n8| z^R5nWzL+&T;^XSK;xaPdyFI4->1Q)CH{7$dvitdX*UKfVYLCuN$s9lTRQkeGTdF$k od}r4Fj|RI~mq)oioIP)C!Ge6(=nXBmZ5774)=Vv;;i0Vm11$qEO8@`> literal 0 HcmV?d00001 diff --git a/verification/2017-05-27-pyramids/Pyr5_displacement.txt b/verification/2017-05-27-pyramids/Pyr5_displacement.txt new file mode 100644 index 0000000..2b368e3 --- /dev/null +++ b/verification/2017-05-27-pyramids/Pyr5_displacement.txt @@ -0,0 +1,8 @@ +# +#-------------------------------------------------------------------------------- +##Displacement of Node 5 +#ASTER 13.03.00 CONCEPT TABLE1 CALCULE LE 27/05/2017 A 22:56:41 DE TYPE +#TABLE_SDASTER + DX DY DZ +6.9444444444427100E-02 -9.7222222222197952E-02 1.0416666666679683E-02 +