GetFEM
5.4.3
|
The virtual brick has to be derived to describe real model bricks. More...
#include <getfem_models.h>
Inherited by getfem::Coulomb_friction_brick, getfem::Dirichlet_condition_brick, getfem::Fourier_Robin_brick, getfem::Helmholtz_brick, getfem::KL_source_term_brick, getfem::Nitsche_large_sliding_contact_brick_raytracing, getfem::basic_d2_on_dt2_brick, getfem::basic_d_on_dt_brick, getfem::bilap_brick, getfem::gen_linear_assembly_brick, getfem::gen_nonlinear_assembly_brick, getfem::gen_source_term_assembly_brick, getfem::generic_elliptic_brick, getfem::have_private_data_brick, getfem::integral_contact_nonmatching_meshes_brick, getfem::integral_contact_rigid_obstacle_brick, getfem::integral_large_sliding_contact_brick, getfem::intergral_large_sliding_contact_brick_raytracing, getfem::iso_lin_elasticity_new_brick, getfem::linear_incompressibility_brick, getfem::lumped_mass_for_first_order_brick, getfem::mass_brick, getfem::nonlinear_elasticity_brick, getfem::nonlinear_incompressibility_brick, getfem::normal_derivative_Dirichlet_condition_brick, getfem::normal_derivative_source_term_brick, getfem::normal_source_term_brick, getfem::penalized_contact_nonmatching_meshes_brick, getfem::penalized_contact_rigid_obstacle_brick, getfem::pointwise_constraints_brick, getfem::simplification_Dirichlet_condition_brick, getfem::source_term_brick, and level_set_contact::level_set_contact_brick.
Public Member Functions | |
virtual void | asm_real_tangent_terms (const model &, size_type, const model::varnamelist &, const model::varnamelist &, const model::mimlist &, model::real_matlist &, model::real_veclist &, model::real_veclist &, size_type, build_version) const |
Assembly of bricks real tangent terms. More... | |
virtual void | asm_complex_tangent_terms (const model &, size_type, const model::varnamelist &, const model::varnamelist &, const model::mimlist &, model::complex_matlist &, model::complex_veclist &, model::complex_veclist &, size_type, build_version) const |
Assembly of bricks complex tangent terms. More... | |
virtual void | real_pre_assembly_in_serial (const model &, size_type, const model::varnamelist &, const model::varnamelist &, const model::mimlist &, model::real_matlist &, model::real_veclist &, model::real_veclist &, size_type, build_version) const |
Peform any pre assembly action for real term assembly. More... | |
virtual void | complex_pre_assembly_in_serial (const model &, size_type, const model::varnamelist &, const model::varnamelist &, const model::mimlist &, model::complex_matlist &, model::complex_veclist &, model::complex_veclist &, size_type, build_version) const |
Peform any pre assembly action for complex term assembly. More... | |
virtual void | real_post_assembly_in_serial (const model &, size_type, const model::varnamelist &, const model::varnamelist &, const model::mimlist &, model::real_matlist &, model::real_veclist &, model::real_veclist &, size_type, build_version) const |
Peform any post assembly action for real terms. More... | |
virtual void | complex_post_assembly_in_serial (const model &, size_type, const model::varnamelist &, const model::varnamelist &, const model::mimlist &, model::complex_matlist &, model::complex_veclist &, model::complex_veclist &, size_type, build_version) const |
Peform any post assembly action for complex terms. More... | |
void | check_stiffness_matrix_and_rhs (const model &, size_type, const model::termlist &tlist, const model::varnamelist &, const model::varnamelist &, const model::mimlist &, model::real_matlist &, model::real_veclist &, model::real_veclist &, size_type rg, const scalar_type delta=1e-8) const |
check consistency of stiffness matrix and rhs | |
virtual std::string | declare_volume_assembly_string (const model &, size_type, const model::varnamelist &, const model::varnamelist &) const |
The brick may declare an assembly string for the computation of the Neumann terms (in order to prescribe boundary conditions with Nitche's method). | |
The virtual brick has to be derived to describe real model bricks.
The set_flags method has to be called by the derived class. The virtual methods asm_real_tangent_terms and/or asm_complex_tangent_terms have to be defined. The brick should not store data. The data have to be stored in the model object.
Definition at line 1475 of file getfem_models.h.
|
inlinevirtual |
Assembly of bricks real tangent terms.
In case of Getfem's compilation with OpenMP option, this method is executed on multiple threads. The parallelism is provided by distributing all tangent matrices and vectors and accumulating them later into the original. Additionally, by default, all mesh_region objects, participating in the assembly, are also partitioned. In order to avoid data race conditions, this method should not modify any data simultaneously accessible from multiple threads. In case this is unavoidable, the race can be prevented by distributing this data (of type T) between the threads via getfem::omp_distribute<T> (prefered method) or protected from concurrent access with mutexes (e.g. getfem::omp_lock) or OpenMP critical section.
doesn't have to be overriden if serial pre- post- assemblies are defined
Reimplemented in level_set_contact::level_set_contact_brick.
Definition at line 1528 of file getfem_models.h.
|
inlinevirtual |
Assembly of bricks complex tangent terms.
In case of Getfem's compilation with OpenMP option, this method is executed on multiple threads. The parallelism is provided by distributing all tangent matrices and vectors and accumulating them later into the original. Additionally, by default, all mesh_region objects, participating in the assembly, are also partitioned. In order to avoid data race conditions, this method should not modify any data simultaneously accessible from multiple threads. In case this is unavoidable, the race can be prevented by distributing this data (of type T) between the threads via getfem::omp_distribute<T> (prefered method) or protected from concurrent access with mutexes (e.g. getfem::omp_lock) or OpenMP critical section.
doesn't have to be overriden if serial pre- post- assemblies are defined
Definition at line 1554 of file getfem_models.h.
|
inlinevirtual |
Peform any pre assembly action for real term assembly.
The purpose of this method is to do any action that cannot be peformed in the main assembly routines in parallel. Possible action can be modification of the model object, cashing some data that cannot be distributed etc.
Definition at line 1572 of file getfem_models.h.
|
inlinevirtual |
Peform any pre assembly action for complex term assembly.
The purpose of this method is to do any action that cannot be peformed in the main assembly routines in parallel. Possible action can be modification of the model object, cashing some data that cannot be distributed etc.
Definition at line 1586 of file getfem_models.h.
|
inlinevirtual |
Peform any post assembly action for real terms.
The purpose of this method is to do any action that cannot be peformed in the main assembly routines in parallel. Possible action can be modification of the model object, cashing some data that cannot be distributed etc.
Definition at line 1600 of file getfem_models.h.
|
inlinevirtual |
Peform any post assembly action for complex terms.
The purpose of this method is to do any action that cannot be peformed in the main assembly routines in parallel. Possible action can be modification of the model object, cashing some data that cannot be distributed etc.
Definition at line 1614 of file getfem_models.h.