GetFEM++  5.3
getfem::model Class Reference

``Model'' variables store the variables, the data and the description of a model. More...

#include <getfem_models.h>

Inherits getfem::context_dependencies, and dal::static_stored_object.

Public Member Functions

void update_from_context () const
 this function has to be defined and should update the object when the context is modified. More...
 
void disable_brick (size_type ib)
 Disable a brick. More...
 
void enable_brick (size_type ib)
 Enable a brick. More...
 
void disable_variable (const std::string &name)
 Disable a variable (and its attached mutlipliers). More...
 
void enable_variable (const std::string &name)
 Enable a variable (and its attached mutlipliers). More...
 
bool variable_exists (const std::string &name) const
 Says if a name corresponds to a declared variable. More...
 
bool is_data (const std::string &name) const
 Says if a name corresponds to a declared data or disabled variable. More...
 
bool is_true_data (const std::string &name) const
 Says if a name corresponds to a declared data. More...
 
bool is_complex () const
 Boolean which says if the model deals with real or complex unknowns and data. More...
 
bool is_coercive () const
 Return true if all the model terms do not affect the coercivity of the whole tangent system. More...
 
bool is_symmetric () const
 Return true if all the model terms do not affect the coercivity of the whole tangent system. More...
 
bool is_linear () const
 Return true if all the model terms are linear. More...
 
size_type nb_dof () const
 Total number of degrees of freedom in the model. More...
 
dim_type leading_dimension () const
 Leading dimension of the meshes used in the model. More...
 
std::string new_name (const std::string &name)
 Gives a non already existing variable name begining by name. More...
 
const model_real_plain_vector & real_variable (const std::string &name, size_type niter) const
 Gives the access to the vector value of a variable. More...
 
const model_real_plain_vector & real_variable (const std::string &name) const
 The same as above, but either accessing the latest variable version, or the previous, if using "Old_" prefix.
 
const model_complex_plain_vector & complex_variable (const std::string &name, size_type niter) const
 Gives the access to the vector value of a variable. More...
 
const model_complex_plain_vector & complex_variable (const std::string &name) const
 The same as above, but either accessing the latest variable version, or the previous, if using "Old_" prefix.
 
model_real_plain_vector & set_real_variable (const std::string &name, size_type niter) const
 Gives the write access to the vector value of a variable. More...
 
model_real_plain_vector & set_real_variable (const std::string &name) const
 The same as above, but for either latest variable, or for the previous, if prefixed with "Old_". More...
 
model_complex_plain_vector & set_complex_variable (const std::string &name, size_type niter) const
 Gives the write access to the vector value of a variable. More...
 
model_complex_plain_vector & set_complex_variable (const std::string &name) const
 The same as above, but either accessing the latest variable version, or the previous, if using "Old_" prefix.
 
void add_fixed_size_variable (const std::string &name, size_type size, size_type niter=1)
 Add a fixed size variable to the model assumed to be a vector. More...
 
void add_fixed_size_variable (const std::string &name, const bgeot::multi_index &sizes, size_type niter=1)
 Add a fixed size variable to the model whith given tensor dimensions. More...
 
void add_fixed_size_data (const std::string &name, size_type size, size_type niter=1)
 Add a fixed size data to the model. More...
 
void add_fixed_size_data (const std::string &name, const bgeot::multi_index &sizes, size_type niter=1)
 Add a fixed size data to the model. More...
 
void resize_fixed_size_variable (const std::string &name, size_type size)
 Resize a fixed size variable (or data) of the model. More...
 
void resize_fixed_size_variable (const std::string &name, const bgeot::multi_index &sizes)
 Resize a fixed size variable (or data) of the model. More...
 
template<typename VECT >
void add_initialized_fixed_size_data (const std::string &name, const VECT &v)
 Add a fixed size data (assumed to be a vector) to the model and initialized with v. More...
 
template<typename VECT >
void add_initialized_fixed_size_data (const std::string &name, const VECT &v, const bgeot::multi_index &sizes)
 Add a fixed size data (assumed to be a vector) to the model and initialized with v. More...
 
void add_initialized_matrix_data (const std::string &name, const base_matrix &M)
 Add a fixed size data (assumed to be a matrix) to the model and initialized with M. More...
 
