QUADTH.h 1.24 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56
// This file is a part of nla3d project. For information about authors and
// licensing go to project's repository on github:
// https://github.com/dmitryikh/nla3d 

#pragma once
#include "elements/element.h"
#include "elements/isoparametric.h"
#include "FEStorage.h"
#include "solidmech.h"

namespace nla3d {

//4-node 2D QUAD  element for steady thermal analysis
class ElementQUADTH : public ElementIsoParamQUAD {
  public:
    ElementQUADTH () {
      intOrder = 2;
      type = ElementType::QUADTH;
    }

    //solving procedures
    void pre();
    void buildK();
    void buildC();
    void buildM() { };
    void update();
    math::Mat<2,4> make_B (uint16 nPoint);  // make derivatives matrix

    // conductivity coef ( W/(K m), for example)
    double k = 0.0;
    double rho = 0.0; // density
    double c = 0.0; // capacity

    // volume flux
    double volFlux = 0.0;
};

class SurfaceLINETH : public ElementIsoParamLINE {
  public:
    SurfaceLINETH () {
      intOrder = 2;
      type = ElementType::SurfaceLINETH;
    }

    //solving procedures
    void pre();
    void buildK();
    void buildC() { };
    void buildM() { };
    void update();

    double flux = 0.0;
    double htc = 0.0;
    math::Vec<2> etemp = {0.0, 0.0};
};
} // nla3d namespace