Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
# description section (required)
[description]
name : New_algo_qc
author : A. Toutant
cpp_flags: -Wno-shadow
# executable :

# dependencies section (optional)
# dependencies format is the following
#
# dependency_name : /path/to/dependency
# The prerequisite1 to fftw has been moved to the kernel

[dependencies]
IJK_Kernel: ../IJK_Kernel
# actually, basic doesn't have dependencies
Original file line number Diff line number Diff line change
@@ -0,0 +1,141 @@
# Generate an initial condition with div(u)=0 for vdf and ijk comparison #
# Save both reprise and lata format #
# PARALLEL OK #
dimension 3
Pb_Thermohydraulique_QC pb

Domaine dom

MaillerParallel
{
domain dom
nb_nodes 3 33 9 17
splitting 3 1 1 1
ghost_thickness 2
perio_x
perio_y
function_coord_x 0.187528*x
function_coord_y 0.046882*y
function_coord_z 0.029846*z
boundary_xmin periox
boundary_xmax periox
boundary_ymin perioy
boundary_ymax perioy
boundary_zmin bas
boundary_zmax haut
}

VDF dis

Runge_Kutta_ordre_3_QC sch
Lire sch
{
tinit 0.
tmax 20
dt_min 1.e-11
dt_max 1.
dt_impr 1.e-7
dt_sauv 1
seuil_statio 1.e-8
nb_pas_dt_max 5 # condition initiale prise apres 5 pas de temps #
}

Fluide_Quasi_Compressible fluide
Lire fluide
{
mu Champ_Fonc_Fonction 1 temperature_qc (1.461e-6*(val^1.5)/(val+111.))
lambda Champ_Fonc_Fonction 1 temperature_qc (1.93198026315789000e-3*val^1.5)/(val+111.)
pression 214072
loi_etat gaz_parfait { Prandtl 0.71 Cp 1005 gamma 1.4 }
}

Associer pb dom
Associer pb sch
Associer pb fluide

Discretiser pb dis

IJK_discretization vdf_to_ijk

Lire vdf_to_ijk
{
vdf_problem pb
splitting 3 1 1 1
perio_i
perio_j
}

Lire pb
{
Navier_Stokes_QC
{
solveur_pression multigrille_adrien
{
coarsen_operators 2
Coarsen_Operator_Uniform { coarsen_i 1 coarsen_j 1 coarsen_k 2 }
Coarsen_Operator_Uniform { coarsen_i 1 coarsen_j 1 coarsen_k 2 }


ghost_size 1
pre_smooth_steps 1 10
smooth_steps 1 10
relax_jacobi 1 0.65
solveur_grossier GCP { seuil 0.5e-17 precond ssor { omega 1.5 } }
check_residu 0
seuil 2.5e-16
nb_full_mg_steps 2 20 1
solver_precision double

}
convection { centre4 }
diffusion { }
conditions_initiales
{
vitesse champ_fonc_xyz dom 3
SIN(z*3.14159265358979/0.029846)*0.01+SIN(2*z*3.14159265358979/0.029846)*2
SIN(z*3.14159265358979/0.029846)*SIN(2*x*3.14159265358979/0.187528)*SIN(4*y*3.14159265358979/0.046882)*0.05
SIN(z*3.14159265358979/0.029846)*SIN(4*x*3.14159265358979/0.187528)*SIN(2*y*3.14159265358979/0.046882)*0.05
}
conditions_limites
{
periox periodique
perioy periodique
haut paroi_fixe
bas paroi_fixe
}
}
Convection_Diffusion_Chaleur_QC
{
diffusion { }
convection { quick }
Sources { }
conditions_initiales { Temperature Champ_fonc_xyz dom 1
273+(600-273)*(z/0.029846)+SIN(z*3.14159265358979/0.029846)*SIN(4*x*3.14159265358979/0.187528)*400
}
conditions_limites
{
periox periodique
perioy periodique
haut paroi_echange_externe_impose T_ext Champ_Front_Uniforme 1 600 H_imp Champ_Front_Uniforme 1 1.e14
bas paroi_echange_externe_impose T_ext Champ_Front_Uniforme 1 273 H_imp Champ_Front_Uniforme 1 1.e14
}
}

Postraitement
{

format lata
# postraiter uniquement l'etat a la fin du calcul #
Champs dt_post 1000
{
vitesse faces
temperature_qc elem
masse_volumique elem
}
}
sauvegarde cond_initial.sauv
}
Resoudre pb

Fin

Original file line number Diff line number Diff line change
@@ -0,0 +1,138 @@
# ThermoHydraulique 3D : canal quasi compressible gaz parfait VDF turbulent #
# PARALLEL OK #
dimension 3
Pb_Thermohydraulique_QC pb

Domaine dom

MaillerParallel
{
domain dom
nb_nodes 3 33 9 17
splitting 3 1 1 1
ghost_thickness 2
perio_x
perio_y
function_coord_x 0.187528*x
function_coord_y 0.046882*y
function_coord_z 0.029846*z
boundary_xmin periox
boundary_xmax periox
boundary_ymin perioy
boundary_ymax perioy
boundary_zmin bas
boundary_zmax haut
}

