2#include "PoissonModule.h"
4#include <arcane/MathUtils.h>
5#include <arcane/IParallelMng.h>
6#include <arcane/ITimeLoopMng.h>
22 applyBoundaryConditions();
30 Real max_delta_cell_t = 0;
41 Real delta_cell_t = math::abs(new_cell_t - m_cell_temperature[icell]);
42 max_delta_cell_t = math::max(max_delta_cell_t, delta_cell_t);
45 m_cell_temperature[icell] = new_cell_t;
56 applyBoundaryConditions();
59 if (max_delta_cell_t < 0.2) subDomain()->timeLoopMng()->stopComputeLoop(
true);
65void PoissonModule::applyBoundaryConditions()
68 int nb_boundary_condition = options()->boundaryCondition.size();
69 for (
int i = 0; i < nb_boundary_condition; ++i)
71 FaceGroup face_group = options()->boundaryCondition[i]->surface();
72 Real temperature = options()->boundaryCondition[i]->value();
73 TypesPoisson::eBoundaryCondition type = options()->boundaryCondition[i]->type();
78 const Face & face = * iface;
79 Integer nb_node = face.
nbNode();
86 case TypesPoisson::Temperature:
87 m_node_temperature[inode] = temperature;
89 case TypesPoisson::Unknown:
NodeConnectedListViewType nodes() const
Liste des noeuds de l'entité
Int32 nbNode() const
Nombre de noeuds de l'entité
virtual void initTemperatures()
virtual void propagateTemperatures()
ItemEnumeratorT< Node > NodeEnumerator
Enumérateurs sur des noeuds.
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
double Real
Type représentant un réel.