/* Fesslix - Stochastic Analysis
 * Copyright (C) 2010-2016 Wolfgang Betz
 *
 * Fesslix is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Fesslix is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with Fesslix.  If not, see <http://www.gnu.org/licenses/>. 
 */

#ifndef fesslix_flxfem_element_beam_H
#define fesslix_flxfem_element_beam_H

#include "flxfem_elements.h"


/**
* @brief base class for 1D-elements
*/
class FLXFEM_EXPORT flxElement_1D_beam : public flxElement_1D_base {
  protected:
    flxDOFePtr DOFvec[6];
    
    void K(const tuint i, const tuint j, const tuint ElIdx, const tdouble& value);
    
    virtual const tdouble get_el_info_help(const FlxElementInfo::elInfo eI) const;
  public:
    flxElement_1D_beam(flxMaterial* material, flxCrossSec* crossSec, flxEdge& edge);
    ~flxElement_1D_beam() {}

    virtual void assembleStf(const tdouble* meshInterval, const tuint meshInterval_size);
};





#endif // fesslix_flxfem_element_beam_H