void add_initialized_tensor_data (const std::string &name, const base_tensor &t)
 Add a fixed size data (assumed to be a tensor) to the model and initialized with t. More...
 
template<typename T >
void add_initialized_scalar_data (const std::string &name, T e)
 Add a scalar data (i.e. More...
 
void add_im_data (const std::string &name, const im_data &im_data, size_type niter=1)
 Add data, defined at integration points. More...
 
void add_fem_variable (const std::string &name, const mesh_fem &mf, size_type niter=1)
 Add a variable being the dofs of a finite element method to the model. More...
 
void add_filtered_fem_variable (const std::string &name, const mesh_fem &mf, size_type region, size_type niter=1)
 Add a variable linked to a fem with the dof filtered with respect to a mesh region. More...
 
void add_affine_dependent_variable (const std::string &name, const std::string &org_name, scalar_type alpha=scalar_type(1))
 Add a "virtual" variable be an affine depedent variable with respect to another variable. More...
 
void add_fem_data (const std::string &name, const mesh_fem &mf, dim_type qdim=1, size_type niter=1)
 Add a data being the dofs of a finite element method to the model. More...
 
void add_fem_data (const std::string &name, const mesh_fem &mf, const bgeot::multi_index &sizes, size_type niter=1)
 Add a data being the dofs of a finite element method to the model. More...
 
template<typename VECT >
void add_initialized_fem_data (const std::string &name, const mesh_fem &mf, const VECT &v)
 Add an initialized fixed size data to the model, assumed to be a vector field if the size of the vector is a multiple of the dof number. More...
 
template<typename VECT >
void add_initialized_fem_data (const std::string &name, const mesh_fem &mf, const VECT &v, const bgeot::multi_index &sizes)
 Add a fixed size data to the model. More...
 
void add_multiplier (const std::string &name, const mesh_fem &mf, const std::string &primal_name, size_type niter=1)
 Add a particular variable linked to a fem being a multiplier with respect to a primal variable. More...
 
void add_multiplier (const std::string &name, const mesh_fem &mf, size_type region, const std::string &primal_name, size_type niter=1)
 Add a particular variable linked to a fem being a multiplier with respect to a primal variable and a region. More...
 
void add_multiplier (const std::string &name, const mesh_fem &mf, const std::string &primal_name, const mesh_im &mim, size_type region, size_type niter=1)
 Add a particular variable linked to a fem being a multiplier with respect to a primal variable. More...
 
const ga_macro_dictionnary & macro_dictionnary () const
 Dictonnary of user defined macros. More...
 
void add_macro (const std::string &name, const std::string &expr)
 Add a macro definition for the high generic assembly langage. More...
 
void del_macro (const std::string &name)
 Delete a previously defined macro definition. More...
 
bool macro_exists (const std::string &name) const
 Says if a macro of that name has been defined. More...
 
void delete_variable (const std::string &varname)
 Delete a variable or data of the model. More...
 
const mesh_femmesh_fem_of_variable (const std::string &name) const
 Gives the access to the mesh_fem of a variable if any. More...
 
const mesh_fempmesh_fem_of_variable (const std::string &name) const
 Gives a pointer to the mesh_fem of a variable if any. More...
 
const model_real_sparse_matrix & real_tangent_matrix () const
 Gives the access to the tangent matrix. More...
 
const model_complex_sparse_matrix & complex_tangent_matrix () const
 Gives the access to the tangent matrix. More...
 
const model_real_plain_vector & real_rhs () const
 Gives the access to the right hand side of the tangent linear system. More...
 
const model_real_plain_vector & real_brick_term_rhs (size_type ib, size_type ind_term=0, bool sym=false, size_type ind_iter=0) const
 Gives the access to the part of the right hand side of a term of a particular nonlinear brick. More...
 
const model_complex_plain_vector & complex_rhs () const
 Gives access to the right hand side of the tangent linear system. More...
 
const model_complex_plain_vector & complex_brick_term_rhs (size_type ib, size_type ind_term=0, bool sym=false, size_type ind_iter=0) const
 Gives access to the part of the right hand side of a term of a particular nonlinear brick. More...
 
void listvar (std::ostream &ost) const
 List the model variables and constant. More...
 
void listbricks (std::ostream &ost, size_type base_id=0) const
 List the model bricks. More...
 
const dal::bit_vector & get_active_bricks () const
 Return the model brick ids. More...
 
void touch_brick (size_type ib)
 Force the re-computation of a brick for the next assembly. More...
 
size_type add_brick (pbrick pbr, const varnamelist &varnames, const varnamelist &datanames, const termlist &terms, const mimlist &mims, size_type region)
 Add a brick to the model. More...
 
void delete_brick (size_type ib)
 Delete the brick of index ib from the model. More...
 
void add_mim_to_brick (size_type ib, const mesh_im &mim)
 Add an integration method to a brick. More...
 
void change_terms_of_brick (size_type ib, const termlist &terms)
 Change the term list of a brick. More...
 
void change_variables_of_brick (size_type ib, const varnamelist &vl)
 Change the variable list of a brick. More...
 
void change_data_of_brick (size_type ib, const varnamelist &vl)
 Change the data list of a brick. More...
 
void change_mims_of_brick (size_type ib, const mimlist &ml)
 Change the mim list of a brick. More...
 
void change_update_flag_of_brick (size_type ib, bool flag)
 Change the update flag of a brick. More...
 
void add_time_dispatcher (size_type ibrick, pdispatcher pdispatch)
 Add a time dispacther to a brick. More...
 
virtual void first_iter ()
 For transient problems. More...
 
virtual void next_iter ()
 For transient problems. More...
 
void add_interpolate_transformation (const std::string &name, pinterpolate_transformation ptrans)
 Add a interpolate transformation to the model to be used with the generic assembly.
 
pinterpolate_transformation interpolate_transformation (const std::string &name) const
 Get a pointer to the interpolate transformation name.
 
bool interpolate_transformation_exists (const std::string &name) const
 Tests if name correpsonds to an interpolate transformation.
 
void add_elementary_transformation (const std::string &name, pelementary_transformation ptrans)
 Add an elementary transformation to the model to be used with the generic assembly.
 
pelementary_transformation elementary_transformation (const std::string &name) const
 Get a pointer to the elementary transformation name.
 
bool elementary_transformation_exists (const std::string &name) const
 Tests if name correpsonds to an elementary transformation.
 
const std::string & varname_of_brick (size_type ind_brick, size_type ind_var)
 Gives the name of the variable of index ind_var of the brick of index ind_brick. More...
 
const std::string & dataname_of_brick (size_type ind_brick, size_type ind_data)
 Gives the name of the data of index ind_data of the brick of index ind_brick. More...
 
virtual void assembly (build_version version)
 Assembly of the tangent system taking into account the terms from all bricks. More...
 
std::string Neumann_term (const std::string &varname, size_type region)
 Gives the assembly string corresponding to the Neumann term of the fem variable varname on region. More...
 
void check_brick_stiffness_rhs (size_type ind_brick) const
 check consistency of RHS and Stiffness matrix for brick with More...
 
- Public Member Functions inherited from getfem::context_dependencies
bool context_check () const
 return true if update_from_context was called
 

Detailed Description

``Model'' variables store the variables, the data and the description of a model.

This includes the global tangent matrix, the right hand side and the constraints. There are two kinds of models, the real'' and thecomplex'' models.

Definition at line 114 of file getfem_models.h.

Member Function Documentation

void getfem::model::update_from_context ( ) const
inlinevirtual

this function has to be defined and should update the object when the context is modified.

Implements getfem::context_dependencies.

Definition at line 485 of file getfem_models.h.

void getfem::model::disable_brick ( size_type  ib)
inline

Disable a brick.

Definition at line 494 of file getfem_models.h.

void getfem::model::enable_brick ( size_type  ib)
inline

Enable a brick.

Definition at line 500 of file getfem_models.h.

void getfem::model::disable_variable ( const std::string &  name)

Disable a variable (and its attached mutlipliers).

Definition at line 947 of file getfem_models.cc.

void getfem::model::enable_variable ( const std::string &  name)

Enable a variable (and its attached mutlipliers).

Definition at line 965 of file getfem_models.cc.

bool getfem::model::variable_exists ( const std::string &  name) const

Says if a name corresponds to a declared variable.

Definition at line 983 of file getfem_models.cc.

bool getfem::model::is_data ( const std::string &  name) const

Says if a name corresponds to a declared data or disabled variable.

Definition at line 274 of file getfem_models.cc.

bool getfem::model::is_true_data ( const std::string &  name) const

Says if a name corresponds to a declared data.

Definition at line 282 of file getfem_models.cc.

bool getfem::model::is_complex ( ) const
inline

Boolean which says if the model deals with real or complex unknowns and data.

Definition at line 540 of file getfem_models.h.

bool getfem::model::is_coercive ( ) const
inline

Return true if all the model terms do not affect the coercivity of the whole tangent system.

Definition at line 544 of file getfem_models.h.

bool getfem::model::is_symmetric ( ) const
inline

Return true if all the model terms do not affect the coercivity of the whole tangent system.

Definition at line 548 of file getfem_models.h.

bool getfem::model::is_linear ( ) const
inline

Return true if all the model terms are linear.

Definition at line 551 of file getfem_models.h.

size_type getfem::model::nb_dof ( void  ) const

Total number of degrees of freedom in the model.

Definition at line 335 of file getfem_models.cc.

dim_type getfem::model::leading_dimension ( ) const
inline

Leading dimension of the meshes used in the model.

Definition at line 557 of file getfem_models.h.

std::string getfem::model::new_name ( const std::string &  name)

Gives a non already existing variable name begining by name.

Definition at line 219 of file getfem_models.cc.

const model_real_plain_vector & getfem::model::real_variable ( const std::string &  name,
size_type  niter 
) const

Gives the access to the vector value of a variable.

For the real version.

Definition at line 2943 of file getfem_models.cc.

const model_complex_plain_vector & getfem::model::complex_variable ( const std::string &  name,
size_type  niter 
) const

Gives the access to the vector value of a variable.

For the complex version.

Definition at line 2969 of file getfem_models.cc.

model_real_plain_vector & getfem::model::set_real_variable ( const std::string &  name,
size_type  niter 
) const

Gives the write access to the vector value of a variable.

Make a change flag of the variable set. For the real version.

Definition at line 2997 of file getfem_models.cc.

model_real_plain_vector & getfem::model::set_real_variable ( const std::string &  name) const

The same as above, but for either latest variable, or for the previous, if prefixed with "Old_".

Definition at line 2990 of file getfem_models.cc.

model_complex_plain_vector & getfem::model::set_complex_variable ( const std::string &  name,
size_type  niter 
) const

Gives the write access to the vector value of a variable.

Make a change flag of the variable set. For the complex version.

Definition at line 3025 of file getfem_models.cc.

void getfem::model::add_fixed_size_variable ( const std::string &  name,
size_type  size,
size_type  niter = 1 
)

Add a fixed size variable to the model assumed to be a vector.

niter is the number of version of the variable stored.

Definition at line 750 of file getfem_models.cc.

void getfem::model::add_fixed_size_variable ( const std::string &  name,
const bgeot::multi_index &  sizes,
size_type  niter = 1 
)

Add a fixed size variable to the model whith given tensor dimensions.

niter is the number of version of the variable stored.

Definition at line 760 of file getfem_models.cc.

void getfem::model::add_fixed_size_data ( const std::string &  name,
size_type  size,
size_type  niter = 1 
)

Add a fixed size data to the model.

niter is the number of version of the data stored, for time integration schemes.

Definition at line 795 of file getfem_models.cc.

void getfem::model::add_fixed_size_data ( const std::string &  name,
const bgeot::multi_index &  sizes,
size_type  niter = 1 
)

Add a fixed size data to the model.

niter is the number of version of the data stored, for time integration schemes.

Definition at line 804 of file getfem_models.cc.

void getfem::model::resize_fixed_size_variable ( const std::string &  name,
size_type  size 
)

Resize a fixed size variable (or data) of the model.

Definition at line 772 of file getfem_models.cc.

void getfem::model::resize_fixed_size_variable ( const std::string &  name,
const bgeot::multi_index &  sizes 
)

Resize a fixed size variable (or data) of the model.

Definition at line 784 of file getfem_models.cc.

template<typename VECT >
void getfem::model::add_initialized_fixed_size_data ( const std::string &  name,
const VECT &  v 
)
inline

Add a fixed size data (assumed to be a vector) to the model and initialized with v.

Definition at line 699 of file getfem_models.h.

template<typename VECT >
void getfem::model::add_initialized_fixed_size_data ( const std::string &  name,
const VECT &  v,
const bgeot::multi_index &  sizes 
)
inline

Add a fixed size data (assumed to be a vector) to the model and initialized with v.

Definition at line 711 of file getfem_models.h.

void getfem::model::add_initialized_matrix_data ( const std::string &  name,
const base_matrix &  M 
)

Add a fixed size data (assumed to be a matrix) to the model and initialized with M.

Definition at line 814 of file getfem_models.cc.

void getfem::model::add_initialized_tensor_data ( const std::string &  name,
const base_tensor &  t 
)

Add a fixed size data (assumed to be a tensor) to the model and initialized with t.

Definition at line 830 of file getfem_models.cc.

template<typename T >
void getfem::model::add_initialized_scalar_data ( const std::string &  name,
e 
)
inline

Add a scalar data (i.e.

of size 1) to the model initialized with e.

Definition at line 738 of file getfem_models.h.

void getfem::model::add_im_data ( const std::string &  name,
const im_data im_data,
size_type  niter = 1 
)

Add data, defined at integration points.

Definition at line 844 of file getfem_models.cc.

void getfem::model::add_fem_variable ( const std::string &  name,
const mesh_fem mf,
size_type  niter = 1 
)

Add a variable being the dofs of a finite element method to the model.

niter is the number of version of the variable stored, for time integration schemes.

Definition at line 853 of file getfem_models.cc.

void getfem::model::add_filtered_fem_variable ( const std::string &  name,
const mesh_fem mf,
size_type  region,
size_type  niter = 1 
)

Add a variable linked to a fem with the dof filtered with respect to a mesh region.

Only the dof returned by the dof_on_region method of mf will be kept. niter is the number of version of the data stored, for time integration schemes.

Definition at line 864 of file getfem_models.cc.

void getfem::model::add_affine_dependent_variable ( const std::string &  name,
const std::string &  org_name,
scalar_type  alpha = scalar_type(1) 
)

Add a "virtual" variable be an affine depedent variable with respect to another variable.

Mainly used for time integration scheme for instance to represent time derivative of variables. alpha is the multiplicative scalar of the dependency.

Definition at line 875 of file getfem_models.cc.

void getfem::model::add_fem_data ( const std::string &  name,
const mesh_fem mf,
dim_type  qdim = 1,
size_type  niter = 1 
)

Add a data being the dofs of a finite element method to the model.

Definition at line 889 of file getfem_models.cc.

void getfem::model::add_fem_data ( const std::string &  name,
const mesh_fem mf,
const bgeot::multi_index &  sizes,
size_type  niter = 1 
)

Add a data being the dofs of a finite element method to the model.

Definition at line 900 of file getfem_models.cc.

template<typename VECT >
void getfem::model::add_initialized_fem_data ( const std::string &  name,
const mesh_fem mf,
const VECT &  v 
)
inline

Add an initialized fixed size data to the model, assumed to be a vector field if the size of the vector is a multiple of the dof number.

Definition at line 784 of file getfem_models.h.

template<typename VECT >
void getfem::model::add_initialized_fem_data ( const std::string &  name,
const mesh_fem mf,
const VECT &  v,
const bgeot::multi_index &  sizes 
)
inline

Add a fixed size data to the model.

The data is a tensor of given sizes on each dof of the finite element method.

Definition at line 797 of file getfem_models.h.

void getfem::model::add_multiplier ( const std::string &  name,
const mesh_fem mf,
const std::string &  primal_name,
size_type  niter = 1 
)

Add a particular variable linked to a fem being a multiplier with respect to a primal variable.

The dof will be filtered with the gmm::range_basis function applied on the terms of the model which link the multiplier and the primal variable. Optimized for boundary multipliers. niter is the number of version of the data stored, for time integration schemes.

Definition at line 911 of file getfem_models.cc.

void getfem::model::add_multiplier ( const std::string &  name,
const mesh_fem mf,
size_type  region,
const std::string &  primal_name,
size_type  niter = 1 
)

Add a particular variable linked to a fem being a multiplier with respect to a primal variable and a region.

The dof will be filtered both with the gmm::range_basis function applied on the terms of the model which link the multiplier and the primal variable and on the dof on the given region. Optimized for boundary multipliers. niter is the number of version of the data stored, for time integration schemes.

Definition at line 923 of file getfem_models.cc.

void getfem::model::add_multiplier ( const std::string &  name,
const mesh_fem mf,
const std::string &  primal_name,
const mesh_im mim,
size_type  region,
size_type  niter = 1 
)

Add a particular variable linked to a fem being a multiplier with respect to a primal variable.

The dof will be filtered with the gmm::range_basis function applied on the mass matrix between the fem of the multiplier and the one of the primal variable. Optimized for boundary multipliers. niter is the number of version of the data stored, for time integration schemes.

Definition at line 935 of file getfem_models.cc.

const ga_macro_dictionnary& getfem::model::macro_dictionnary ( ) const
inline

Dictonnary of user defined macros.

Definition at line 839 of file getfem_models.h.

void getfem::model::add_macro ( const std::string &  name,
const std::string &  expr 
)

Add a macro definition for the high generic assembly langage.

This macro can be used for the definition of generic assembly bricks. The name of a macro cannot coincide with a variable name.

Definition at line 987 of file getfem_models.cc.

void getfem::model::del_macro ( const std::string &  name)

Delete a previously defined macro definition.

Definition at line 992 of file getfem_models.cc.

bool getfem::model::macro_exists ( const std::string &  name) const
inline

Says if a macro of that name has been defined.

Definition at line 850 of file getfem_models.h.

void getfem::model::delete_variable ( const std::string &  varname)

Delete a variable or data of the model.

Definition at line 1026 of file getfem_models.cc.

const mesh_fem & getfem::model::mesh_fem_of_variable ( const std::string &  name) const

Gives the access to the mesh_fem of a variable if any.

Throw an exception otherwise.

Definition at line 2872 of file getfem_models.cc.

const mesh_fem * getfem::model::pmesh_fem_of_variable ( const std::string &  name) const

Gives a pointer to the mesh_fem of a variable if any.

0 otherwise.

Definition at line 2878 of file getfem_models.cc.

const model_real_sparse_matrix& getfem::model::real_tangent_matrix ( ) const
inline

Gives the access to the tangent matrix.

For the real version.

Definition at line 868 of file getfem_models.h.

const model_complex_sparse_matrix& getfem::model::complex_tangent_matrix ( ) const
inline

Gives the access to the tangent matrix.

For the complex version.

Definition at line 875 of file getfem_models.h.

const model_real_plain_vector& getfem::model::real_rhs ( ) const
inline

Gives the access to the right hand side of the tangent linear system.

For the real version. An assembly of the rhs has to be done first.

Definition at line 883 of file getfem_models.h.

const model_real_plain_vector& getfem::model::real_brick_term_rhs ( size_type  ib,
size_type  ind_term = 0,
bool  sym = false,
size_type  ind_iter = 0 
) const
inline

Gives the access to the part of the right hand side of a term of a particular nonlinear brick.

Does not account of the eventual time dispatcher. An assembly of the rhs has to be done first. For the real version.

Definition at line 890 of file getfem_models.h.

const model_complex_plain_vector& getfem::model::complex_rhs ( ) const
inline

Gives access to the right hand side of the tangent linear system.

For the complex version.

Definition at line 907 of file getfem_models.h.

const model_complex_plain_vector& getfem::model::complex_brick_term_rhs ( size_type  ib,
size_type  ind_term = 0,
bool  sym = false,
size_type  ind_iter = 0 
) const
inline

Gives access to the part of the right hand side of a term of a particular nonlinear brick.

Does not account of the eventual time dispatcher. An assembly of the rhs has to be done first. For the real version.

Definition at line 914 of file getfem_models.h.

void getfem::model::listvar ( std::ostream &  ost) const

List the model variables and constant.

Definition at line 690 of file getfem_models.cc.

void getfem::model::listbricks ( std::ostream &  ost,
size_type  base_id = 0 
) const

List the model bricks.

Definition at line 1685 of file getfem_models.cc.

const dal::bit_vector& getfem::model::get_active_bricks ( ) const
inline

Return the model brick ids.

Definition at line 938 of file getfem_models.h.

void getfem::model::touch_brick ( size_type  ib)
inline

Force the re-computation of a brick for the next assembly.

Definition at line 943 of file getfem_models.h.

size_type getfem::model::add_brick ( pbrick  pbr,
const varnamelist &  varnames,
const varnamelist &  datanames,
const termlist &  terms,
const mimlist &  mims,
size_type  region 
)

Add a brick to the model.

varname is the list of variable used and datanames the data used. If a variable is used as a data, it should be declared in the datanames (it will depend on the value of the variable not only on the fem). Returns the brick index.

Definition at line 1071 of file getfem_models.cc.

void getfem::model::delete_brick ( size_type  ib)

Delete the brick of index ib from the model.

Definition at line 995 of file getfem_models.cc.

void getfem::model::add_mim_to_brick ( size_type  ib,
const mesh_im mim 
)

Add an integration method to a brick.

Definition at line 1120 of file getfem_models.cc.

void getfem::model::change_terms_of_brick ( size_type  ib,
const termlist &  terms 
)

Change the term list of a brick.

Used for very special bricks only.

Definition at line 1127 of file getfem_models.cc.

void getfem::model::change_variables_of_brick ( size_type  ib,
const varnamelist &  vl 
)

Change the variable list of a brick.

Used for very special bricks only.

Definition at line 1142 of file getfem_models.cc.

void getfem::model::change_data_of_brick ( size_type  ib,
const varnamelist &  vl 
)

Change the data list of a brick.

Used for very special bricks only.

Definition at line 1151 of file getfem_models.cc.

void getfem::model::change_mims_of_brick ( size_type  ib,
const mimlist &  ml 
)

Change the mim list of a brick.

Used for very special bricks only.

Definition at line 1160 of file getfem_models.cc.

void getfem::model::change_update_flag_of_brick ( size_type  ib,
bool  flag 
)

Change the update flag of a brick.

Used for very special bricks only.

Definition at line 1167 of file getfem_models.cc.

void getfem::model::add_time_dispatcher ( size_type  ibrick,
pdispatcher  pdispatch 
)

Add a time dispacther to a brick.

Definition at line 1641 of file getfem_models.cc.

void getfem::model::first_iter ( )
virtual

For transient problems.

Initialisation of iterations.

Definition at line 2000 of file getfem_models.cc.

void getfem::model::next_iter ( )
virtual

For transient problems.

Prepare the next iterations. In particular shift the version of the variables.

Definition at line 2024 of file getfem_models.cc.

const std::string & getfem::model::varname_of_brick ( size_type  ind_brick,
size_type  ind_var 
)

Gives the name of the variable of index ind_var of the brick of index ind_brick.

Definition at line 1669 of file getfem_models.cc.

const std::string & getfem::model::dataname_of_brick ( size_type  ind_brick,
size_type  ind_data 
)

Gives the name of the data of index ind_data of the brick of index ind_brick.

Definition at line 1677 of file getfem_models.cc.

void getfem::model::assembly ( build_version  version)
virtual

Assembly of the tangent system taking into account the terms from all bricks.

Definition at line 2385 of file getfem_models.cc.

std::string getfem::model::Neumann_term ( const std::string &  varname,
size_type  region 
)

Gives the assembly string corresponding to the Neumann term of the fem variable varname on region.

It is deduced from the assembly string declared by the model bricks. region should be the index of a boundary region on the mesh where varname is defined. Care to call this function only after all the volumic bricks have been declared. Complains, if a brick omit to declare an assembly string.

Definition at line 2334 of file getfem_models.cc.

void getfem::model::check_brick_stiffness_rhs ( size_type  ind_brick) const

check consistency of RHS and Stiffness matrix for brick with

Parameters
ind_brick- index of the brick

Definition at line 3080 of file getfem_models.cc.


The documentation for this class was generated from the following files: