gf_mdbrick
Purpose
Synopsis
gf_mdbrick('constraint', mdbrick parent, string CTYPE [, int numfem]) gf_mdbrick('dirichlet', mdbrick parent, int BNUM, mesh_fem MFMULT, string CTYPE [, int numfem]) gf_mdbrick('dirichlet on normal component', mdbrick parent, int BNUM, mesh_fem MFMULT, string CTYPE [, int numfem]) gf_mdbrick('dirichlet on normal derivative', mdbrick parent, int BNUM, mesh_fem MFMULT, string CTYPE [, int numfem]) gf_mdbrick('generalized dirichlet', mdbrick parent, int BNUM [, int numfem]) gf_mdbrick('source term', mdbrick parent, [, int BNUM=-1[, int numfem]]) gf_mdbrick('normal source term', mdbrick parent, int BNUM [, int numfem]) gf_mdbrick('normal derivative source term', mdbrick parent, int BNUM [, int numfem]) gf_mdbrick('neumann KirchhoffLove source term', mdbrick parent, int BNUM [, int numfem]) gf_mdbrick('qu term', mdbrick parent, [, int BNUM [, int numfem]]) gf_mdbrick('mass matrix', mesh_im mim, mesh_fem mf_u [,'real'|'complex']) gf_mdbrick('generic elliptic', mesh_im MIM, mesh_fem mfu [,'scalar'|'matrix'|'tensor'][,'real'|'complex']) gf_mdbrick('helmholtz', mesh_im MIM, mesh_fem mfu [,'real'|'complex']) gf_mdbrick('isotropic linearized elasticity', mesh_im MIM, mesh_fem mfu) gf_mdbrick('linear incompressibility term', mdbrick parent, mesh_fem mf_p [, int numfem]) gf_mdbrick('nonlinear elasticity', mesh_im MIM, mesh_fem mfu, string lawname) gf_mdbrick('nonlinear elasticity incompressibility term', mdbrick parent, mesh_fem mf_p [, int numfem]) gf_mdbrick('small deformations plasticity', mesh_im MIM, mesh_fem mfu, scalar THRESHOLD) gf_mdbrick('bilaplacian', mesh_im MIM, mesh_fem mfu, ['Kirchhoff-Love']) gf_mdbrick('isotropic_linearized_plate', mesh_im MIM, mesh_im MIMSUB, mesh_fem MF_UT, mesh_fem MF_U3, mesh_fem MF_THETA, scalar EPSILON) gf_mdbrick('mixed_isotropic_linearized_plate', mesh_im MIM, mesh_fem MF_UT, mesh_fem MF_U3, mesh_fem MF_THETA, scalar EPSILON) gf_mdbrick('plate_source_term', mdbrick parent, [, int BNUM=-1[, int numfem]]) gf_mdbrick('plate_simple_support', mdbrick parent, int BNUM, string CTYPE [, int numfem]) gf_mdbrick('plate_clamped_support', mdbrick parent, int BNUM, string CTYPE[, int numfem]) gf_mdbrick('plate_closing', mdbrick parent [, int numfem])
Description
gf_mdbrick('constraint', parent, CTYPE [, numfem]) : build a generic constraint brick.
It may be useful in some situations, such as the Stokes problem where the pressure in defined modulo a constant. In such a situation, this brick can be used to add an additional constraint on the pressure value. CTYPE has to be chosen among 'augmented', 'penalized', and 'eliminated'. The constraint can be specified with gf_mdbrick_set('constraints'). Note that Dirichlet bricks (except the 'generalized Dirichlet' one) are also specializations of the 'constraint' brick.gf_mdbrick('dirichlet', mdbrick parent, int BNUM, mesh_fem MFMULT, string CTYPE [, int numfem]) : build a Dirichlet condition brick which impose the value of a field along a mesh boundary.
The BNUM parameter selects on which mesh region the Dirichlet condition is imposed. CTYPE has to be chosen among 'augmented', 'penalized', and 'eliminated'. The MFMULT may generally be taken as the mesh fem of the unknown, but for 'augmented' Dirichlet conditions, you may have to respect the Inf-Sup condition and choose an adequate mesh fem.gf_mdbrick('dirichlet on normal component', parent, BNUM, MFMULT, CTYPE [, numfem]) : build a Dirichlet condition brick which imposes the value of the normal component of a vector field.
gf_mdbrick('dirichlet on normal derivative', parent, BNUM, MFMULT, CTYPE [, numfem]) : build a Dirichlet condition brick which imposes the value of the normal derivative of the unknown.
gf_mdbrick('generalized dirichlet', parent, BNUM [, numfem]) : this is the "old" Dirichlet brick of getfem.
This brick can be used to impose general Dirichlet conditions h(x)u(x) = r(x) , however it may have some issues with elaborated FEM (such as Argyris, etc). It should be avoided when possible.gf_mdbrick('source term', parent, [, BNUM=-1[, numfem]]) : add a boundary or volumic source term ( ∫B.v ).
If BNUM is omitted (or set to -1) , the brick adds a volumic source term on the whole mesh. For BNUM >= 0, the source term is imposed on the mesh region BNUM. Use gf_mdbrick_set('param','source term',mf,B) to set the source term field. The source term is expected as a vector field of size Q (with Q = qdim).gf_mdbrick('normal source term', parent, BNUM [, numfem]) : add a boundary source term ( ∫(Bn).v ).
The source term is imposed on the mesh region BNUM (which of course is not allowed to be a volumic region, only boundary regions are allowed). Use gf_mdbrick_set('param','source term',mf,B) to set the source term field. The source term B is expected as tensor field of size QxN (with Q = qdim, N = mesh dim). For example, if you consider an elasticity problem, this brick may be used to impose a force on the boundary with B as the stress tensor.gf_mdbrick('normal derivative source term', parent, BNUM [, numfem]) : add a boundary source term ( ∫(∂n B).v ).
The source term is imposed on the mesh region BNUM. Use gf_mdbrick_set('param','source term',mf,B) to set the source term field, which is expected as a vector field of size Q (with Q = qdim).gf_mdbrick('neumann KirchhoffLove source term', parent, BNUM [, numfem]) : add a boundary source term for neumann Kirchhoff-Love plate problems (should be used with the Kirchhoff-Love flavour of the bilaplacian brick).
gf_mdbrick('qu term', parent, [, BNUM [, numfem]]) : update the tangent matrix with a ∫(Qu).v term.
The Q(x) parameter is a matrix field of size qdim x qdim. An example of use is for the "iku" part of Robin boundary conditions ∂n u + iku = ...gf_mdbrick('mass matrix', mim, mf_u [,'real'|'complex']) : build a mass-matrix brick.
gf_mdbrick('generic elliptic', MIM, mfu [,'scalar'|'matrix'|'tensor'][,'real'|'complex']) : setup a generic elliptic problem ( ∫(A(x)∇u).∇v )
The brick parameter 'A' may be a scalar field, a matrix field, or a tensor field (default is scalar, and A=1).gf_mdbrick('helmholtz', MIM, mfu [,'real'|'complex']) : setup a Helmholtz problem. The brick has one parameter, 'wave_number'.
gf_mdbrick('isotropic linearized elasticity', MIM, mfu) : setup a linear elasticity problem. The brick has two scalar parameter, 'lambda' and 'mu' (the Lamé coefficients).
gf_mdbrick('linear incompressibility term', parent, mf_p [, numfem]) : add an incompressibily constraint (∇.u = 0).
gf_mdbrick('nonlinear elasticity', MIM, mfu, lawname) : setup a nonlinear elasticity (large deformations) problem.
The material law can be chosen among- 'SaintVenant Kirchhoff' (linearized material law)
- 'Mooney Rivlin' (to be used with the nonlinear incompressibily term)
- 'Ciarlet Geymonat'
gf_mdbrick('nonlinear elasticity incompressibility term', parent, mf_p [, numfem]) : add an incompressibily constraint to a large strain elasticity problem.
gf_mdbrick('small deformations plasticity', MIM, mfu, @scalar THRESHOLD) : setup a plasticity problem (with small deformations).
The THRESHOLD parameter is the maximum value of the Von Mises stress before "plastification" of the material.gf_mdbrick('bilaplacian', MIM, mfu, ['Kirchhoff-Love']) : setup a bilaplacian problem.
If the Kirchhoff-Love option is specified, the Kirchhoff-Love plate model is used. gf_mdbrick('isotropic_linearized_plate', MIM, MIMSUB, MF_UT, MF_U3, MF_THETA, EPSILON) setup a linear plate model brick (for moderately thick plates, using the Reissner-Mindlin model). EPSILON is the plate thinkness, the mesh fem MF_UT and MF_U3 are used respectively for the membrane displacement and the transverse displacement of the plate. The mesh fem MF_THETA is the rotation of the normal ("section rotations"). The second integration method MIMSUB can be chosen equal to MIM, or different if you want to perform sub-integration on the transverse shear term (mitc4 projection). This brick has two parameters "lambda" and "mu" (the Lamé coefficients) gf_mdbrick('mixed_isotropic_linearized_plate', MIM, MF_UT, MF_U3, MF_THETA, EPSILON) setup a mixed linear plate model brick (for thin plates, using Kirchhoff-Love model). For a non-mixed version, use the bilaplacian brick. gf_mdbrick('plate_source_term', parent, [, BNUM=-1[, numfem]]) add a boundary or a volumic source term to a plate problem. This brick has two parameters: "B" is the displacement (ut and u3) source term, "M" is the moment source term (i.e. the source term on the rotation of the normal). gf_mdbrick('plate_simple_support', parent, BNUM, CTYPE [, numfem]) add a "simple support" boundary condition to a plate problem (homogeneous Dirichlet condition on the displacement, free rotation). CTYPE specifies how the constraint is enforced ('penalized', 'augmented' or 'eliminated'). gf_mdbrick('plate_clamped_support', parent, BNUM, CTYPE[, numfem]) add a "clamped support" boundary condition to a plate problem (homogeneous Dirichlet condition on the displacement and on the rotation). gf_mdbrick('plate_closing', parent [, numfem]) add a free edges condition for the mixed plate model brick. This brick is required when the mixed linearized plate brick is used. It must be inserted after all other boundary conditions (the reason is that the brick has to inspect all other boundary conditions to determine the number of disconnected boundary parts which are free edges).