Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
fluidparticles
MigFlow
Commits
13b06185
Commit
13b06185
authored
Jun 18, 2020
by
Jonathan Lambrechts
Browse files
Merge remote-tracking branch 'origin/ip_factor'
parents
f6cca483
06f4db5e
Pipeline
#7748
passed with stages
in 3 minutes and 5 seconds
Changes
3
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
fluid/fluid_problem.c
View file @
13b06185
...
...
@@ -210,7 +210,7 @@ static void f_boundary(WeakBoundary *wbnd, FluidProblem *problem,const double *n
f00
[(
U
+
id
)
*
n_fields
+
P
]
+=
c
*
(
pid
<
0
?
0
:-
n
[
id
]);
}
double
c_du_o_c
[
D
][
D
];
double
sigma
=
(
1
+
D
)
/
(
D
*
h
)
*
mu
*
N_N
;
double
sigma
=
problem
->
ip_factor
*
(
1
+
D
)
/
(
D
*
h
)
*
mu
*
N_N
;
for
(
int
iD
=
0
;
iD
<
D
;
++
iD
)
{
for
(
int
jD
=
0
;
jD
<
D
;
++
jD
)
c_du_o_c
[
iD
][
jD
]
=
ds
[(
U
+
iD
)
*
D
+
jD
]
-
u
[
iD
]
/
c
*
dc
[
jD
];
...
...
@@ -1248,7 +1248,7 @@ static void compute_porosity(Mesh *mesh, double *node_volume, double *porosity,
}
}
FluidProblem
*
fluid_problem_new
(
double
*
g
,
int
n_fluids
,
double
*
mu
,
double
*
rho
,
double
sigma
,
double
coeffStab
,
double
volume_drag
,
double
quadratic_drag
,
int
drag_in_stab
,
double
drag_coeff_factor
,
int
temporal
,
int
advection
)
FluidProblem
*
fluid_problem_new
(
double
*
g
,
int
n_fluids
,
double
*
mu
,
double
*
rho
,
double
sigma
,
double
coeffStab
,
double
volume_drag
,
double
quadratic_drag
,
int
drag_in_stab
,
double
drag_coeff_factor
,
double
ip_factor
,
int
temporal
,
int
advection
)
{
if
(
n_fluids
!=
1
&&
n_fluids
!=
2
)
{
printf
(
"error : only 1 or 2 fluids are supported
\n
"
);
...
...
@@ -1257,6 +1257,7 @@ FluidProblem *fluid_problem_new(double *g, int n_fluids, double *mu, double *rho
problem
->
n_fluids
=
n_fluids
;
problem
->
sigma
=
sigma
;
problem
->
drag_coeff_factor
=
drag_coeff_factor
;
problem
->
ip_factor
=
ip_factor
;
problem
->
stab_param
=
0
;
problem
->
drag_in_stab
=
drag_in_stab
;
problem
->
reduced_gravity
=
0
;
...
...
fluid/fluid_problem.h
View file @
13b06185
...
...
@@ -59,6 +59,7 @@ struct FluidProblem {
double
*
g
;
double
coeffStab
;
double
drag_coeff_factor
;
double
ip_factor
;
double
sigma
;
double
kinetic_energy
;
Mesh
*
mesh
;
...
...
@@ -107,7 +108,7 @@ void fluid_problem_set_particles(FluidProblem *problem, int n, double *mass, dou
void
fluid_problem_set_bulk_force
(
FluidProblem
*
problem
,
double
*
force
);
void
fluid_problem_set_concentration_cg
(
FluidProblem
*
problem
,
double
*
concentration
);
void
fluid_problem_free
(
FluidProblem
*
problem
);
FluidProblem
*
fluid_problem_new
(
double
*
g
,
int
n_fluids
,
double
*
mu
,
double
*
rho
,
double
sigma
,
double
coeffStab
,
double
volume_drag
,
double
quadratic_drag
,
int
drag_in_stab
,
double
drag_coeff_factor
,
int
temporal
,
int
advection
);
FluidProblem
*
fluid_problem_new
(
double
*
g
,
int
n_fluids
,
double
*
mu
,
double
*
rho
,
double
sigma
,
double
coeffStab
,
double
volume_drag
,
double
quadratic_drag
,
int
drag_in_stab
,
double
drag_coeff_factor
,
double
ip_factor
,
int
temporal
,
int
advection
);
void
fluid_problem_load_msh
(
FluidProblem
*
problem
,
const
char
*
mesh_file_name
);
void
fluid_problem_adapt_mesh
(
FluidProblem
*
problem
,
double
lcmax
,
double
lcmin
,
double
n_el
,
double
cmax
,
double
cmin
,
int
old_n_particles
,
double
*
old_particle_position
,
double
*
old_particle_volume
);
int
*
fluid_problem_particle_element_id
(
FluidProblem
*
problem
);
...
...
python/fluid.py
View file @
13b06185
...
...
@@ -77,7 +77,7 @@ def _np2c(a,dtype=float) :
class
FluidProblem
:
"""Create numerical representation of the fluid."""
def
__init__
(
self
,
dim
,
g
,
mu
,
rho
,
sigma
=
0
,
coeff_stab
=
0.01
,
volume_drag
=
0.
,
quadratic_drag
=
0.
,
petsc_solver_type
=
""
,
drag_in_stab
=
1
,
drag_coefficient_factor
=
1
,
temporal
=
True
,
advection
=
True
):
def
__init__
(
self
,
dim
,
g
,
mu
,
rho
,
sigma
=
0
,
coeff_stab
=
0.01
,
volume_drag
=
0.
,
quadratic_drag
=
0.
,
petsc_solver_type
=
""
,
drag_in_stab
=
1
,
drag_coefficient_factor
=
1
,
ip_factor
=
1
,
temporal
=
True
,
advection
=
True
):
"""Build the fluid structure.
Keyword arguments:
...
...
@@ -112,7 +112,7 @@ class FluidProblem :
n_fluids
=
np
.
require
(
rho
,
"float"
,
"C"
).
reshape
([
-
1
]).
shape
[
0
]
self
.
_n_fluids
=
n_fluids
self
.
_dim
=
dim
self
.
_fp
=
c_void_p
(
self
.
_lib
.
fluid_problem_new
(
_np2c
(
g
),
n_fluids
,
_np2c
(
mu
),
_np2c
(
rho
),
c_double
(
sigma
),
c_double
(
coeff_stab
),
c_double
(
volume_drag
),
c_double
(
quadratic_drag
),
c_int
(
drag_in_stab
),
c_double
(
drag_coefficient_factor
),
c_int
(
temporal
),
c_int
(
advection
)))
self
.
_fp
=
c_void_p
(
self
.
_lib
.
fluid_problem_new
(
_np2c
(
g
),
n_fluids
,
_np2c
(
mu
),
_np2c
(
rho
),
c_double
(
sigma
),
c_double
(
coeff_stab
),
c_double
(
volume_drag
),
c_double
(
quadratic_drag
),
c_int
(
drag_in_stab
),
c_double
(
drag_coefficient_factor
),
c_
double
(
ip_factor
),
c_
int
(
temporal
),
c_int
(
advection
)))
if
self
.
_fp
==
None
:
raise
NameError
(
"Cannot create fluid problem."
)
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment