suanPan
ElementBase Class Referenceabstract

A ElementBase class. More...

#include <ElementBase.h>

Inheritance diagram for ElementBase:
Collaboration diagram for ElementBase:

Public Member Functions

 ElementBase (const unsigned T)
 
 ElementBase (const ElementBase &)=delete
 
 ElementBase (ElementBase &&)=delete
 
ElementBaseoperator= (const ElementBase &)=delete
 
ElementBaseoperator= (ElementBase &&)=delete
 
 ~ElementBase () override=default
 
virtual int initialize_base (const shared_ptr< DomainBase > &)=0
 
virtual int initialize (const shared_ptr< DomainBase > &)=0
 
virtual void set_initialized (bool) const =0
 
virtual void set_symmetric (bool) const =0
 
virtual bool is_initialized () const =0
 
virtual bool is_symmetric () const =0
 
virtual bool is_nlgeom () const =0
 
virtual void update_dof_encoding ()=0
 
virtual bool if_update_mass () const =0
 
virtual bool if_update_damping () const =0
 
virtual bool if_update_stiffness () const =0
 
virtual bool if_update_geometry () const =0
 
virtual const uvec & get_dof_encoding () const =0
 
virtual const uvec & get_node_encoding () const =0
 
virtual const uvec & get_material_tag () const =0
 
virtual const uvec & get_section_tag () const =0
 
virtual unsigned get_dof_number () const =0
 
virtual unsigned get_node_number () const =0
 
virtual unsigned get_total_number () const =0
 
virtual void clear_node_ptr ()=0
 
virtual const std::vector< weak_ptr< Node > > & get_node_ptr () const =0
 
virtual const vec & get_trial_resistance () const =0
 
virtual const vec & get_current_resistance () const =0
 
virtual const vec & get_trial_damping_force () const =0
 
virtual const vec & get_current_damping_force () const =0
 
virtual const vec & get_trial_inertial_force ()=0
 
virtual const vec & get_current_inertial_force ()=0
 
virtual const vec & get_trial_body_force () const =0
 
virtual const vec & get_current_body_force () const =0
 
virtual const vec & get_trial_traction () const =0
 
virtual const vec & get_current_traction () const =0
 
virtual const mat & get_trial_mass () const =0
 
virtual const mat & get_trial_damping () const =0
 
virtual const mat & get_trial_stiffness () const =0
 
virtual const mat & get_trial_geometry () const =0
 
virtual const mat & get_trial_secant () const =0
 
virtual const mat & get_current_mass () const =0
 
virtual const mat & get_current_damping () const =0
 
virtual const mat & get_current_stiffness () const =0
 
virtual const mat & get_current_geometry () const =0
 
virtual const mat & get_current_secant () const =0
 
virtual const mat & get_initial_mass () const =0
 
virtual const mat & get_initial_damping () const =0
 
virtual const mat & get_initial_stiffness () const =0
 
virtual const mat & get_initial_geometry () const =0
 
virtual const mat & get_initial_secant () const =0
 
virtual int update_status ()=0
 
virtual int clear_status ()=0
 
virtual int commit_status ()=0
 
virtual int reset_status ()=0
 
virtual const vec & update_body_force (const vec &)=0
 
virtual const vec & update_traction (const vec &)=0
 
virtual std::vector< vec > record (OutputType)=0
 
virtual double get_strain_energy () const =0
 
virtual double get_complementary_energy () const =0
 
virtual double get_kinetic_energy () const =0
 
virtual double get_viscous_energy () const =0
 
virtual const vec & get_momentum () const =0
 
virtual double get_momentum_component (DOF) const =0
 
virtual double get_characteristic_length () const =0
 
virtual mat compute_shape_function (const mat &, unsigned) const =0
 
- Public Member Functions inherited from Tag
 Tag (unsigned=0)
 
 Tag (const Tag &)=default
 
 Tag (Tag &&)=default
 
Tagoperator= (const Tag &)=delete
 
Tagoperator= (Tag &&)=delete
 
virtual ~Tag ()=default
 
void set_tag (unsigned) const
 
unsigned get_tag () const
 
void enable ()
 
void disable ()
 
void guard ()
 
void unguard ()
 
bool is_active () const
 
bool is_guarded () const
 
virtual void print ()
 

Protected Member Functions

virtual mat get_coordinate (unsigned) const =0
 
virtual vec get_incre_displacement () const =0
 
virtual vec get_incre_velocity () const =0
 
virtual vec get_incre_acceleration () const =0
 
virtual vec get_trial_displacement () const =0
 
virtual vec get_trial_velocity () const =0
 
virtual vec get_trial_acceleration () const =0
 
virtual vec get_current_displacement () const =0
 
virtual vec get_current_velocity () const =0
 
virtual vec get_current_acceleration () const =0
 
virtual vec get_node_incre_resistance () const =0
 
virtual vec get_node_trial_resistance () const =0
 
virtual vec get_node_current_resistance () const =0
 
virtual std::vector< shared_ptr< Material > > get_material (const shared_ptr< DomainBase > &) const =0
 
virtual std::vector< shared_ptr< Section > > get_section (const shared_ptr< DomainBase > &) const =0
 

Friends

mat get_coordinate (const ElementBase *, unsigned)
 
vec get_incre_displacement (const ElementBase *)
 
vec get_incre_velocity (const ElementBase *)
 
vec get_incre_acceleration (const ElementBase *)
 
vec get_trial_displacement (const ElementBase *)
 
vec get_trial_velocity (const ElementBase *)
 
vec get_trial_acceleration (const ElementBase *)
 
vec get_current_displacement (const ElementBase *)
 
vec get_current_velocity (const ElementBase *)
 
vec get_current_acceleration (const ElementBase *)
 

Detailed Description

A ElementBase class.

Author
tlc
Date
10/01/2020
Version
0.1.0

Constructor & Destructor Documentation

◆ ElementBase() [1/3]

ElementBase::ElementBase ( const unsigned  T)
inlineexplicit
Here is the call graph for this function:
Here is the caller graph for this function:

◆ ElementBase() [2/3]

ElementBase::ElementBase ( const ElementBase )
delete

◆ ElementBase() [3/3]

ElementBase::ElementBase ( ElementBase &&  )
delete

◆ ~ElementBase()

ElementBase::~ElementBase ( )
overridedefault
Here is the caller graph for this function:

Member Function Documentation

◆ clear_node_ptr()

virtual void ElementBase::clear_node_ptr ( )
pure virtual

Implemented in Element.

Here is the caller graph for this function:

◆ clear_status()

virtual int ElementBase::clear_status ( )
pure virtual

Implemented in Element, GCMQ, SGCMQ, QE2, SGCMS, F31, DKTS3, Mass, DKT3, Contact3D, F21, CP4, MVLEM, DKT4, S4, PCPE4DC, PCPE8DC, Mindlin, F21H, CSMQ, GQ12, CINP4, B31, DCP4, PCPE4UC, PCPE8UC, PatchQuad, Contact2D, B21, B21H, C3D8, CSMT6, CP8, DC3D8, CSMQ4, CSMQ8, Allman, DCP3, CP4I, CP5, CP7, PatchCube, DC3D4, CP6, T2D2, CAX8, PS, C3D20, CIN3D8, CAX4, T3D2, CSMT3, Damper02, T2D2S, Damper01, EB21, T3D2S, B21E, NMB31, C3D4, C3D8I, Spring02, Embedded, NMB21, ElementTemplate, Joint, Spring01, CP3, CAX3, SingleSection2D, SingleSection3D, Tie, and ElementExample.

Here is the caller graph for this function:

◆ commit_status()

virtual int ElementBase::commit_status ( )
pure virtual

Implemented in Element, GCMQ, QE2, F31, SGCMQ, SGCMS, DKT3, Contact3D, F21, DKTS3, Mass, DKT4, CP4, MVLEM, S4, F21H, PCPE4DC, PCPE8DC, Mindlin, CSMQ, GQ12, Contact2D, CINP4, B31, DCP4, PCPE4UC, PCPE8UC, PatchQuad, B21, B21H, C3D8, CSMT6, CP8, DC3D8, CSMQ4, CSMQ8, Allman, DCP3, CP4I, CP5, CP7, PatchCube, DC3D4, CP6, T2D2, CAX8, PS, C3D20, CIN3D8, CAX4, T3D2, CSMT3, Damper02, T2D2S, Damper01, EB21, T3D2S, B21E, NMB31, C3D4, C3D8I, Embedded, Spring02, NMB21, ElementTemplate, Joint, Spring01, CP3, Tie, CAX3, SingleSection2D, SingleSection3D, and ElementExample.

Here is the caller graph for this function:

◆ compute_shape_function()

virtual mat ElementBase::compute_shape_function ( const mat &  ,
unsigned   
) const
pure virtual

Implemented in Element, GCMQ, QE2, SGCMQ, CP4, PCPE4DC, PCPE8DC, CSMQ, GQ12, PCPE4UC, PCPE8UC, C3D8, CP8, CSMQ4, CSMQ8, CP4I, CP5, CP7, PS, C3D20, and C3D8I.

Here is the caller graph for this function:

◆ get_characteristic_length()

virtual double ElementBase::get_characteristic_length ( ) const
pure virtual

Implemented in Element.

Here is the caller graph for this function:

◆ get_complementary_energy()

virtual double ElementBase::get_complementary_energy ( ) const
pure virtual

Implemented in Element.

Here is the caller graph for this function:

◆ get_coordinate()

virtual mat ElementBase::get_coordinate ( unsigned  ) const
protectedpure virtual

Implemented in Element.

◆ get_current_acceleration()

virtual vec ElementBase::get_current_acceleration ( ) const
protectedpure virtual

Implemented in Element.

◆ get_current_body_force()

virtual const vec& ElementBase::get_current_body_force ( ) const
pure virtual

Implemented in Element.

Here is the caller graph for this function:

◆ get_current_damping()

virtual const mat& ElementBase::get_current_damping ( ) const
pure virtual

Implemented in Element.

Here is the caller graph for this function:

◆ get_current_damping_force()

virtual const vec& ElementBase::get_current_damping_force ( ) const
pure virtual

Implemented in Element.

Here is the caller graph for this function:

◆ get_current_displacement()

virtual vec ElementBase::get_current_displacement ( ) const
protectedpure virtual

Implemented in Element.

◆ get_current_geometry()

virtual const mat& ElementBase::get_current_geometry ( ) const
pure virtual

Implemented in Element.

Here is the caller graph for this function:

◆ get_current_inertial_force()

virtual const vec& ElementBase::get_current_inertial_force ( )
pure virtual

Implemented in Element.

Here is the caller graph for this function:

◆ get_current_mass()

virtual const mat& ElementBase::get_current_mass ( ) const
pure virtual

Implemented in Element.

Here is the caller graph for this function:

◆ get_current_resistance()

virtual const vec& ElementBase::get_current_resistance ( ) const
pure virtual

Implemented in Element.

Here is the caller graph for this function:

◆ get_current_secant()

virtual const mat& ElementBase::get_current_secant ( ) const
pure virtual

Implemented in Element.

Here is the caller graph for this function:

◆ get_current_stiffness()

virtual const mat& ElementBase::get_current_stiffness ( ) const
pure virtual

Implemented in Element.

Here is the caller graph for this function:

◆ get_current_traction()

virtual const vec& ElementBase::get_current_traction ( ) const
pure virtual

Implemented in Element.

Here is the caller graph for this function:

◆ get_current_velocity()

virtual vec ElementBase::get_current_velocity ( ) const
protectedpure virtual

Implemented in Element.

◆ get_dof_encoding()

virtual const uvec& ElementBase::get_dof_encoding ( ) const
pure virtual

Implemented in Element.

Here is the caller graph for this function:

◆ get_dof_number()

virtual unsigned ElementBase::get_dof_number ( ) const
pure virtual

Implemented in Element.

Here is the caller graph for this function:

◆ get_incre_acceleration()

virtual vec ElementBase::get_incre_acceleration ( ) const
protectedpure virtual

Implemented in Element.

◆ get_incre_displacement()

virtual vec ElementBase::get_incre_displacement ( ) const
protectedpure virtual

Implemented in Element.

◆ get_incre_velocity()

virtual vec ElementBase::get_incre_velocity ( ) const
protectedpure virtual

Implemented in Element.

◆ get_initial_damping()

virtual const mat& ElementBase::get_initial_damping ( ) const
pure virtual

Implemented in Element.

Here is the caller graph for this function:

◆ get_initial_geometry()

virtual const mat& ElementBase::get_initial_geometry ( ) const
pure virtual

Implemented in Element.

Here is the caller graph for this function:

◆ get_initial_mass()

virtual const mat& ElementBase::get_initial_mass ( ) const
pure virtual

Implemented in Element.

Here is the caller graph for this function:

◆ get_initial_secant()

virtual const mat& ElementBase::get_initial_secant ( ) const
pure virtual

Implemented in Element.

Here is the caller graph for this function:

◆ get_initial_stiffness()

virtual const mat& ElementBase::get_initial_stiffness ( ) const
pure virtual

Implemented in Element.

Here is the caller graph for this function:

◆ get_kinetic_energy()

virtual double ElementBase::get_kinetic_energy ( ) const
pure virtual

Implemented in Element.

Here is the caller graph for this function:

◆ get_material()

virtual std::vector<shared_ptr<Material> > ElementBase::get_material ( const shared_ptr< DomainBase > &  ) const
protectedpure virtual

Implemented in Element.

◆ get_material_tag()

virtual const uvec& ElementBase::get_material_tag ( ) const
pure virtual

Implemented in Element.

Here is the caller graph for this function:

◆ get_momentum()

virtual const vec& ElementBase::get_momentum ( ) const
pure virtual

Implemented in Element.

Here is the caller graph for this function:

◆ get_momentum_component()

virtual double ElementBase::get_momentum_component ( DOF  ) const
pure virtual

Implemented in Element.

Here is the caller graph for this function:

◆ get_node_current_resistance()

virtual vec ElementBase::get_node_current_resistance ( ) const
protectedpure virtual

Implemented in Element.

◆ get_node_encoding()

virtual const uvec& ElementBase::get_node_encoding ( ) const
pure virtual

Implemented in Element.

Here is the caller graph for this function:

◆ get_node_incre_resistance()

virtual vec ElementBase::get_node_incre_resistance ( ) const
protectedpure virtual

Implemented in Element.

◆ get_node_number()

virtual unsigned ElementBase::get_node_number ( ) const
pure virtual

Implemented in Element.

Here is the caller graph for this function:

◆ get_node_ptr()

virtual const std::vector<weak_ptr<Node> >& ElementBase::get_node_ptr ( ) const
pure virtual

Implemented in Element.

Here is the caller graph for this function:

◆ get_node_trial_resistance()

virtual vec ElementBase::get_node_trial_resistance ( ) const
protectedpure virtual

Implemented in Element.

◆ get_section()

virtual std::vector<shared_ptr<Section> > ElementBase::get_section ( const shared_ptr< DomainBase > &  ) const
protectedpure virtual

Implemented in Element.

◆ get_section_tag()

virtual const uvec& ElementBase::get_section_tag ( ) const
pure virtual

Implemented in Element.

Here is the caller graph for this function:

◆ get_strain_energy()

virtual double ElementBase::get_strain_energy ( ) const
pure virtual

Implemented in Element.

Here is the caller graph for this function:

◆ get_total_number()

virtual unsigned ElementBase::get_total_number ( ) const
pure virtual

Implemented in Element.

Here is the caller graph for this function:

◆ get_trial_acceleration()

virtual vec ElementBase::get_trial_acceleration ( ) const
protectedpure virtual

Implemented in Element.

◆ get_trial_body_force()

virtual const vec& ElementBase::get_trial_body_force ( ) const
pure virtual

Implemented in Element.

Here is the caller graph for this function:

◆ get_trial_damping()

virtual const mat& ElementBase::get_trial_damping ( ) const
pure virtual

Implemented in Element.

Here is the caller graph for this function:

◆ get_trial_damping_force()

virtual const vec& ElementBase::get_trial_damping_force ( ) const
pure virtual

Implemented in Element.

Here is the caller graph for this function:

◆ get_trial_displacement()

virtual vec ElementBase::get_trial_displacement ( ) const
protectedpure virtual

Implemented in Element.

◆ get_trial_geometry()

virtual const mat& ElementBase::get_trial_geometry ( ) const
pure virtual

Implemented in Element.

Here is the caller graph for this function:

◆ get_trial_inertial_force()

virtual const vec& ElementBase::get_trial_inertial_force ( )
pure virtual

Implemented in Element.

Here is the caller graph for this function:

◆ get_trial_mass()

virtual const mat& ElementBase::get_trial_mass ( ) const
pure virtual

Implemented in Element.

Here is the caller graph for this function:

◆ get_trial_resistance()

virtual const vec& ElementBase::get_trial_resistance ( ) const
pure virtual

Implemented in Element.

Here is the caller graph for this function:

◆ get_trial_secant()

virtual const mat& ElementBase::get_trial_secant ( ) const
pure virtual

Implemented in Element.

Here is the caller graph for this function:

◆ get_trial_stiffness()

virtual const mat& ElementBase::get_trial_stiffness ( ) const
pure virtual

Implemented in Element.

Here is the caller graph for this function:

◆ get_trial_traction()

virtual const vec& ElementBase::get_trial_traction ( ) const
pure virtual

Implemented in Element.

Here is the caller graph for this function:

◆ get_trial_velocity()

virtual vec ElementBase::get_trial_velocity ( ) const
protectedpure virtual

Implemented in Element.

◆ get_viscous_energy()

virtual double ElementBase::get_viscous_energy ( ) const
pure virtual

Implemented in Element.

Here is the caller graph for this function:

◆ if_update_damping()

virtual bool ElementBase::if_update_damping ( ) const
pure virtual

Implemented in Element.

Here is the caller graph for this function:

◆ if_update_geometry()

virtual bool ElementBase::if_update_geometry ( ) const
pure virtual

Implemented in Element.

Here is the caller graph for this function:

◆ if_update_mass()

virtual bool ElementBase::if_update_mass ( ) const
pure virtual

Implemented in Element.

Here is the caller graph for this function:

◆ if_update_stiffness()

virtual bool ElementBase::if_update_stiffness ( ) const
pure virtual

Implemented in Element.

Here is the caller graph for this function:

◆ initialize()

virtual int ElementBase::initialize ( const shared_ptr< DomainBase > &  )
pure virtual

Implemented in GCMQ, QE2, SGCMQ, F31, SGCMS, DKT3, DKTS3, Contact3D, Mass, F21, DKT4, CP4, MVLEM, S4, PCPE4DC, PCPE8DC, F21H, Mindlin, CSMQ, GQ12, CINP4, Contact2D, B31, DCP4, PCPE4UC, PCPE8UC, PatchQuad, B21, B21H, C3D8, CSMT6, CP8, DC3D8, CSMQ4, CSMQ8, Allman, DCP3, CP4I, CP5, CP7, PatchCube, DC3D4, CP6, T2D2, CAX8, PS, C3D20, CIN3D8, CAX4, T3D2, CSMT3, Damper02, T2D2S, Damper01, EB21, T3D2S, NMB31, C3D4, C3D8I, Embedded, Spring02, NMB21, ElementTemplate, Joint, Spring01, CP3, CAX3, SingleSection2D, SingleSection3D, Tie, and ElementExample.

Here is the caller graph for this function:

◆ initialize_base()

virtual int ElementBase::initialize_base ( const shared_ptr< DomainBase > &  )
pure virtual

Implemented in Element.

Here is the caller graph for this function:

◆ is_initialized()

virtual bool ElementBase::is_initialized ( ) const
pure virtual

Implemented in Element.

Here is the caller graph for this function:

◆ is_nlgeom()

virtual bool ElementBase::is_nlgeom ( ) const
pure virtual

Implemented in Element.

Here is the caller graph for this function:

◆ is_symmetric()

virtual bool ElementBase::is_symmetric ( ) const
pure virtual

Implemented in Element.

Here is the caller graph for this function:

◆ operator=() [1/2]

ElementBase& ElementBase::operator= ( const ElementBase )
delete
Here is the caller graph for this function:

◆ operator=() [2/2]

ElementBase& ElementBase::operator= ( ElementBase &&  )
delete

◆ record()

virtual std::vector<vec> ElementBase::record ( OutputType  )
pure virtual

Implemented in Element, GCMQ, QE2, SGCMQ, F31, SGCMS, CP4, DKT3, DKTS3, F21, PCPE4DC, PCPE8DC, DKT4, MVLEM, S4, CSMQ, GQ12, F21H, Mindlin, PCPE4UC, PCPE8UC, C3D8, CINP4, B31, DCP4, CP8, PatchQuad, B21, B21H, CSMQ4, CSMQ8, CSMT6, CP4I, CP5, CP7, DC3D8, Allman, PS, DCP3, PatchCube, C3D20, DC3D4, CP6, T2D2, CAX8, CIN3D8, CAX4, T3D2, CSMT3, Damper02, T2D2S, C3D8I, Damper01, EB21, T3D2S, NMB31, C3D4, Spring02, NMB21, Joint, Spring01, CP3, and CAX3.

Here is the caller graph for this function:

◆ reset_status()

virtual int ElementBase::reset_status ( )
pure virtual

Implemented in Element, GCMQ, QE2, SGCMQ, F31, SGCMS, DKT3, DKTS3, Contact3D, Mass, F21, CP4, DKT4, MVLEM, S4, PCPE4DC, PCPE8DC, F21H, Mindlin, CSMQ, GQ12, CINP4, Contact2D, B31, DCP4, PCPE4UC, PCPE8UC, PatchQuad, B21, B21H, C3D8, CSMT6, CP8, DC3D8, CSMQ4, CSMQ8, Allman, DCP3, CP4I, CP5, CP7, PatchCube, DC3D4, CP6, T2D2, CAX8, PS, C3D20, CIN3D8, CAX4, T3D2, CSMT3, Damper02, T2D2S, Damper01, EB21, T3D2S, B21E, NMB31, C3D4, C3D8I, Embedded, Spring02, NMB21, ElementTemplate, Joint, Spring01, CP3, CAX3, SingleSection2D, SingleSection3D, Tie, and ElementExample.

Here is the caller graph for this function:

◆ set_initialized()

virtual void ElementBase::set_initialized ( bool  ) const
pure virtual

Implemented in Element.

Here is the caller graph for this function:

◆ set_symmetric()

virtual void ElementBase::set_symmetric ( bool  ) const
pure virtual

Implemented in Element.

Here is the caller graph for this function:

◆ update_body_force()

virtual const vec& ElementBase::update_body_force ( const vec &  )
pure virtual

Implemented in Element.

Here is the caller graph for this function:

◆ update_dof_encoding()

virtual void ElementBase::update_dof_encoding ( )
pure virtual

Implemented in Element.

Here is the caller graph for this function:

◆ update_status()

virtual int ElementBase::update_status ( )
pure virtual

Implemented in GCMQ, QE2, SGCMQ, F31, SGCMS, DKT3, DKTS3, Contact3D, Mass, F21, DKT4, CP4, MVLEM, S4, PCPE4DC, PCPE8DC, F21H, Mindlin, CSMQ, GQ12, CINP4, Contact2D, B31, DCP4, PCPE4UC, PCPE8UC, PatchQuad, B21, B21H, C3D8, CSMT6, CP8, DC3D8, CSMQ4, CSMQ8, Allman, DCP3, CP4I, CP5, CP7, PatchCube, DC3D4, CP6, T2D2, CAX8, PS, C3D20, CIN3D8, CAX4, T3D2, CSMT3, Damper02, T2D2S, Damper01, EB21, T3D2S, B21E, NMB31, C3D4, C3D8I, Embedded, Spring02, NMB21, ElementTemplate, Joint, Spring01, CP3, CAX3, SingleSection2D, SingleSection3D, Tie, and ElementExample.

Here is the caller graph for this function:

◆ update_traction()

virtual const vec& ElementBase::update_traction ( const vec &  )
pure virtual

Implemented in Element.

Here is the caller graph for this function:

Friends And Related Function Documentation

◆ get_coordinate

mat get_coordinate ( const ElementBase E,
unsigned  N 
)
friend

◆ get_current_acceleration

vec get_current_acceleration ( const ElementBase E)
friend

◆ get_current_displacement

vec get_current_displacement ( const ElementBase E)
friend

◆ get_current_velocity

vec get_current_velocity ( const ElementBase E)
friend

◆ get_incre_acceleration

vec get_incre_acceleration ( const ElementBase E)
friend

◆ get_incre_displacement

vec get_incre_displacement ( const ElementBase E)
friend

◆ get_incre_velocity

vec get_incre_velocity ( const ElementBase E)
friend

◆ get_trial_acceleration

vec get_trial_acceleration ( const ElementBase E)
friend

◆ get_trial_displacement

vec get_trial_displacement ( const ElementBase E)
friend

◆ get_trial_velocity

vec get_trial_velocity ( const ElementBase E)
friend

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