-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
doc: dynamic boundary condition verification
- Loading branch information
Showing
33 changed files
with
1,511 additions
and
1,099 deletions.
There are no files selected for viewing
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
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
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
Large diffs are not rendered by default.
Oops, something went wrong.
Large diffs are not rendered by default.
Oops, something went wrong.
Large diffs are not rendered by default.
Oops, something went wrong.
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 |
---|---|---|
@@ -1,15 +1,16 @@ | ||
var NAVTREEINDEX4 = | ||
{ | ||
"structLoads_1_1PressureMaterial.html#a049b4bc25fe21610649f3ffb6f447692":[7,0,5,4,0], | ||
"structLoads_1_1PressureMaterial.html#a049b4bc25fe21610649f3ffb6f447692":[8,0,0,4,0], | ||
"structLoads_1_1PressureMaterial.html#a5ef74a16e12a0605381953242c0847eb":[7,0,5,4,1], | ||
"structLoads_1_1PressureMaterial.html#a5ef74a16e12a0605381953242c0847eb":[8,0,0,4,1], | ||
"structLoads_1_1SeismicData.html":[7,0,5,5], | ||
"structLoads_1_1SeismicData.html":[8,0,0,5], | ||
"structLoads_1_1SeismicData.html#a3403206d9cec69fc98e9b0e65cb38898":[7,0,5,5,0], | ||
"structLoads_1_1SeismicData.html#a3403206d9cec69fc98e9b0e65cb38898":[8,0,0,5,0], | ||
"structLoads_1_1SeismicData.html#a7bad550aec9970c15894c961572cd708":[7,0,5,5,1], | ||
"structLoads_1_1SeismicData.html#a7bad550aec9970c15894c961572cd708":[8,0,0,5,1], | ||
"structLoads_1_1SeismicData.html#a981c24f497a31813d49fec110c798f06":[7,0,5,5,2], | ||
"structLoads_1_1SeismicData.html#a981c24f497a31813d49fec110c798f06":[8,0,0,5,2] | ||
"structLoads_1_1PressureMaterial.html":[9,0,0,4], | ||
"structLoads_1_1PressureMaterial.html#a049b4bc25fe21610649f3ffb6f447692":[8,0,5,4,0], | ||
"structLoads_1_1PressureMaterial.html#a049b4bc25fe21610649f3ffb6f447692":[9,0,0,4,0], | ||
"structLoads_1_1PressureMaterial.html#a5ef74a16e12a0605381953242c0847eb":[8,0,5,4,1], | ||
"structLoads_1_1PressureMaterial.html#a5ef74a16e12a0605381953242c0847eb":[9,0,0,4,1], | ||
"structLoads_1_1SeismicData.html":[8,0,5,5], | ||
"structLoads_1_1SeismicData.html":[9,0,0,5], | ||
"structLoads_1_1SeismicData.html#a3403206d9cec69fc98e9b0e65cb38898":[8,0,5,5,0], | ||
"structLoads_1_1SeismicData.html#a3403206d9cec69fc98e9b0e65cb38898":[9,0,0,5,0], | ||
"structLoads_1_1SeismicData.html#a7bad550aec9970c15894c961572cd708":[8,0,5,5,1], | ||
"structLoads_1_1SeismicData.html#a7bad550aec9970c15894c961572cd708":[9,0,0,5,1], | ||
"structLoads_1_1SeismicData.html#a981c24f497a31813d49fec110c798f06":[8,0,5,5,2], | ||
"structLoads_1_1SeismicData.html#a981c24f497a31813d49fec110c798f06":[9,0,0,5,2] | ||
}; |
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
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
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,197 @@ | ||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> | ||
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US"> | ||
<head> | ||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> | ||
<meta http-equiv="X-UA-Compatible" content="IE=11"/> | ||
<meta name="generator" content="Doxygen 1.12.0"/> | ||
<meta name="viewport" content="width=device-width, initial-scale=1"/> | ||
<title>MPM-Geomechanics: Tutorial manual</title> | ||
<link href="tabs.css" rel="stylesheet" type="text/css"/> | ||
<script type="text/javascript" src="jquery.js"></script> | ||
<script type="text/javascript" src="dynsections.js"></script> | ||
<script type="text/javascript" src="clipboard.js"></script> | ||
<link href="navtree.css" rel="stylesheet" type="text/css"/> | ||
<script type="text/javascript" src="navtreedata.js"></script> | ||
<script type="text/javascript" src="navtree.js"></script> | ||
<script type="text/javascript" src="resize.js"></script> | ||
<script type="text/javascript" src="cookie.js"></script> | ||
<link href="search/search.css" rel="stylesheet" type="text/css"/> | ||
<script type="text/javascript" src="search/searchdata.js"></script> | ||
<script type="text/javascript" src="search/search.js"></script> | ||
<script type="text/x-mathjax-config"> | ||
MathJax.Hub.Config({ | ||
extensions: ["tex2jax.js"], | ||
jax: ["input/TeX","output/HTML-CSS"], | ||
}); | ||
</script> | ||
<script type="text/javascript" async="async" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js"></script> | ||
<link href="doxygen.css" rel="stylesheet" type="text/css" /> | ||
<link href="custom-html-style.css" rel="stylesheet" type="text/css"/> | ||
</head> | ||
<body> | ||
<div id="top"><!-- do not remove this div, it is closed by doxygen! --> | ||
<div id="titlearea"> | ||
<table cellspacing="0" cellpadding="0"> | ||
<tbody> | ||
<tr id="projectrow"> | ||
<td id="projectalign"> | ||
<div id="projectname">MPM-Geomechanics | ||
</div> | ||
<div id="projectbrief">Material Point Method for simulating geo-materials under large deformation conditions</div> | ||
</td> | ||
</tr> | ||
</tbody> | ||
</table> | ||
</div> | ||
<!-- end header part --> | ||
<!-- Generated by Doxygen 1.12.0 --> | ||
<script type="text/javascript"> | ||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */ | ||
var searchBox = new SearchBox("searchBox", "search/",'.html'); | ||
/* @license-end */ | ||
</script> | ||
<script type="text/javascript"> | ||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */ | ||
$(function() { codefold.init(0); }); | ||
/* @license-end */ | ||
</script> | ||
<script type="text/javascript" src="menudata.js"></script> | ||
<script type="text/javascript" src="menu.js"></script> | ||
<script type="text/javascript"> | ||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */ | ||
$(function() { | ||
initMenu('',true,false,'search.php','Search',true); | ||
$(function() { init_search(); }); | ||
}); | ||
/* @license-end */ | ||
</script> | ||
<div id="main-nav"></div> | ||
</div><!-- top --> | ||
<div id="side-nav" class="ui-resizable side-nav-resizable"> | ||
<div id="nav-tree"> | ||
<div id="nav-tree-contents"> | ||
<div id="nav-sync" class="sync"></div> | ||
</div> | ||
</div> | ||
<div id="splitbar" style="-moz-user-select:none;" | ||
class="ui-resizable-handle"> | ||
</div> | ||
</div> | ||
<script type="text/javascript"> | ||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */ | ||
$(function(){initNavTree('program_tutorial_manual.html',''); initResizable(true); }); | ||
/* @license-end */ | ||
</script> | ||
<div id="doc-content"> | ||
<!-- window showing the filter options --> | ||
<div id="MSearchSelectWindow" | ||
onmouseover="return searchBox.OnSearchSelectShow()" | ||
onmouseout="return searchBox.OnSearchSelectHide()" | ||
onkeydown="return searchBox.OnSearchSelectKey(event)"> | ||
</div> | ||
|
||
<!-- iframe showing the search results (closed by default) --> | ||
<div id="MSearchResultsWindow"> | ||
<div id="MSearchResults"> | ||
<div class="SRPage"> | ||
<div id="SRIndex"> | ||
<div id="SRResults"></div> | ||
<div class="SRStatus" id="Loading">Loading...</div> | ||
<div class="SRStatus" id="Searching">Searching...</div> | ||
<div class="SRStatus" id="NoMatches">No Matches</div> | ||
</div> | ||
</div> | ||
</div> | ||
</div> | ||
|
||
<div><div class="header"> | ||
<div class="headertitle"><div class="title">Tutorial manual</div></div> | ||
</div><!--header--> | ||
<div class="contents"> | ||
<div class="textblock"><h2><a class="anchor" id="autotoc_md59"></a> | ||
Base acceleration example</h2> | ||
<p>In this example we will show how to model the movement of an elastic body subjected to a dynamic boundary condition. The geometry of the body will be a regular cuboid with edge dimension \( l_x = 0.3\) m, \( l_y = 0.3 \) m, and \( l_z = 0.8 \) m in the \( xyz \) coordinate system. The lower coordinate point is located at \( p_{min} = (0.4, 0.4, 0.0) \) m. The dynamic boundary condition considered is a base acceleration defined as a function of time as \( \ddot{u} = A 2 \pi f cos ( 2 \pi f t + \alpha ) \). The total time of the simulation is 2 seconds, and the time step is \( \Delta t = 1e-4\) seconds. The material density considered is \( \rho = 2500 \) kg/m \(^3\), and the elastic behavior is defined by Young's modulus \( E = 100e6 \) MPa and Poisson ratio equal to \( \nu = 0.25 \). The figure below shows the body in the space.</p> | ||
<div class="image"> | ||
<img src="geometry-body.png" alt=""/> | ||
<div class="caption"> | ||
"Geometry of the body"</div></div> | ||
<h3><a class="anchor" id="autotoc_md60"></a> | ||
MPM-Model</h3> | ||
<p>With these data we will to create an <a class="el" href="classMPM.html" title="Components and algorithms of the MPM This class contain the basic objects of a MPM model,...">MPM</a> model consisting in uniformly distributed particles inside the geometry of the body. For do so, we used the "body" and "cuboid" keywords. When body type is "cuboid" we can create a body with the lower and highest coordinate point P1 (lower) and P2 (hight) of the geometry. The material established using the "material_id" keyword. This material must to be correctly defined using the keyword "materials". When we create a body using uniformly distributed particles, eight in the case of a regular element mesh, the number of total particles in the body depends of the mesh grid cell dimension. In this case we will consider a uniform mesh consisting in elements of dimension \( \Delta x = \Delta y = \Delta z = 0.1 \) m. In a <a class="el" href="classMPM.html" title="Components and algorithms of the MPM This class contain the basic objects of a MPM model,...">MPM</a> model the mesh must to cover the whole domain, covering the complete amplitude of the body movement. For this example we will consider the same number of element in each direction \( n_x=12, n_y=12, n_z=15 \) to account from the origin of coordinate \( (0,0,0) \).</p> | ||
<p>The complete JSON file with the keywords we write: </p><pre class="fragment">{ | ||
"body": | ||
{ | ||
"elastic-cuboid-body": | ||
{ | ||
"type":"cuboid", | ||
"id":1, | ||
"point_p1":[0.4,0.4,0], | ||
"point_p2":[0.7,0.7,0.8], | ||
"material_id":1 | ||
} | ||
}, | ||
"materials": | ||
{ | ||
"material-1": | ||
{ | ||
"type":"elastic", | ||
"id":1, | ||
"young":100e6, | ||
"density":2500, | ||
"poisson":0.25 | ||
} | ||
}, | ||
"mesh": | ||
{ | ||
"cells_dimension":[0.1,0.1,0.1], | ||
"cells_number":[12,12,15], | ||
"origin":[0,0,0], | ||
"boundary_conditions": | ||
{ | ||
"plane_X0":"sliding", | ||
"plane_Y0":"sliding", | ||
"plane_Z0":"earthquake", | ||
"plane_Xn":"sliding", | ||
"plane_Yn":"sliding", | ||
"plane_Zn":"sliding" | ||
} | ||
}, | ||
"time":2, | ||
"time_step":1e-4, | ||
"results": | ||
{ | ||
"print":40, | ||
"fields":["displacement","velocity"] | ||
} | ||
} | ||
</pre><p>When the "earthquake" keyword is defined in any plane in the mesh, the simulator will search for the acceleration record "base_acceleration.csv" in the working directory. This record must to be the data in the following structure: time, acceleration_x, acceleration_y, acceleration_z. The five first lines of the acceleration record is: </p><pre class="fragment">{ | ||
t,ax,ay,az | ||
0.0,-1.8849555921538759,-0.9424777960769379,-0.0 | ||
5e-05,-1.8849554991350466,-0.9424777844495842,-0.0 | ||
0.0001,-1.884955220078568,-0.9424777495675233,-0.0 | ||
0.00015000000000000001,-1.8849547549844674,-0.9424776914307561,-0.0 | ||
... | ||
} | ||
</pre><p>Note that the base acceleration record must to contain a header, that will be ignored during the reading acceleration data.</p> | ||
<p>Once we have the JSON input file, we can execute the simulator with the input file as parameter. When the simulation ends we can find the particle results in the "/particle" directory, and the grid mesh in the "/grid" directory. The particles results are written in uniformly separated times determined by the number of results defined in the "print" keyword. The number of total results must be 40. In this example, the particles results must be "particle_1.vtu", "particle_2.vtu", ..., "particle_41.vtu". Together with the "particle_i.vtu" results, a particle serie file "particleTimeSerie.pvd" is created. This time series file can be used to load all the results in the Paraview scientific visualization program.</p> | ||
<p>In other to visualize the results, the "particleTimeSerie.pvd" can be open in the Paraview by "> File > Open > particleTimeSerie.pvd". And the mesh can be loaded by open the "> File > Open > eulerianGrid.vtu".</p> | ||
<div class="image"> | ||
<img src="mpm-model-particles-and-mesh.png" alt=""/> | ||
<div class="caption"> | ||
"Particles and mesh of analyzed case"</div></div> | ||
<p>In order to validate the implementation of the dynamic boundary condition the velocity calculated from the input function used to created the base acceleration, \( \dot{u} = A sin ( 2 \pi f t + \alpha ) \) is compared with the velocity of a particle located at the base of the <a class="el" href="classMPM.html" title="Components and algorithms of the MPM This class contain the basic objects of a MPM model,...">MPM</a> model. The next figure shows this comparison. The velocities obtained with <a class="el" href="classMPM.html" title="Components and algorithms of the MPM This class contain the basic objects of a MPM model,...">MPM</a> at the base of the models coincides with the velocities obtained from the input record.</p> | ||
<div class="image"> | ||
<img src="velocity-base-verification.png" alt=""/> | ||
<div class="caption"> | ||
"Verification of velocities obtained with MPM simulation"</div></div> | ||
</div></div><!-- contents --> | ||
</div><!-- PageDoc --> | ||
</div><!-- doc-content --> | ||
<!-- start footer part --> | ||
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> | ||
<ul> | ||
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.12.0 </li> | ||
</ul> | ||
</div> | ||
</body> | ||
</html> |
Oops, something went wrong.