GetFEM++  5.3
level_set_contact::level_set_contact_brick Class Reference

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). More...
 

Detailed Description

assembles normal contact terms on the boundary of two contact bodies (master/slave)

Definition at line 471 of file getfem_level_set_contact.h.

Member Function Documentation

void level_set_contact::level_set_contact_brick::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
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.


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