Skip to content
Snippets Groups Projects
Commit f94a649c authored by Denis Louis's avatar Denis Louis
Browse files

Merge branch 'Valentin.Vanraes-master-patch-36778' into 'master'

README.md: How to create .geo

See merge request !13
parents e9e2a5f2 62a7fe36
No related branches found
No related tags found
1 merge request!13README.md: How to create .geo
......@@ -18,4 +18,65 @@ To build the independent FEM solver:
- similar procedure but to be done in the srcs/FEM folder
To build the independent BEM solver:
- similar procedure but to be done in the srcs/BEM folder
\ No newline at end of file
- similar procedure but to be done in the srcs/BEM folder
## Creation of a .geo file
To create a .geo file that will work with the program, some rules must be respected:
- For the FEM domain:
1. FEM domain should be defined as `Physical Curve` with the precise name `FEM_domain`.
For example, if the user want the Curve Loop(1) to be a FEM domain, where `x`is the tag:
<pre><code>Physical Curve("FEM_domain", x) = {1};.<code><pre>
2. The boundary conditions, material properties and volumic forces must then be specified to the FEM domain:
- **BOUNDARY CONDITIONS**:
1. The edges on which the user want to imposed a boundary condition must be defined as `Physical Curve`.
For example, if the user want to impose a condition on a bottom edge related to the `Line(1)`:
<pre><code>`Physical Curve("bottom_edge", x) = {1};`<code><pre>
2. All boundary conditions must be written as `SetNumber("Boundary Conditions/name_of_the_edge/...")` with `name_of_the_edge` the
edge on which the condition is imposed.
3. The Dirichlet boundary conditions, i.e the imposed horizontal and vertical displacement `u_x` and `u_y` of an edge,
must be written as `Setnumber("Boundary Conditions/name_of_the_edge/ux", desired_value);`, same applies for `u_y`.
For example, if the user want to imposed an embedding on an the bottom edge:
<pre><code>SetNumber("Boundary Conditions/bottom_left/ux", 0.);
SetNumber("Boundary Conditions/bottom_left/uy", 0.);<code><pre>
4. The Neumann boundary conditions, i.e surface traction (or compression) in the horizontal (`t_x`) or vertical (`t_y`) direction
imposed on an edge, must be written as `SetNumber("Boundary Conditions/name_of_edge/tx", desired_value);`, same applies for
`t_y`.
- **MATERIAL PROPERTIES**:
All the material properties must be written as `SetNumber("Materials/domain/name_of_property", value_of_property);`.
The different properties that must be specified are:
- Young modulus, named `Young`.
- Poisson ration, named `Poisson`.
- Volumic density, named `rho`.
- **VOLUMIC FORCES**:
Volumic forces, i.e forces applied on all the volume in the horizontal (`b_x`) or vertical (`b_y`) direction
must be written as `SetNumber("Volumic Forces/FEM_domain/b_x",0);`, same applies for `b_y`.
- For the BEM domains:
1. The lines of the BEM surfaces must be created in such a way that the air of the surface is located to the left of the Curve Loop.
2. BEM domain should be defined as `Physical Curve` with the precise name `BEM_domain_X`, with `X` the number of the BEM domain (`X=1` if it is the first one, `X=2` if it is the seconde one, ...).
For example, if the user want the `Curve Loop(1)` to be a FEM domain:
<pre><code>Physical Curve("FEM_domain", x) = {1};<code><pre>
3. Lines belonging to the BEM and FEM domains must be specified as `Physical Curve("BEM_FEM_boundary_X, x)={Lines_of_the_two_domains}`. For example, if `Line(1)`, `Line(4)` and `Line(5)` belong to the intersection of the BEM domain and the FEM domain:
<pre><code> Physical Curve("BEM_FEM_boundary_1", x) = {1, 4, 5};<code><pre>
4. The electrode on line defining the electrode on wich the electric potential is imposed must be defined as `Physical Curve("electrode_X", x)={Lines_corresponding_to_electrode}`.
5. The line which are not defined as an electrode or as a an intersection between the two types of domain must be specified as `Physical Curve("outside_X", x) = {Lines_of_outside};`
6. Boundary conditions and materials properties must then be specified for the Bem domain:
- **BOUNDARY CONDITIONS**:
- Two Dirichlet boundary conditions need to be imposed:
1. The electric potential of the electrode, specified as `SetNumber("Boundary Conditions/electrode_X/BEM_domain_X/dirichlet", value_of_potential);`.
2. A condition on the boundary between the FEM and the BEM domain. It is often considered as the place where the electric potential is equal to 0, defined as `SetNumber("Boundary Conditions/BEM_FEM_boundary_X/BEM_domain_X/dirichlet", value_of_potential);`.
- One Neumann boundary condition on the line which are not defined as an electrode or as a an intersection between the two types of domain, written as `SetNumber("Boundary Conditions/outside_X/BEM_domain_X/neumann", 0);`.
- **MATERIAL PROPERTIES**: The dielectric permittivity of the BEM domain must be specified, it is done writing `SetNumber("Materials/BEM_domain_X/Epsilon", value_Epsilon);`.
**Note**: These operations must be done for each BEM domains the user want to create, replacing `X` by the number of the BEM domain.
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment