44    void init(
int branch_id_, 
size_t branch_internal_id_, 
size_t first_node_id_of_branch_) {
 
   45        branch_id = branch_id_;
 
   46        branch_internal_id = branch_internal_id_;
 
   47        first_node_id_of_branch = first_node_id_of_branch_;
 
   52    void set_subcase_id(
const int subcase_id_) { subcase_id = subcase_id_; }
 
   54    int get_subcase_id()
 const { 
return subcase_id; }
 
   56    Domain& get_domain() { 
return parent.get_domain(); }
 
   60    size_t get_branch_internal_id()
 const { 
return branch_internal_id; }
 
   62    bool have_temperature()
 const {
 
   63        auto it = node_temp_map.find(subcase_id);
 
   64        return (it != node_temp_map.end() && !it->second.empty());
 
   67    bool get_material_temperature(
 
   69          b2linalg::Vector<double, b2linalg::Vdense_constref> nodes_interpolation,
 
   70          const size_t nb_thickness_interpolation, 
const double thickness_interpolation[],
 
   71          const double time, 
double& temperature, 
double& d_temperature_d_time)
 const {
 
   73        d_temperature_d_time = 0;
 
   74        auto it = node_temp_map.find(subcase_id);
 
   75        if (it == node_temp_map.end() || it->second.empty()) { 
return false; }
 
   76        const NodeTempVector& node_temp_vector = it->second;
 
   78        std::pair<size_t, Node* const*> nodes = element->
get_nodes();
 
   79        for (
size_t k = 0; k != node_temp_vector.size(); ++k) {
 
   80            const NodeTemp& nt = node_temp_vector[k];
 
   81            if (nt.stage_number < current_stage) { 
continue; }
 
   84            if (nt.stage_number > current_stage) {
 
   88                scale = nt.scalef->value(time);
 
   89                scale_d = nt.scalef->d_value(time);
 
   93            if (nt.values.size1() < nb_thickness_interpolation) {
 
   94                Exception() << 
"Number of temperature values per node " 
   98            for (
size_t j = 0; j != nodes.first; ++j) {
 
   99                const size_t jj = nodes.second[j]->get_id() - first_node_id_of_branch;
 
  100                for (
size_t i = 0; i != nb_thickness_interpolation; ++i) {
 
  102                          thickness_interpolation[i] * nodes_interpolation[j] * nt.values(i, jj);
 
  103                    temperature += f * scale;
 
  104                    d_temperature_d_time += f * scale_d;
 
  116        b2linalg::Matrix<double, b2linalg::Mrectangle> values;
 
  117        TimeFunction* scalef;
 
  120    typedef std::vector<NodeTemp> NodeTempVector;
 
  121    typedef std::map<int, NodeTempVector> NodeTempVectorMap;
 
  124    size_t branch_internal_id{};
 
  125    size_t first_node_id_of_branch{};
 
  129    NodeTempVectorMap node_temp_map;
 
 
Definition b2domain_property.H:28
 
A in-core implementation of the b2dbv3::Domain. All the Element, Node and ElementProperty objects are...
Definition b2domain_database.H:62