forked from ludwig-cf/ludwig
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathfield_phi_init.h
45 lines (39 loc) · 1.72 KB
/
field_phi_init.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
/*****************************************************************************
*
* field_phi_init.h
*
* Edinburgh Soft Matter and Statistical Physics Group and
* Edinburgh Parallel Computing Centre
*
* (c) 2018-2023 The University of Edinburgh
*
* Contributing authors:
* Kevin Stratford ([email protected])
*
*****************************************************************************/
#ifndef LUDWIG_FIELD_PHI_INIT_H
#define LUDWIG_FIELD_PHI_INIT_H
#include "field.h"
typedef struct field_phi_info_s field_phi_info_t;
struct field_phi_info_s {
double xi0; /* Equilibrium interfacial width */
double phi0; /* Mean composition */
double phistar; /* An amplitude (min/max order parameter) */
};
int field_phi_init_drop(field_t * phi, double xi, double radius,
double phistar, int is_centred);
int field_phi_init_uniform(field_t * phi, double phi0);
int field_phi_init_block(field_t * phi, double xi);
int field_phi_init_block_X(field_t * phi, double xi, double block_dimension);
int field_phi_init_block_Y(field_t * phi, double xi, double block_dimension);
int field_phi_init_block_Z(field_t * phi, double xi, double block_dimension);
int field_phi_init_layer_X(field_t * phi, double xi, double layer_size);
int field_phi_init_layer_Y(field_t * phi, double xi, double layer_size);
int field_phi_init_layer_Z(field_t * phi, double xi, double layer_size);
int field_phi_init_bath(field_t * phi);
int field_phi_init_spinodal(field_t * phi, int seed, double phi0, double amp);
int field_phi_init_spinodal_patches(field_t * phi, int seed, int patch,
double volm1);
int field_phi_init_emulsion(field_t * phi, double xi, double radius,
double phistar, int Ndrops, double d_centre);
#endif