# Basic Usage of *GetFEM*¶

A *GetFEM* structure can be summarized as follows

A program using getfem will often have the following structure

```
... define one or more Mesh
... define one or more MeshFem
... define one or more MeshIm
... define a Model and set it up:
Model.add_fem_variable(MeshFem, "some variable name")
Model.add_fem_variable(MeshFem, "another variable name")
Model.add_fem_data(MeshFem, "some data name")
Model.add_nonlinear_generic_assembly_brick(MeshIm,
"copy & paste your PDE weak formulation here", MeshRegion)
Model.solve(...options)
```

Note that instead of defining your pde terms with GWFL, the generic weak form language (see Compute arbitrary terms - high-level generic assembly procedures - Generic Weak-Form Language (GWFL) for more details on the syntax of the weak form language), you can use predefined bricks for standard terms : generic elliptic term, linearized or finite strain elasticity, standard boundary conditions …