|
From: <de...@us...> - 2011-12-04 22:27:42
|
Revision: 6788
http://fudaa.svn.sourceforge.net/fudaa/?rev=6788&view=rev
Author: deniger
Date: 2011-12-04 22:27:35 +0000 (Sun, 04 Dec 2011)
Log Message:
-----------
Modified Paths:
--------------
trunk/business/dodico-h2d/core/src/main/java/org/fudaa/dodico/h2d/rubar/H2dRubarBcMng.java
trunk/business/dodico-h2d/io/src/main/java/org/fudaa/dodico/rubar/io/RubarOutReader.java
Added Paths:
-----------
trunk/business/dodico-h2d/io/src/test/resources/org/fudaa/dodico/rubar/io/lmfa05.cn
Modified: trunk/business/dodico-h2d/core/src/main/java/org/fudaa/dodico/h2d/rubar/H2dRubarBcMng.java
===================================================================
--- trunk/business/dodico-h2d/core/src/main/java/org/fudaa/dodico/h2d/rubar/H2dRubarBcMng.java 2011-12-04 22:25:16 UTC (rev 6787)
+++ trunk/business/dodico-h2d/core/src/main/java/org/fudaa/dodico/h2d/rubar/H2dRubarBcMng.java 2011-12-04 22:27:35 UTC (rev 6788)
@@ -141,9 +141,8 @@
* @param _areteIdxGlobalTarage idxArete->Loi de tarage
* @param _l le listener du projet
*/
- protected boolean create(final H2dRubarProjetType _type, final H2dRubarGridAreteSource _s,
- final H2dRubarTimeConditionInterface[] _liquidIdxTimeCl, final TIntObjectHashMap _areteIdxGlobalTarage,
- final ProgressionInterface _in, final CtuluAnalyze _an, final boolean[] _cliChanged) {
+ protected boolean create(final H2dRubarProjetType _type, final H2dRubarGridAreteSource _s, final H2dRubarTimeConditionInterface[] _liquidIdxTimeCl,
+ final TIntObjectHashMap _areteIdxGlobalTarage, final ProgressionInterface _in, final CtuluAnalyze _an, final boolean[] _cliChanged) {
type_ = (_type == null ? H2dRubarProjetType.COURANTOLOGIE_2D : _type);
// initialisation des champs deja crees
// maillage
@@ -237,20 +236,31 @@
}
final int[] idxGlobalFromIdxAreteLimiteEntrante = _s.getIdxAreteLimiteEntrante();
nb = idxGlobalFromIdxAreteLimiteEntrante == null ? 0 : idxGlobalFromIdxAreteLimiteEntrante.length;
+ //TODO a modifier ici.
+ //Des aretes externes sont mal d\xE9finies: il faut mettre un message de warn au lieu de fatal error:
+ //Des conditions limites liquides sont mal d\xE9finies (fichier dat), des valeur par d\xE9faut ont \xE9t\xE9 charg\xE9es.
+ //pas faire de return false.
+ //mettre _liquidIdxTimeCl \xE0 null
+ boolean messageConLimDone=false;
if (nb != externeTrans.size()) {
if (isAllLibre && nb == 0) {
FuLog.warning(" free edges only");
} else {
_an.addFatalError(H2dResource.getS("Des conditions limites liquides sont mal d\xE9finies (fichier dat)"));
FuLog.all("aretes calcule\n" + CtuluLibString.arrayToString(externeTrans.toNativeArray()) + "\naretes lu"
- + CtuluLibString.arrayToString(idxGlobalFromIdxAreteLimiteEntrante) + "\nnb lus= " + nb + " nb attendu "
- + externeTrans.size());
+ + CtuluLibString.arrayToString(idxGlobalFromIdxAreteLimiteEntrante) + "\nnb lus= " + nb + " nb attendu " + externeTrans.size());
+ messageConLimDone=true;
return false;
}
}
+ //TODO idem ici:
+ //mettre un message et *la traduction* comme quoi on charge des valeurs par d\xE9faut:
+ //Des conditions limites liquides sont mal d\xE9finies (fichier dat), des valeur par d\xE9faut ont \xE9t\xE9 charg\xE9es.
+ //mettre _liquidIdxTimeCl \xE0 null
+ //pas faire return false mais mettre _liquidIdxTimeCl ce qui obligera de charge des conditions limites par defaut.
if (nb > 0) {
externeTrans.sort();
- if (!Arrays.equals(externeTrans.toNativeArray(), CtuluLibArray.copy(idxGlobalFromIdxAreteLimiteEntrante))) {
+ if (!messageConLimDone && !Arrays.equals(externeTrans.toNativeArray(), CtuluLibArray.copy(idxGlobalFromIdxAreteLimiteEntrante))) {
_an.addFatalError(H2dResource.getS("Des conditions limites liquides sont mal d\xE9finies (fichier dat)"));
return false;
}
@@ -263,15 +273,14 @@
as = g.getRubarArete(idx);
final List list = getVariableAllowed(as.getType());
if ((list != null) && (list.size() > 0)) {
- H2dRubarTimeCondition timeS = _liquidIdxTimeCl == null ? null : (H2dRubarTimeCondition.create(
- _liquidIdxTimeCl[i], this));
+ H2dRubarTimeCondition timeS = _liquidIdxTimeCl == null ? null : (H2dRubarTimeCondition.create(_liquidIdxTimeCl[i], this));
// on cree des cl par defaut
if (timeS == null) {
timeNotDefined.add(idx);
timeS = new H2dRubarTimeCondition(null, null, null, null, null);
timeS.verify(list, null, idx, H2dRubarBcMng.this);
}
- // on verifie que toutes les courbes soient correctes
+ // on verifie que toutes les courbes sont correctes
else {
timeS.verify(list, _an, idx, this);
}
@@ -334,8 +343,7 @@
private CtuluPermanentList timeVars_;
- protected void setProjectDispatcher(final H2dRubarProjectDispatcherListener _old,
- final H2dRubarProjectDispatcherListener _new) {
+ protected void setProjectDispatcher(final H2dRubarProjectDispatcherListener _old, final H2dRubarProjectDispatcherListener _new) {
if (_old != null) {
removeListener(_old);
removeEvolutionListener(_old);
@@ -382,7 +390,9 @@
* @return les aretes entrantes dans l'ordre utilise par le fichier dat.
*/
protected int[] getAreteEntrante() {
- if ((externeAretes_ == null) || (externeAretes_.length == 0)) { return new int[0]; }
+ if ((externeAretes_ == null) || (externeAretes_.length == 0)) {
+ return new int[0];
+ }
final TIntArrayList l = new TIntArrayList(externeAretes_.length);
for (int i = 0; i < externeAretes_.length; i++) {
if (externeAretes_[i].isExternAndLiquidAndTransient(type_)) {
@@ -407,8 +417,7 @@
* @param _elementsVoisinsParArete
* @param _elementsVoisinsParElement
*/
- public GridSrcAdapter(final int _nbDecimal, final int[][] _elementsVoisinsParElement,
- final int[][] _elementsVoisinsParArete) {
+ public GridSrcAdapter(final int _nbDecimal, final int[][] _elementsVoisinsParElement, final int[][] _elementsVoisinsParArete) {
super(g_, null);
nbDecimal_ = _nbDecimal;
// System.err.println("nb Decimal= "+nbDecimal_);
@@ -447,9 +456,10 @@
}
private void createDefaultCurves() {
- if (defaultEvolForConcentration_ != null) { return; }
- defaultEvolForConcentration_ = H2dRubarEvolution.createH2dRubarEvolution(H2dVariableTransType.CONCENTRATION,
- new EvolutionReguliere(), this);
+ if (defaultEvolForConcentration_ != null) {
+ return;
+ }
+ defaultEvolForConcentration_ = H2dRubarEvolution.createH2dRubarEvolution(H2dVariableTransType.CONCENTRATION, new EvolutionReguliere(), this);
defaultEvolForConcentration_.setNom(H2dResource.getS("D\xE9faut"));
}
@@ -511,7 +521,9 @@
}
public void iterateOnTarageCurves(final H2dEvolutionUseCounter _m) {
- if (tarages_ == null) { return; }
+ if (tarages_ == null) {
+ return;
+ }
for (int i = 0; i < getNbBcArete(); i++) {
final int global = getGlobalIdx(i);
final EvolutionReguliereInterface evol = tarages_.getEvol(global);
@@ -646,7 +658,9 @@
public H2dRubarTimeConditionInterface[] getCliInOrder() {
H2dRubarTimeConditionInterface[] r = null;
final int[] idx = getAreteEntrante();
- if (idx == null) { return null; }
+ if (idx == null) {
+ return null;
+ }
r = new H2dRubarTimeConditionInterface[idx.length];
for (int i = 0; i < idx.length; i++) {
final int globalIdx = idx[i];
@@ -669,11 +683,15 @@
public boolean hasDataForCli() {
final int[] idx = getAreteEntrante();
- if (idx == null) { return false; }
+ if (idx == null) {
+ return false;
+ }
for (int i = 0; i < idx.length; i++) {
final int globalIdx = idx[i];
final H2dRubarBoundaryType type = g_.getRubarArete(globalIdx).getType();
- if (!H2dRubarBcTypeList.TARAGE.equals(type) && !H2dRubarBcTypeList.CRITIQUE.equals(type)) { return true; }
+ if (!H2dRubarBcTypeList.TARAGE.equals(type) && !H2dRubarBcTypeList.CRITIQUE.equals(type)) {
+ return true;
+ }
}
return false;
}
@@ -687,8 +705,8 @@
* @param _mem
* @return true si modif
*/
- protected boolean updateTimeValues(final int _idxGlobal, final List _v, final H2dRubarTimeCondition _timeSource,
- final AreteMemento _mem, final H2dRubarBoundaryType _newType) {
+ protected boolean updateTimeValues(final int _idxGlobal, final List _v, final H2dRubarTimeCondition _timeSource, final AreteMemento _mem,
+ final H2dRubarBoundaryType _newType) {
H2dRubarTimeCondition mem = null;
H2dRubarTimeCondition toModify = (H2dRubarTimeCondition) timeCl_.get(_idxGlobal);
if ((toModify != null) && (_mem != null)) {
@@ -725,15 +743,25 @@
}
protected boolean verifyTimeData(final int[] _areteIdx, final H2dRubarBoundaryType _t, final H2dRubarTimeCondition _s) {
- if (_t.isTypeDebitGlobal()) { return verifyGroupDebit(_t, _s); }
+ if (_t.isTypeDebitGlobal()) {
+ return verifyGroupDebit(_t, _s);
+ }
final List l = getVariableRequired(_t);
- if ((l == null) || (l.size() == 0)) { return true; }
+ if ((l == null) || (l.size() == 0)) {
+ return true;
+ }
final List varNotSet = _s.isVariableRequiredSet(l);
- if (varNotSet == null) { return true; }
+ if (varNotSet == null) {
+ return true;
+ }
for (int i = _areteIdx.length - 1; i >= 0; i--) {
final H2dRubarTimeCondition c = (H2dRubarTimeCondition) timeCl_.get(_areteIdx[i]);
- if (c == null) { return false; }
- if (!c.isVariableSet(varNotSet)) { return false; }
+ if (c == null) {
+ return false;
+ }
+ if (!c.isVariableSet(varNotSet)) {
+ return false;
+ }
}
return true;
@@ -767,11 +795,11 @@
public CtuluPermanentList getAllTimeVar() {
if (timeVars_ == null) {
if (type_ == H2dRubarProjetType.COURANTOLOGIE_2D) {
- timeVars_ = new CtuluPermanentList(CtuluLibArray.sort(new Object[] { H2dVariableType.DEBIT_NORMAL,
- H2dVariableType.DEBIT_TANGENTIEL, H2dVariableType.COTE_EAU }));
+ timeVars_ = new CtuluPermanentList(CtuluLibArray.sort(new Object[] { H2dVariableType.DEBIT_NORMAL, H2dVariableType.DEBIT_TANGENTIEL,
+ H2dVariableType.COTE_EAU }));
} else {
- timeVars_ = new CtuluPermanentList(CtuluLibArray.sort(new Object[] { H2dVariableType.DEBIT_NORMAL,
- H2dVariableType.DEBIT_TANGENTIEL, H2dVariableType.COTE_EAU, H2dVariableTransType.CONCENTRATION }));
+ timeVars_ = new CtuluPermanentList(CtuluLibArray.sort(new Object[] { H2dVariableType.DEBIT_NORMAL, H2dVariableType.DEBIT_TANGENTIEL,
+ H2dVariableType.COTE_EAU, H2dVariableTransType.CONCENTRATION }));
}
}
return timeVars_;
@@ -797,7 +825,9 @@
* @return les valeurs communes a ces index
*/
public H2dRubarTimeConditionCommon getCommonTimeCondition(final int[] _ar) {
- if ((_ar == null) || (_ar.length == 0)) { return H2dRubarTimeConditionCommon.getEmptyCommon(); }
+ if ((_ar == null) || (_ar.length == 0)) {
+ return H2dRubarTimeConditionCommon.getEmptyCommon();
+ }
H2dRubarArete a = g_.getRubarArete(_ar[0]);
H2dRubarTimeConditionCommon r0 = null;
if (a.getType().isTypeDebitGlobal()) {
@@ -816,7 +846,9 @@
} else {
r0.keepSameEvolution((H2dRubarTimeCondition) timeCl_.get(_ar[i]));
}
- if (r0.isNothingInCommons()) { return r0; }
+ if (r0.isNothingInCommons()) {
+ return r0;
+ }
}
return r0;
}
@@ -870,7 +902,9 @@
*/
public List getUsedBoundaryType() {
final Set r = new HashSet(15);
- if (externeAretes_ == null) { return Collections.EMPTY_LIST; }
+ if (externeAretes_ == null) {
+ return Collections.EMPTY_LIST;
+ }
for (int i = externeAretes_.length - 1; i >= 0; i--) {
r.add(externeAretes_[i].getType());
}
@@ -884,7 +918,9 @@
* @return la list des variables correspondantes
*/
public List getVariableAllowed(final H2dRubarBoundaryType _t) {
- if (_t == null) { return null; }
+ if (_t == null) {
+ return null;
+ }
return _t.getAllowedVariable(type_);
}
@@ -916,12 +952,18 @@
* @return true si le type de bord est utilise
*/
public boolean isUsedBoundaryType(final H2dRubarBoundaryType _t) {
- if (externeAretes_ == null || _t == null) { return false; }
- if (_t.isSolide()) { return externeAretes_.length != timeCl_.size(); }
+ if (externeAretes_ == null || _t == null) {
+ return false;
+ }
+ if (_t.isSolide()) {
+ return externeAretes_.length != timeCl_.size();
+ }
final TIntObjectIterator it = timeCl_.iterator();
for (int i = timeCl_.size(); i-- > 0;) {
it.advance();
- if (_t == g_.getRubarArete(it.key()).getType()) { return true; }
+ if (_t == g_.getRubarArete(it.key()).getType()) {
+ return true;
+ }
}
return false;
}
@@ -1002,10 +1044,12 @@
* @param _h l'evo utilisee par defaut pour la hauteur d'eau
* @return la commande si modif TODO transport
*/
- public CtuluCommand setDefined(final H2dRubarBoundaryFlowrateGroupType _t, final H2dRubarEvolution _qn,
- final H2dRubarEvolution _qt, final H2dRubarEvolution _h) {
+ public CtuluCommand setDefined(final H2dRubarBoundaryFlowrateGroupType _t, final H2dRubarEvolution _qn, final H2dRubarEvolution _qt,
+ final H2dRubarEvolution _h) {
final H2dRubarEvolution h = _h == H2dRubarParameters.NON_TORENTIEL ? null : _h;
- if (isDefined(_t)) { return null; }
+ if (isDefined(_t)) {
+ return null;
+ }
if (flowrateGroups_ == null) {
flowrateGroups_ = new TreeMap();
}
@@ -1037,13 +1081,16 @@
* @param _type le type concerne qn,qt ou h
* @return la commande ou null si aucune modif
*/
- public CtuluCommand setEvolution(final H2dRubarBoundaryFlowrateGroupType _t, final H2dRubarEvolution _evolInit,
- final H2dVariableType _type) {
- if (!isDefined(_t)) { return null; }
+ public CtuluCommand setEvolution(final H2dRubarBoundaryFlowrateGroupType _t, final H2dRubarEvolution _evolInit, final H2dVariableType _type) {
+ if (!isDefined(_t)) {
+ return null;
+ }
final H2dRubarEvolution evol = _evolInit == H2dRubarParameters.NON_TORENTIEL ? null : _evolInit;
final H2dRubarTimeCondition r = getGroupTimeCondition(_t);
final H2dRubarEvolution old = r.getEvol(_type);
- if (old == evol) { return null; }
+ if (old == evol) {
+ return null;
+ }
final CtuluCommandCompositeInverse cmd = new CtuluCommandCompositeInverse();
r.setEvolution(_type, evol, cmd);
fireFlowrateGroupChanged(_t);
@@ -1072,7 +1119,9 @@
* @return la commande si modif
*/
public CtuluCommand setUndefined(final H2dRubarBoundaryFlowrateGroupType _t) {
- if (!isDefined(_t) || isUsedBoundaryType(_t)) { return null; }
+ if (!isDefined(_t) || isUsedBoundaryType(_t)) {
+ return null;
+ }
final H2dRubarTimeCondition timeMem = (H2dRubarTimeCondition) flowrateGroups_.remove(_t);
fireFlowrateGroupChanged(_t);
return new CtuluCommand() {
@@ -1090,7 +1139,9 @@
}
public static void groupCommonsCurves(final TIntObjectHashMap _idxCl) {
- if (_idxCl == null) { return; }
+ if (_idxCl == null) {
+ return;
+ }
final Object[] o = _idxCl.getValues();
if (!CtuluLibArray.isEmpty(o)) {
Modified: trunk/business/dodico-h2d/io/src/main/java/org/fudaa/dodico/rubar/io/RubarOutReader.java
===================================================================
--- trunk/business/dodico-h2d/io/src/main/java/org/fudaa/dodico/rubar/io/RubarOutReader.java 2011-12-04 22:25:16 UTC (rev 6787)
+++ trunk/business/dodico-h2d/io/src/main/java/org/fudaa/dodico/rubar/io/RubarOutReader.java 2011-12-04 22:27:35 UTC (rev 6788)
@@ -15,7 +15,6 @@
import org.fudaa.ctulu.CtuluLib;
import org.fudaa.ctulu.CtuluLibString;
-
import org.fudaa.dodico.fortran.FileOpReadCharSimpleAbstract;
import org.fudaa.dodico.h2d.resource.H2dResource;
import org.fudaa.dodico.mesure.EvolutionReguliere;
Added: trunk/business/dodico-h2d/io/src/test/resources/org/fudaa/dodico/rubar/io/lmfa05.cn
===================================================================
--- trunk/business/dodico-h2d/io/src/test/resources/org/fudaa/dodico/rubar/io/lmfa05.cn (rev 0)
+++ trunk/business/dodico-h2d/io/src/test/resources/org/fudaa/dodico/rubar/io/lmfa05.cn 2011-12-04 22:27:35 UTC (rev 6788)
@@ -0,0 +1,12 @@
+ 2.6250000000 .77000000000 5.0
+ 2.6250000000 .70000000000 5.0
+ 2.7750000000 .70000000000 5.0
+ 2.7750000000 .77000000000 5.0
+ 2.6250000000 .77000000000 5.0
+ 999.999 999.999 999.999
+ 2.8250000000 .77000000000 6.0
+ 2.8250000000 .70000000000 6.0
+ 2.9750000000 .70000000000 6.0
+ 2.9750000000 .77000000000 6.0
+ 2.8250000000 .77000000000 6.0
+ 999.999 999.999 999.999
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|