GetFEM
5.4.2
|
assembles normal contact terms on the boundary of two contact bodies (master/slave) More...
#include <getfem_level_set_contact.h>
Inherits getfem::virtual_brick.
Public Member Functions | |
virtual void | asm_real_tangent_terms (const model &md, size_type, const model::varnamelist &vl, const model::varnamelist &dl, const model::mimlist &mims, model::real_matlist &matl, model::real_veclist &vecl, model::real_veclist &, size_type region, build_version version) const |
Assembly of bricks real tangent terms. More... | |
Public Member Functions inherited from getfem::virtual_brick | |
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). | |
assembles normal contact terms on the boundary of two contact bodies (master/slave)
Definition at line 471 of file getfem_level_set_contact.h.
|
virtual |
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 from getfem::virtual_brick.
Definition at line 632 of file getfem_level_set_contact.cc.