Files
JuliaFEM.jl/docs/tutorials/2015-11-30-api-functionality.ipynb
Jukka Aho 0f0c49da62 Cleanup of obsolete files
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.
2017-08-05 12:08:46 +03:00

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
}