You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

41 lines
1.2 KiB

//
// Created by cflin on 6/12/23.
//
#ifndef TOP3D_THERMOELASTICTOP3D_H
#define TOP3D_THERMOELASTICTOP3D_H
#include "Top3d.h"
namespace da::sha::top {
class ThermoelasticTop3d {
public:
ThermoelasticTop3d(std::shared_ptr<Top3d> sp_mech_top3d, std::shared_ptr<Top3d> sp_thermal_top3d)
: sp_mech_top3d_(sp_mech_top3d), sp_thermal_top3d_(sp_thermal_top3d) {
}
void AddThermalDBC(const Eigen::MatrixXi &thermal_DBC_coords, double temperature) {
sp_thermal_top3d_->AddDBC(thermal_DBC_coords, temperature);
}
void AddThermalNBC(const Eigen::MatrixXi &thermal_NBC_coords, double heat_flux) {
sp_thermal_top3d_->AddNBC(thermal_NBC_coords, Eigen::Vector3d(heat_flux, 0, 0));
}
Tensor3d TopOptMainLoop() {
return sp_thermal_top3d_->TopOptMainLoop();
// return sp_mech_top3d_->TopOptMainLoop();
}
Eigen::VectorXd GetU() const {
return sp_thermal_top3d_->GetU();
// return sp_mech_top3d_->GetU();
}
private:
std::shared_ptr<Top3d> sp_mech_top3d_, sp_thermal_top3d_;
};
}
#endif //TOP3D_THERMOELASTICTOP3D_H