VDF dis

Runge_Kutta_ordre_3_QC sch
Lire sch
{
tinit 0.
tmax 20
dt_min 1.e-11
dt_max 1.
dt_impr 1.e-7
dt_sauv 100
seuil_statio 1.e-8
nb_pas_dt_max 50
}

Fluide_Quasi_Compressible fluide
Lire fluide
{
mu Champ_Fonc_Fonction 1 temperature_qc (1.461e-6*(val^1.5)/(val+111.))
lambda Champ_Fonc_Fonction 1 temperature_qc (1.93198026315789000e-3*val^1.5)/(val+111.)
pression 214072
loi_etat gaz_parfait { Prandtl 0.71 Cp 1005 gamma 1.4 }
}

Associer pb dom
Associer pb sch
Associer pb fluide

Discretiser pb dis

IJK_discretization vdf_to_ijk

Lire vdf_to_ijk
{
vdf_problem pb
splitting 3 1 1 1
perio_i
perio_j
}

Lire pb
{
Navier_Stokes_QC
{
solveur_pression multigrille_adrien
{
coarsen_operators 2
Coarsen_Operator_Uniform { coarsen_i 1 coarsen_j 1 coarsen_k 2 }
Coarsen_Operator_Uniform { }


ghost_size 1
pre_smooth_steps 1 5
smooth_steps 1 5
relax_jacobi 1 0.65
solveur_grossier GCP { seuil 0.5e-18 precond ssor { omega 1.5 } }
check_residu 0
seuil 2.5e-18
nb_full_mg_steps 2 4 1

solver_precision mixed

}
convection { centre4 }
diffusion { }
conditions_initiales
{
vitesse champ_fonc_xyz dom 3
SIN(z*3.14159265358979/0.029846)*0.01+SIN(2*z*3.14159265358979/0.029846)*0.005
SIN(z*3.14159265358979/0.029846)*SIN(2*x*3.14159265358979/0.187528)*SIN(4*y*3.14159265358979/0.046882)*0.005
SIN(z*3.14159265358979/0.029846)*SIN(4*x*3.14159265358979/0.187528)*SIN(2*y*3.14159265358979/0.046882)*0.005
}
conditions_limites
{
periox periodique
perioy periodique
haut paroi_fixe
bas paroi_fixe
}
}
Convection_Diffusion_Chaleur_QC
{
diffusion { }
convection { quick }
Sources { }
conditions_initiales { Temperature Champ_fonc_xyz dom 1 273+(600-273)*(z/0.029846) }
conditions_limites
{
periox periodique
perioy periodique
haut paroi_echange_externe_impose T_ext Champ_Front_Uniforme 1 600 H_imp Champ_Front_Uniforme 1 1.e14
bas paroi_echange_externe_impose T_ext Champ_Front_Uniforme 1 273 H_imp Champ_Front_Uniforme 1 1.e14
}
}

Postraitement
{

format lata
Champs dt_post 0.0001
{
vitesse faces
temperature_qc elem
masse_volumique elem
}
}
reprise binaire cond_initial.sauv
}

Resoudre pb
Fin

Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
#!/bin/bash

# convertir le fichier lata en ijk pour relecture par la maquette:
if test -f reprise_ijk.lata
then
echo pre_run already done

else
echo doing prerun

echo Creation d une condition initiale
triou cond_initial.data 1>cond_initial.out 2>cond_initial.err

lata2dx cond_initial.lata regularize=1e-6 timestep=1 export_fields_at_faces writelata=reprise_ijk.lata

# La maquette ijk nomme les champs velocity et rho, et le domaine dom, renommer dans le fichier lata:

cp reprise_ijk.lata reprise_ijk.lata.orig

sed 's/CHAMP VITESSE/CHAMP VELOCITY/g;
s/CHAMP MASSE_VOLUMIQUE/CHAMP RHO/g;
s/geometrie=dom_IJK/geometrie=grid_geom/g;
s/GEOM.*dom_IJK/GEOM grid_geom/g' reprise_ijk.lata.orig >reprise_ijk.lata

# creation du jdd vdf pour la suite du calcul:

starttime=`awk '$0~"Backup of the field vitesse performed on time"{t=$10}END{print t}' cond_initial.err`
pthermoinit=`tail -n 1 evol_glob | awk '{print $4}'`

sed "s/tinit .*/tinit $starttime/;
s/sauvegarde/reprise binaire/;
s/dt_post .*/dt_post 0.00001/;
s/nb_pas_dt_max .*/nb_pas_dt_max 50/
" cond_initial.data >jdd_vdf.data
# poour NR
cp jdd_vdf.data dns_qc_difference_vdf_ijk_jdd1.data

# creation des donnees de reprise pour le calcul ijk

cat >reprise_ijk.data <<EOF
{
tinit $starttime
fichier_reprise_vitesse reprise_ijk.lata
timestep_reprise_vitesse 1
fichier_reprise_rho reprise_ijk.lata
timestep_reprise_rho 1
p_thermo_init $pthermoinit
terme_acceleration_init 0.
}
EOF

cp reprise_ijk.data dns_qc_difference_vdf_ijk_jdd2.data
fi
Loading