Phold Class Reference

SPADES API: spades::models::Phold Class Reference
SPADES API

PHOLD model. More...

#include <Phold.H>

Collaboration diagram for spades::models::Phold:
[legend]

Classes

struct  InitEntityOp
 A struct that defines an operator for initializing entities. More...
 
struct  InitMessageOp
 A struct that defines an operator for initializing entities. More...
 
struct  ProcessOp
 A struct that defines an operator for processing messages. More...
 

Public Types

using ProcessType = ProcessOp
 
using InitEntityType = InitEntityOp
 
using InitMessageType = InitMessageOp
 

Public Member Functions

 Phold ()
 Constructor.
 
void read_parameters ()
 Read user parameters.
 
const amrex::Geometry & geom () const
 
ProcessType process_op () const
 Message processing operator.
 
InitEntityType init_entity_op () const
 Initialize entity operator.
 
InitMessageType init_message_op () const
 Initialize message operator.
 

Static Public Member Functions

static std::string identifier ()
 Class identifier name.
 

Public Attributes

ProcessOp m_process_op
 
InitEntityOp m_init_entity_op
 
InitMessageOp m_init_message_op
 

Private Attributes

amrex::Geometry m_geom
 

Detailed Description

PHOLD model.

Member Typedef Documentation

◆ InitEntityType

◆ InitMessageType

◆ ProcessType

Constructor & Destructor Documentation

◆ Phold()

spades::models::Phold::Phold ( )
explicit

Constructor.

void read_parameters()
Read user parameters.
Definition Phold.cpp:7
Here is the call graph for this function:

Member Function Documentation

◆ geom()

const amrex::Geometry & spades::models::Phold::geom ( ) const
inlinenodiscard
29{ return m_geom; }
amrex::Geometry m_geom
Definition Phold.H:234

◆ identifier()

static std::string spades::models::Phold::identifier ( )
inlinestatic

Class identifier name.

Returns
class identifier
21{ return "phold"; }

◆ init_entity_op()

InitEntityType spades::models::Phold::init_entity_op ( ) const
inlinenodiscard

Initialize entity operator.

Returns
InitEntityType initialize entity operator
170 {
171 return m_init_entity_op;
172 }
InitEntityOp m_init_entity_op
Definition Phold.H:175

◆ init_message_op()

InitMessageType spades::models::Phold::init_message_op ( ) const
inlinenodiscard

Initialize message operator.

Returns
InitMessageType initialize message operator
225 {
226 return m_init_message_op;
227 }
InitMessageOp m_init_message_op
Definition Phold.H:230

◆ process_op()

ProcessType spades::models::Phold::process_op ( ) const
inlinenodiscard

Message processing operator.

Returns
ProcessType message processing operator
130{ return m_process_op; }
ProcessOp m_process_op
Definition Phold.H:133

◆ read_parameters()

void spades::models::Phold::read_parameters ( )

Read user parameters.

8{
9
10 amrex::Array<amrex::Real, AMREX_SPACEDIM> plo{AMREX_D_DECL(0.0, 0.0, 0.0)};
11 amrex::Array<amrex::Real, AMREX_SPACEDIM> phi{AMREX_D_DECL(0.0, 0.0, 0.0)};
12 amrex::Array<int, AMREX_SPACEDIM> periodic{AMREX_D_DECL(0, 0, 0)};
13 {
14 amrex::ParmParse pp("geometry");
15 pp.get("prob_lo", plo);
16 pp.get("prob_hi", phi);
17 pp.get("is_periodic", periodic);
18 }
19
20 amrex::Array<int, AMREX_SPACEDIM> ncells{AMREX_D_DECL(0, 0, 0)};
21 {
22 amrex::ParmParse pp("amr");
23 pp.get("n_cell", ncells);
24 }
25
26 amrex::RealBox real_box;
27 for (int n = 0; n < AMREX_SPACEDIM; n++) {
28 real_box.setLo(n, plo[n]);
29 real_box.setHi(n, phi[n]);
30 }
31
32 amrex::IntVect domain_lo(AMREX_D_DECL(0, 0, 0));
33 amrex::IntVect domain_hi(
34 AMREX_D_DECL(ncells[0] - 1, ncells[1] - 1, ncells[2] - 1));
35
36 const amrex::Box domain(domain_lo, domain_hi);
37 int coord = 0;
38 m_geom.define(domain, &real_box, coord, periodic.data());
39
40 m_process_op.m_dx = m_geom.CellSizeArray();
41 m_process_op.m_dom = m_geom.Domain();
42 m_process_op.m_plo = m_geom.ProbLoArray();
43
44 amrex::Real lookahead = 1.0;
45 amrex::Real lambda = 1.0;
46 int entities_per_lp = 1;
47 int messages_per_lp = 1;
48 {
49 amrex::ParmParse pp("spades");
50 pp.query("lookahead", lookahead);
51 pp.query("lambda", lambda);
52 pp.query("entities_per_lp", entities_per_lp);
53 pp.query("messages_per_lp", messages_per_lp);
54 }
55
56 m_process_op.m_lookahead = lookahead;
57 m_process_op.m_lambda = lambda;
58 m_process_op.m_entities_per_lp = entities_per_lp;
59 m_init_entity_op.m_entities_per_lp = entities_per_lp;
60 m_init_message_op.m_messages_per_lp = messages_per_lp;
63}
int m_entities_per_lp
Number of entities per logical process (optional user input)
Definition Phold.H:160
amrex::Real m_lookahead
Lookahead value (optional user input)
Definition Phold.H:207
int m_messages_per_lp
Initial messages per LP.
Definition Phold.H:210
amrex::Real m_lambda
Definition Phold.H:215
int m_entities_per_lp
Number of entities per logical process (optional user input)
Definition Phold.H:112
amrex::Real m_lambda
Definition Phold.H:109
amrex::Real m_lookahead
Lookahead value (optional user input)
Definition Phold.H:104
amrex::GpuArray< amrex::Real, AMREX_SPACEDIM > m_dx
Spatial discretization.
Definition Phold.H:115
amrex::GpuArray< amrex::Real, AMREX_SPACEDIM > m_plo
Problem low bounds.
Definition Phold.H:121
amrex::Box m_dom
Domain.
Definition Phold.H:118
Here is the caller graph for this function:

Member Data Documentation

◆ m_geom

amrex::Geometry spades::models::Phold::m_geom
private

◆ m_init_entity_op

InitEntityOp spades::models::Phold::m_init_entity_op

◆ m_init_message_op

InitMessageOp spades::models::Phold::m_init_message_op

◆ m_process_op

ProcessOp spades::models::Phold::m_process_op

The documentation for this class was generated from the following files:
  • /home/runner/work/spades/spades/Source/Models/Phold.H
  • /home/runner/work/spades/spades/Source/Models/Phold.cpp