Update of /cvsroot/fudaa/fudaa_devel/dodico/src/org/fudaa/dodico/reflux/io
In directory sc8-pr-cvs1:/tmp/cvs-serv23146/reflux/io
Modified Files:
CLTransitoireFileFormat.java CorEleBthFileFormat.java
INPFileFormat.java INPReader.java INPWriter.java
PnTransitoireFileFormat.java
Log Message:
Ajout de fonctionnalites au modele h2d
Index: CLTransitoireFileFormat.java
===================================================================
RCS file: /cvsroot/fudaa/fudaa_devel/dodico/src/org/fudaa/dodico/reflux/io/CLTransitoireFileFormat.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -C2 -d -r1.4 -r1.5
*** CLTransitoireFileFormat.java 25 Nov 2003 10:11:49 -0000 1.4
--- CLTransitoireFileFormat.java 11 Dec 2003 12:41:28 -0000 1.5
***************
*** 52,55 ****
--- 52,59 ----
return new CLTransitoireFileFormat.CLVersion();
}
+
+ public FileFormatVersion getLastVersionInstance(){
+ return getLastVersionImpl();
+ }
public class CLVersion extends FileFormatVersion {
public CLVersion() {
Index: CorEleBthFileFormat.java
===================================================================
RCS file: /cvsroot/fudaa/fudaa_devel/dodico/src/org/fudaa/dodico/reflux/io/CorEleBthFileFormat.java,v
retrieving revision 1.9
retrieving revision 1.10
diff -C2 -d -r1.9 -r1.10
*** CorEleBthFileFormat.java 25 Nov 2003 10:11:50 -0000 1.9
--- CorEleBthFileFormat.java 11 Dec 2003 12:41:28 -0000 1.10
***************
*** 9,12 ****
--- 9,13 ----
package org.fudaa.dodico.reflux.io;
import java.io.File;
+
import org.fudaa.dodico.commun.ProgressionInterface;
import org.fudaa.dodico.fichiers.FileFormat;
***************
*** 31,35 ****
return INSTANCE;
}
- private CorEleBthVersion lastVersion_;
protected CorEleBthFileFormat() {
super(NB_FILE);
--- 32,35 ----
***************
*** 44,49 ****
type_= H2dFileFormatType.MAILLAGE.getId();
}
! public class CorEleBthVersion
! extends FileFormatVersion
implements H2dFileFormatMaillageVersion {
public CorEleBthVersion(String _version) {
--- 44,53 ----
type_= H2dFileFormatType.MAILLAGE.getId();
}
!
! public FileFormatVersion getLastVersionInstance() {
! return getLastVersionImpl();
! }
!
! public class CorEleBthVersion extends FileFormatVersion
implements H2dFileFormatMaillageVersion {
public CorEleBthVersion(String _version) {
***************
*** 118,121 ****
--- 122,148 ----
return write(_f, inter, _prog);
}
+ /**
+ *
+ */
+ public FileOperationSynthese readGrid(
+ File _f,
+ ProgressionInterface _prog) {
+ FileOperationSynthese f= read(_f, _prog);
+ if (f == null)
+ return f;
+ CorEleBthInterface in= (CorEleBthInterface)f.getSource();
+ if (in == null)
+ return f;
+ f.setSource(in.getMaillage());
+ return f;
+ }
+
+ /**
+ *
+ */
+ public boolean canWriteOnlyGrid() {
+ return true;
+ }
+
}
/**
***************
*** 128,130 ****
--- 155,164 ----
return new CorEleBthVersion(getLastVersion());
}
+ /**
+ *
+ */
+ public boolean containsGrid() {
+ return true;
+ }
+
}
Index: INPFileFormat.java
===================================================================
RCS file: /cvsroot/fudaa/fudaa_devel/dodico/src/org/fudaa/dodico/reflux/io/INPFileFormat.java,v
retrieving revision 1.12
retrieving revision 1.13
diff -C2 -d -r1.12 -r1.13
*** INPFileFormat.java 25 Nov 2003 10:11:50 -0000 1.12
--- INPFileFormat.java 11 Dec 2003 12:41:28 -0000 1.13
***************
*** 13,39 ****
import java.util.Iterator;
import java.util.List;
! import java.util.Locale;
! import com.memoire.fu.FuLib;
import org.fudaa.dodico.commun.DodicoLib;
import org.fudaa.dodico.commun.ProgressionInterface;
- import org.fudaa.dodico.dico.DicoCasFileFormat;
import org.fudaa.dodico.dico.DicoCasFileFormatAbstract;
- import org.fudaa.dodico.dico.DicoCasFileFormatVersion;
import org.fudaa.dodico.dico.DicoCasFileFormatVersionAbstract;
- import org.fudaa.dodico.dico.DicoCasReader;
- import org.fudaa.dodico.dico.DicoCasWriter;
import org.fudaa.dodico.dico.DicoEntite;
import org.fudaa.dodico.dico.DicoEntiteGenerate;
import org.fudaa.dodico.dico.DicoEntiteList;
import org.fudaa.dodico.dico.DicoLanguage;
- import org.fudaa.dodico.dico.DicoManager;
import org.fudaa.dodico.fichiers.FileFormatSoftware;
import org.fudaa.dodico.fichiers.FileOperationSynthese;
import org.fudaa.dodico.fichiers.FileReadOperationAbstract;
import org.fudaa.dodico.fichiers.FileWriteOperationAbstract;
import org.fudaa.dodico.h2d.H2dResource;
import org.fudaa.dodico.h2d.reflux.H2dRefluxDicoModel;
- import org.fudaa.dodico.h2d.type.H2dBoundaryType;
import org.fudaa.dodico.h2d.type.H2dBcType;
import org.fudaa.dodico.h2d.type.H2dFileFormatType;
import org.fudaa.dodico.h2d.type.H2dVariableType;
--- 13,36 ----
import java.util.Iterator;
import java.util.List;
!
import org.fudaa.dodico.commun.DodicoLib;
import org.fudaa.dodico.commun.ProgressionInterface;
import org.fudaa.dodico.dico.DicoCasFileFormatAbstract;
import org.fudaa.dodico.dico.DicoCasFileFormatVersionAbstract;
import org.fudaa.dodico.dico.DicoEntite;
import org.fudaa.dodico.dico.DicoEntiteGenerate;
import org.fudaa.dodico.dico.DicoEntiteList;
import org.fudaa.dodico.dico.DicoLanguage;
import org.fudaa.dodico.fichiers.FileFormatSoftware;
+ import org.fudaa.dodico.fichiers.FileFormatVersion;
import org.fudaa.dodico.fichiers.FileOperationSynthese;
import org.fudaa.dodico.fichiers.FileReadOperationAbstract;
import org.fudaa.dodico.fichiers.FileWriteOperationAbstract;
+ import org.fudaa.dodico.h2d.H2dFileFormatMaillageVersion;
+ import org.fudaa.dodico.h2d.H2dGrid;
import org.fudaa.dodico.h2d.H2dResource;
import org.fudaa.dodico.h2d.reflux.H2dRefluxDicoModel;
import org.fudaa.dodico.h2d.type.H2dBcType;
+ import org.fudaa.dodico.h2d.type.H2dBoundaryType;
import org.fudaa.dodico.h2d.type.H2dFileFormatType;
import org.fudaa.dodico.h2d.type.H2dVariableType;
***************
*** 59,63 ****
type_= H2dFileFormatType.PROJET.getId();
}
! public class INPVersion extends DicoCasFileFormatVersionAbstract {
public INPVersion(String _version) {
super(getInstance(), new H2dRefluxDicoModel(_version));
--- 56,71 ----
type_= H2dFileFormatType.PROJET.getId();
}
!
! public boolean containsGrid() {
! return true;
! }
!
! public FileFormatVersion getLastVersionInstance() {
! return getLastVersionImpl();
! }
!
! public class INPVersion
! extends DicoCasFileFormatVersionAbstract
! implements H2dFileFormatMaillageVersion {
public INPVersion(String _version) {
super(getInstance(), new H2dRefluxDicoModel(_version));
***************
*** 249,259 ****
return 3;
} /**
! * Renvoie le format concernant la ligne declarant le bloc Coor.
! */
public int[] getCOORFormat() {
return new int[] { 5, 15, 5, 5 };
} /**
! * Renvoie le format concernant les lignes declarant les coordonnées.
! */
public int[] getTroisDoubleFormat() {
return new int[] { 10, 10, 10 };
--- 257,267 ----
return 3;
} /**
! * Renvoie le format concernant la ligne declarant le bloc Coor.
! */
public int[] getCOORFormat() {
return new int[] { 5, 15, 5, 5 };
} /**
! * Renvoie le format concernant les lignes declarant les coordonnées.
! */
public int[] getTroisDoubleFormat() {
return new int[] { 10, 10, 10 };
***************
*** 452,455 ****
--- 460,496 ----
return null;
}
+ /**
+ *
+ */
+ public boolean canWriteOnlyGrid() {
+ return false;
+ }
+
+ /**
+ *
+ */
+ public FileOperationSynthese readGrid(
+ File _f,
+ ProgressionInterface _prog) {
+ FileOperationSynthese o= read(_f, _prog);
+ if (o == null)
+ return null;
+ INPInterface inter= (INPInterface)o.getSource();
+ if (inter == null)
+ return o;
+ o.setSource(inter.getMaillage());
+ return o;
+ }
+
+ /**
+ *
+ */
+ public FileOperationSynthese writeMaillage(
+ File _f,
+ H2dGrid _m,
+ ProgressionInterface _prog) {
+ return null;
+ }
+
}
/**
Index: INPReader.java
===================================================================
RCS file: /cvsroot/fudaa/fudaa_devel/dodico/src/org/fudaa/dodico/reflux/io/INPReader.java,v
retrieving revision 1.12
retrieving revision 1.13
diff -C2 -d -r1.12 -r1.13
*** INPReader.java 25 Nov 2003 10:11:51 -0000 1.12
--- INPReader.java 11 Dec 2003 12:41:28 -0000 1.13
***************
*** 57,70 ****
TIntDoubleHashMap fixe;
TIntArrayList libre;
- String nom_;
int taille_;
TIntObjectHashMap transitoire;
H2dVariableType type_;
! TemplateGroupeElement(H2dVariableType _type, int _taille) {
! this(_taille);
! type_= _type;
! nom_= type_.getNom();
! }
! TemplateGroupeElement(int _taille) {
taille_= _taille;
libre= new TIntArrayList(taille_);
--- 57,66 ----
TIntDoubleHashMap fixe;
TIntArrayList libre;
int taille_;
TIntObjectHashMap transitoire;
H2dVariableType type_;
! String nom_;
! TemplateGroupeElement(String _nom, int _taille) {
! nom_= _nom;
taille_= _taille;
libre= new TIntArrayList(taille_);
***************
*** 73,85 ****
}
/**
- * Le nom du groupe et sa taille maximale.
- * @param _taille le nombre d'element max de ce groupe: c'est
- * donc l'indice max egalement
- */
- TemplateGroupeElement(String _nom, int _taille) {
- taille_= _taille;
- nom_= _nom;
- }
- /**
* Ajoute en tant que prop permanente de valeur <code>_v</code>
* l'indice <code>_i</code> (si inferieur a la taille max).
--- 69,72 ----
***************
*** 135,140 ****
}
H2dNodalPropertyMixte r=
! new H2dNodalPropertyMixte(nom_, type_, libre, fixe, transitoire);
! r.computeFixe();
return r;
}
--- 122,126 ----
}
H2dNodalPropertyMixte r=
! new H2dNodalPropertyMixte(nom_, fixe, transitoire);
return r;
}
***************
*** 659,663 ****
temp2= fmt.length;
//Ce chiffre indique le nombre de courbe que doit contenir
! //finalement le fichier clv.
//NOTE : les courbes sont stockes dans la liste evols
// projet_.setNbCLTransitoires(courbeTransitoireCLIndex);
--- 645,649 ----
temp2= fmt.length;
//Ce chiffre indique le nombre de courbe que doit contenir
! //finalement le fichier pnv.
//NOTE : les courbes sont stockes dans la liste evols
// projet_.setNbCLTransitoires(courbeTransitoireCLIndex);
***************
*** 1021,1051 ****
TemplateGroupeElement[] propElem= new TemplateGroupeElement[temp];
//on connait le nom des 4 premieres prop. Pour les autres, PROP+ indices.
! if (temp > 4) {
! for (int i= 4; i < temp - 1; i++) {
! propElem[i]= new TemplateGroupeElement("PROP " + i, nbElemFond);
! }
! temp1= 4;
! }
! //On affecte les noms pour les connus.
! switch (temp) {
! case 4 :
! propElem[3]=
! new TemplateGroupeElement(H2dVariableType.PERTE_CHARGE, nbElemFond);
! case 3 :
! propElem[2]=
! new TemplateGroupeElement(
! H2dVariableType.ALPHA_LONGUEUR_MELANGE,
! nbElemFond);
! case 2 :
! propElem[1]=
! new TemplateGroupeElement(H2dVariableType.RUGOSITE, nbElemFond);
! case 1 :
! propElem[0]=
! new TemplateGroupeElement(H2dVariableType.VISCOSITE, nbElemFond);
}
//Format: 16 colonnes de largeur 5 (entier)
fmt= version_.getSeizeEntierFormat();
//temp=le nombre de prop elementaire
! temp= propElem.length;
//le nombre d'entier sur une ligne
temp1= fmt.length;
--- 1007,1017 ----
TemplateGroupeElement[] propElem= new TemplateGroupeElement[temp];
//on connait le nom des 4 premieres prop. Pour les autres, PROP+ indices.
! for (int i= temp-1; i >=0; i--) {
! propElem[i]= new TemplateGroupeElement("PROP " + (i+1), nbElemFond);
}
//Format: 16 colonnes de largeur 5 (entier)
fmt= version_.getSeizeEntierFormat();
//temp=le nombre de prop elementaire
! //temp= propElem.length;
//le nombre d'entier sur une ligne
temp1= fmt.length;
***************
*** 1093,1096 ****
--- 1059,1063 ----
}
}
+ Double viscositeTransit=null;
for (int i= 0; i < nbGroupe; i++) {
//Attention: les prop elementaires normales sont donnees puis celle
***************
*** 1145,1150 ****
if (code == clTransitoire) {
codeFinal= H2dBcType.TRANSITOIRE;
- // evol= new H2dEvolution("PN" + (courbeTransitoirePnIndex++));
- // evols.add(evol);
} else {
codeFinal= H2dBcType.LIBRE;
--- 1112,1115 ----
***************
*** 1161,1166 ****
//les indices des points concernes
int itemp= indexElement - nbElemFond;
- // int[] elemBordRugosite= elemBord[itemp].getIndex();
- // int t= elemBordRugosite.length;
H2dBoundaryType bordType= elemBord[itemp].getBord();
if (bordType != H2dBoundaryType.SOLIDE) {
--- 1126,1129 ----
***************
*** 1205,1209 ****
//indexEnCours=nb prop lu.
//temp=le nombre de prop elementaire
! if (indexEnCours != temp) {
analyze_.addWarning(
H2dResource.getS(
--- 1168,1176 ----
//indexEnCours=nb prop lu.
//temp=le nombre de prop elementaire
! if(temp2==0){
! in_.readFields(fmt);
! viscositeTransit=new Double(in_.doubleField(0));
! }
! else if (indexEnCours != temp) {
analyze_.addWarning(
H2dResource.getS(
***************
*** 1386,1390 ****
H2dTimeStepGroup gt= new H2dTimeStepGroup();
//le nombre de pas de temps
! gt.setNbPasTemps(Integer.parseInt(sTemp));
sTemp= in_.readLine().trim();
if (sTemp.equals(refluxProjetNom)) {
--- 1353,1357 ----
H2dTimeStepGroup gt= new H2dTimeStepGroup();
//le nombre de pas de temps
! int nbTemps=Integer.parseInt(sTemp);
sTemp= in_.readLine().trim();
if (sTemp.equals(refluxProjetNom)) {
***************
*** 1399,1402 ****
--- 1366,1370 ----
if (schema != null) {
gt.setSchema(schema);
+ gt.setNbPasTemps(nbTemps);
//si non stationnaire on peut lire les donnees
if (schema != H2dResolutionSchemaType.STATIONNAIRE) {
***************
*** 1432,1435 ****
--- 1400,1410 ----
gt.setMethode(meth);
}
+ if(meth.needViscosity()){
+ double d=0;
+ if(viscositeTransit==null){ System.out.println("prob with transit viscosity"); }
+ else d=viscositeTransit.doubleValue();
+ if(DodicoLib.DEBUG) System.out.println("DEBUG: transit viscosity value= "+d);
+ gt.setMethodeValue(H2dVariableType.VISCOSITE, d);
+ }
gt.setRelaxation(in_.doubleField(1));
gt.setPrecision(in_.doubleField(2));
***************
*** 1496,1500 ****
} catch (EOFException _e) {
if (DodicoLib.DEBUG)
! System.out.println("DEBUG: End of file");
if (!foundEntete) {
analyze_.addFatalError(H2dResource.getS("Fichier invalide"), in_);
--- 1471,1475 ----
} catch (EOFException _e) {
if (DodicoLib.DEBUG)
! DodicoLib.debug("End of file for inp file");
if (!foundEntete) {
analyze_.addFatalError(H2dResource.getS("Fichier invalide"), in_);
Index: INPWriter.java
===================================================================
RCS file: /cvsroot/fudaa/fudaa_devel/dodico/src/org/fudaa/dodico/reflux/io/INPWriter.java,v
retrieving revision 1.9
retrieving revision 1.10
diff -C2 -d -r1.9 -r1.10
*** INPWriter.java 25 Nov 2003 10:11:51 -0000 1.9
--- INPWriter.java 11 Dec 2003 12:41:28 -0000 1.10
***************
*** 10,13 ****
--- 10,14 ----
import gnu.trove.TIntArrayList;
import gnu.trove.TIntHashSet;
+ import gnu.trove.TIntObjectHashMap;
import java.io.File;
import java.io.FileWriter;
***************
*** 15,18 ****
--- 16,20 ----
import java.util.ArrayList;
import java.util.Arrays;
+ import java.util.Collections;
import java.util.HashMap;
import java.util.Iterator;
***************
*** 515,522 ****
H2dRefluxBoundaryCondition cli;
CLGroup temp= new CLGroup();
! for (DodicoIntIterator it= m.getFrontiers().getFrontierIterator();
! it.hasNext();
! ) {
! cli= _inter.getConditionLimite(it.next());
//h
if (cli.getHType() != H2dBcType.LIBRE) {
--- 517,525 ----
H2dRefluxBoundaryCondition cli;
CLGroup temp= new CLGroup();
! TIntObjectHashMap globIdxBc=
! new TIntObjectHashMap(m.getFrontiers().getNbTotalPt());
! for (int i= m.getFrontiers().getNbTotalPt() - 1; i >= 0; i--) {
! cli= _inter.getConditionLimite(i);
! globIdxBc.put(cli.getIndexPt(), cli);
//h
if (cli.getHType() != H2dBcType.LIBRE) {
***************
*** 572,577 ****
out_.writeFields(version_.getTroisDoubleFormat());
ArrayList l= (ArrayList)clGroupeCL.get(temp);
indexEnCours= 0;
! //pour le sero final
int nbl= l.size() + 1;
fmt= version_.getSeizeEntierFormat();
--- 575,581 ----
out_.writeFields(version_.getTroisDoubleFormat());
ArrayList l= (ArrayList)clGroupeCL.get(temp);
+ Collections.sort(l);
indexEnCours= 0;
! //pour le zero final
int nbl= l.size() + 1;
fmt= version_.getSeizeEntierFormat();
***************
*** 624,628 ****
int normalId= version_.getCodePermanent();
for (int i= 0; i < nbPoint; i++) {
! cli= _inter.getConditionLimite(i);
if (cli == null) {
itemp1= 0;
--- 628,632 ----
int normalId= version_.getCodePermanent();
for (int i= 0; i < nbPoint; i++) {
! cli= (H2dRefluxBoundaryCondition)globIdxBc.get(i);
if (cli == null) {
itemp1= 0;
***************
*** 655,659 ****
double d1, d2;
for (int i= 0; i < nbPoint; i++) {
! cli= _inter.getConditionLimite(i);
if (cli == null) {
d1= 0d;
--- 659,663 ----
double d1, d2;
for (int i= 0; i < nbPoint; i++) {
! cli= (H2dRefluxBoundaryCondition)globIdxBc.get(i);
if (cli == null) {
d1= 0d;
***************
*** 798,802 ****
tempEvols[j]= null;
} else {
! tempVal[j]= gpEl[j].getPermanentValueForIndex(i);
tempEvols[j]= null;
}
--- 802,806 ----
tempEvols[j]= null;
} else {
! tempVal[j]= gpEl[j].getPermanentValueFor(i);
tempEvols[j]= null;
}
***************
*** 868,874 ****
return;
}
- out_.stringField(0, version_.getPREL());
- out_.intField(2, grpFond.size());
out_.intField(3, gpEl.length);
out_.writeFields(version_.getPRELFormat());
indexEnCours= 0;
--- 872,883 ----
return;
}
out_.intField(3, gpEl.length);
+ out_.stringField(0, version_.getPREL());
+ Double viscosityVal=
+ H2dTimeStepGroup.isViscosityTransitUsed(_inter.getGroupePasTemps());
+ if (viscosityVal != null)
+ out_.intField(2, grpFond.size() + 1);
+ else
+ out_.intField(2, grpFond.size());
out_.writeFields(version_.getPRELFormat());
indexEnCours= 0;
***************
*** 893,896 ****
--- 902,919 ----
egp.addEvolInList(pnTransitoireCourbeList);
}
+ if (viscosityVal != null) {
+ int code= version_.getCode(H2dBcType.PERMANENT);
+ for (int i= gpEl.length - 1; i >= 0; i--) {
+ out_.intField(i, code);
+ }
+ out_.writeFields(fmt);
+ for (int i= gpEl.length - 1; i > 0; i--) {
+ out_.doubleField(i, 0d);
+ }
+ System.out.println("vale="+viscosityVal.doubleValue());
+ out_.doubleField(0, viscosityVal.doubleValue());
+ out_.writeFields(fmt2);
+
+ }
out_.println();
out_.println();
***************
*** 968,972 ****
out_.stringField(0, schema.getRefluxId());
out_.doubleField(1, gpTemps[i].getValeurPasTemps());
! out_.doubleField(1, gpTemps[i].getCoefSchema());
out_.writeFields(version_.getFLUTSchemaResolutionFormat());
}
--- 991,995 ----
out_.stringField(0, schema.getRefluxId());
out_.doubleField(1, gpTemps[i].getValeurPasTemps());
! out_.doubleField(2, gpTemps[i].getCoefSchema());
out_.writeFields(version_.getFLUTSchemaResolutionFormat());
}
Index: PnTransitoireFileFormat.java
===================================================================
RCS file: /cvsroot/fudaa/fudaa_devel/dodico/src/org/fudaa/dodico/reflux/io/PnTransitoireFileFormat.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** PnTransitoireFileFormat.java 25 Nov 2003 10:11:51 -0000 1.3
--- PnTransitoireFileFormat.java 11 Dec 2003 12:41:28 -0000 1.4
***************
*** 43,46 ****
--- 43,50 ----
type_= H2dFileFormatType.COURBE_TRANSITOIRE.getId();
}
+
+ public FileFormatVersion getLastVersionInstance(){
+ return getLastVersionImpl();
+ }
/**
*
|