mirror of
https://github.com/JuliaFEM/JuliaFEM.jl.git
synced 2026-08-06 04:21:33 +00:00
0f0c49da62
A lot of old files from old documentation systems etc. is in package. These are now removed or moved. Old notebooks are in docs/tutorials. This PR closes issue #124.
208 lines
5.6 KiB
Plaintext
208 lines
5.6 KiB
Plaintext
{
|
|
"cells": [
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 1,
|
|
"metadata": {
|
|
"collapsed": false
|
|
},
|
|
"outputs": [
|
|
{
|
|
"name": "stderr",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"WARNING: module JuliaFEM should explicitly import setindex! from Base\n"
|
|
]
|
|
}
|
|
],
|
|
"source": [
|
|
"using JuliaFEM: Material, set_material!, get_element_set, ElasticityProblem,\n",
|
|
"DirichletProblem, LoadCase, DisplacementBC, ForceBC, DirichletProblem,\n",
|
|
"add_boundary_condition!, add_loadcase!"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 2,
|
|
"metadata": {
|
|
"collapsed": false
|
|
},
|
|
"outputs": [
|
|
{
|
|
"name": "stderr",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"INFO: Parsing nodes\n",
|
|
"INFO: Parsing elements. Type: JuliaFEM.Tet4\n",
|
|
"INFO: Parsing elements. Type: JuliaFEM.Seg3\n",
|
|
"INFO: Creating elset BC1\n",
|
|
"INFO: Creating elset BC2\n"
|
|
]
|
|
},
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"JuliaFEM.Material{ASCIIString,Float64}(\"steel\",Dict(\"poissons ratio\"=>0.3,\"youngs modulus\"=>210000.0,\"other values\"=>100000.0))"
|
|
]
|
|
},
|
|
"execution_count": 2,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
},
|
|
{
|
|
"name": "stderr",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"INFO: Creating elset BC3\n"
|
|
]
|
|
}
|
|
],
|
|
"source": [
|
|
"\n",
|
|
"# Reading nodes, elements and sets from input file\n",
|
|
"model = open(JuliaFEM.parse_abaqus, \"/home/olli/.julia/v0.4/JuliaFEM/geometry/piston/piston_8789_P1.inp\")\n",
|
|
"\n",
|
|
"# Creating material\n",
|
|
"# It is possible to create material data with one function\n",
|
|
"steel = Material(\"steel\",\n",
|
|
" (\"youngs modulus\" => 210.0e3,\n",
|
|
" \"poissons ratio\" => 0.3,\n",
|
|
" \"other values\" => 100e3),\n",
|
|
")\n",
|
|
"\n",
|
|
"# Or by adding row by row\n",
|
|
"steel2 = Material(\"Steel2\")\n",
|
|
"steel2[\"youngs modulus\"] = 210.0e3\n",
|
|
"steel2[\"poissons ratio\"] = 10.0\n",
|
|
"\n",
|
|
"# Setting material to element set\n",
|
|
"set_material!(model, steel, \"PISTON\")\n",
|
|
"\n"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 3,
|
|
"metadata": {
|
|
"collapsed": false
|
|
},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"JuliaFEM.NeumannBC{ASCIIString}(\"displacement traction force\",1000,\"BC1\")"
|
|
]
|
|
},
|
|
"execution_count": 3,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"# Fetchig set from model\n",
|
|
"piston = get_element_set(model, \"PISTON\")\n",
|
|
"\n",
|
|
"# Creating problems:\n",
|
|
"# Elasticity \n",
|
|
"elasticity_problem = ElasticityProblem()\n",
|
|
"\n",
|
|
"# Boundary conditions\n",
|
|
"BC1 = DisplacementBC(\"displacement u1\", 0.0, \"BC2\")\n",
|
|
"F1 = ForceBC(\"displacement traction force\", 1000, \"BC1\")\n"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 4,
|
|
"metadata": {
|
|
"collapsed": false
|
|
},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"2-element Array{Array{Union{JuliaFEM.DirichletBC{S<:AbstractString},JuliaFEM.NeumannBC{S<:AbstractString}},1},1}:\n",
|
|
" Union{JuliaFEM.DirichletBC{S<:AbstractString},JuliaFEM.NeumannBC{S<:AbstractString}}[JuliaFEM.NeumannBC{ASCIIString}(\"displacement traction force\",1000,\"BC1\"),JuliaFEM.DirichletBC{ASCIIString}(\"displacement u1\",0.0,\"BC2\"),JuliaFEM.NeumannBC{ASCIIString}(\"displacement traction force\",1000,\"BC1\"),JuliaFEM.DirichletBC{ASCIIString}(\"displacement u1\",0.0,\"BC2\")]\n",
|
|
" Union{JuliaFEM.DirichletBC{S<:AbstractString},JuliaFEM.NeumannBC{S<:AbstractString}}[JuliaFEM.NeumannBC{ASCIIString}(\"displacement traction force\",1000,\"BC1\"),JuliaFEM.DirichletBC{ASCIIString}(\"displacement u1\",0.0,\"BC2\"),JuliaFEM.NeumannBC{ASCIIString}(\"displacement traction force\",1000,\"BC1\"),JuliaFEM.DirichletBC{ASCIIString}(\"displacement u1\",0.0,\"BC2\")]"
|
|
]
|
|
},
|
|
"execution_count": 4,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"\n",
|
|
"# Possible ways to create a loadcase, whihc holds all data for calculation\n",
|
|
"load4 = LoadCase(elasticity_problem)\n",
|
|
"load = LoadCase(elasticity_problem, [BC1])\n",
|
|
"load2 = LoadCase(elasticity_problem, [BC1, F1])\n",
|
|
"load3 = LoadCase(elasticity_problem, BC1)\n",
|
|
"\n",
|
|
"# Couple of ways to add boundary conditions to loadcase\n",
|
|
"add_boundary_condition!(load, BC1)\n",
|
|
"add_boundary_condition!(load2, F1)\n",
|
|
"add_boundary_condition!(load3, BC1)\n",
|
|
"add_boundary_condition!(load4, [F1, BC1])\n",
|
|
"add_boundary_condition!(load, [F1, BC1])\n",
|
|
"add_boundary_condition!(load4, [F1, BC1])\n"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 6,
|
|
"metadata": {
|
|
"collapsed": false
|
|
},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"0"
|
|
]
|
|
},
|
|
"execution_count": 6,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"\n",
|
|
"# Adding load case to model, various ways...\n",
|
|
"add_loadcase!(model, load)\n",
|
|
"add_loadcase!(model, [load, load2, load3])\n",
|
|
"0"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"metadata": {
|
|
"collapsed": true
|
|
},
|
|
"outputs": [],
|
|
"source": [
|
|
"# Select solver\n",
|
|
"solver = DirectSolver()\n",
|
|
"\n",
|
|
"solve!(model, solver)"
|
|
]
|
|
}
|
|
],
|
|
"metadata": {
|
|
"kernelspec": {
|
|
"display_name": "Julia 0.4.1-pre",
|
|
"language": "julia",
|
|
"name": "julia-0.4"
|
|
},
|
|
"language_info": {
|
|
"file_extension": ".jl",
|
|
"mimetype": "application/julia",
|
|
"name": "julia",
|
|
"version": "0.4.1"
|
|
}
|
|
},
|
|
"nbformat": 4,
|
|
"nbformat_minor": 0
|
|
}
|