SERiF v0.0.1a
Stellar Evolution and Rotation in Four Dimensions
Loading...
Searching...
No Matches
fields.hpp File Reference

Define the fields and their associated terms for the discretization. This is a key file to understand if you are to understand SERiF's numerics. Each of these field types should contain all the information needed for the compiler to generate the correct. More...

Include dependency graph for fields.hpp:
This graph shows which files directly or indirectly include this file:

Classes

struct  serif::discretization::blocks::field
 The field struct is a tag type that is used to identify a field in the discretization. It is used to group together terms that belong to the same field. Each field should have a unique name and a list of terms that belong to it. More...
 
struct  serif::discretization::blocks::term_base
 The term_base struct is a tag type that is used to identify a term in the discretization. It is used to group together terms that belong to the same field. Each term should have a unique name and a list of blocks that belong to it. Generally you should always use term rather than term_base as term associates to a particular field at compile time. More...
 
struct  serif::discretization::blocks::term< FieldT >
 The term struct is a tag type that is used to identify a term in the discretization. It is used to group together terms that belong to the same field. Each term should have a unique name and a list of blocks that belong to it. Note that generally you should always use term rather than term_base as term associates to a particular field at compile time. More...
 
struct  serif::discretization::blocks::global_scalar
 A global scalar is a term that has a single value over the entire domain (think angular momentum or total mass). Broadly we need to separate these from the other terms since they require different (often less enriched) information at compile time. More...
 
struct  serif::discretization::blocks::global_scalar::value
 The value block is a block that contains the value of the global scalar. It is a single value over the entire domain and is not associated with any particular functional space. For something like total mass this would be the actual value of the mass of the system. More...
 
struct  serif::discretization::blocks::global_scalar::residual
 The residual block is a block that contains the residual of the global scalar. It is a single value over the entire domain and is not associated with any particular functional space. For something like total mass this would be the residual of the mass of the system (i.e. the difference between the current mass and the target mass). More...
 
struct  serif::discretization::blocks::barotropic_constant
 This field holds the effective potential level on the stellar isobar. The level is solved together with the fixed total mass. The barotropic_constant name is retained as an internal coordinate identity. In the density formulation its value is Us, the gravitational potential minus the centrifugal potential on the surface; it is not the polytropic EOS constant K. More...
 
struct  serif::discretization::blocks::barotropic_constant::mass_normalization
 The value of this global scalar is the effective surface-potential level Us. Its paired residual enforces the prescribed total mass. The surface equation supplies the dependence on Us, while the mass equation integrates the density over the star. More...
 
struct  serif::discretization::blocks::frame_acceleration
 Uniform translation reaction, one global scalar per Cartesian axis, to be paired with BarycenterConstraint (for example when an external companion potential acts on the star). It must vanish in a physical equilibrium. More...
 
struct  serif::discretization::blocks::frame_acceleration::component< Axis >
 
struct  serif::discretization::blocks::rotation
 The rotational field, represented as the angular velocity term, given that we currently only model rigid rotation this is a global scalar. A future extension which models differential rotation will likely need to modify this to some vector field or other more complex representation of the rotation. More...
 
struct  serif::discretization::blocks::rotation::angular_velocity
 The angular_velocity term represents the angular velocity of the system. It is a global scalar that is associated with the rotation of the system. This is used to enforce the rotation condition in the weak form when we are in the rigid rotation case. Note that downstream the way that this currently works is to calculate the expected angular velocity given the current mass, geometry, density, and angular momentum and then prescribe, given those, what the angular velocity should be. Therefore, this does not enforce that the angular velocity must be constant over the entire solver run, but rather that the angular velocity is consistent with the current state of the system. More...
 
struct  serif::discretization::blocks::density
 The density field used to represent the distribution of mass in the system. This is a scalar field that is associated with the mass density of the system. The density field is used to enforce the mass conservation condition in the weak form. More...
 
struct  serif::discretization::blocks::density::mass
 The mass density term for the system. Note that the naming here could be a bit confusing as FEM also uses the term "mass" to represent the canonical mass matrix. This is a more standard physics reading of what is going on here. We define that this space is a third order scalar H1 space. This gives density a continuous surface trace and a weak spatial gradient. More...
 
struct  serif::discretization::blocks::density::mass::value
 The value block is a block that contains the value of the mass density term. It is a scalar field that is associated with the mass density of the system. More...
 
struct  serif::discretization::blocks::density::mass::residual
 The residual block is a block that contains the residual of the mass density term. It is a scalar field that is associated with the mass density of the system. More...
 
struct  serif::discretization::blocks::displacement
 The displacement field is a 3 vector H1 field (C0 continuous) that is used to represent continuous nodal displacement over the entire domain. More...
 
struct  serif::discretization::blocks::displacement::vector
 the displacement vector term is a 3 vector H1 field (C0 continuous) that is used to represent continuous nodal displacement over the entire domain. This is a vector field that is associated with the mapping of the domain from the reference to physical spaces. E.g. if there is some domain O_ref which n nodal positions x^i_ref then there is some other domain O_phys with n nodel positions such that x^i_phys = x^i_ref + d^i where d^i is the displacement vector at node i. More...
 
struct  serif::discretization::blocks::displacement::vector::value
 The value block is a block that contains the value of the displacement vector term. It is a vector field that is associated with the mapping of the domain from the reference to physical spaces. More...
 
struct  serif::discretization::blocks::displacement::vector::residual
 The residual block is a block that contains the residual of the displacement vector term. It is a vector field that is associated with the mapping of the domain from the reference to physical spaces. More...
 
struct  serif::discretization::blocks::surface_deformation
 The surface corollary field to the full displacement field. This is in some ways more general than the others in so far as it is not pointwise defined over the domain. Rather, it is some general field of numbers, divorced from the underlying discrimination, that is used to represent the surface deformation of the system. This may be used, for example to represent spherical harmonic coefficients of the surface deformation. For more information see the surface and deformation systems. More...
 
struct  serif::discretization::blocks::surface_deformation::coefficients
 The coefficients term represents some set of coefficients associated with whatever surface representation is being used to represent the surface deformation. Note how we do not have a functional space, support, or a quantity. This is also where we associate the values with. More...
 
struct  serif::discretization::blocks::surface_deformation::coefficients::value
 The actual values of the coefficients for whatever surface representation is being used. More...
 
struct  serif::discretization::blocks::surface_deformation::shape_equilibrium
 The shape equilibrium term represents the shape equilibrium condition of the system. This is a term that is associated with the surface deformation field and is used to enforce the shape equilibrium condition in the weak form. This is where we associate the residuals with. Note how we do not have a functional space, support, or a quantity. This is because the shape equilibrium condition is a global condition that is not associated with any particular functional space, support, or quantity. More...
 
struct  serif::discretization::blocks::surface_deformation::shape_equilibrium::residual
 The residuals of the shape equilibrium condition. More...
 
struct  serif::discretization::blocks::gravity
 The gravity field contains the scalar potential. The primal formulation solves the potential and obtains its gradient by differentiation. More...
 
struct  serif::discretization::blocks::gravity::potential
 The gravitational potential term is a fourth order H1 scalar field that is used to represent the gravitational potential of the system. Its continuous trace supports the surface potential condition, and its spatial gradient supplies gravity in the primal formulation. More...
 
struct  serif::discretization::blocks::gravity::potential::value
 The value block is a block that contains the value of the gravitational potential term. It is a scalar field that is associated with the gravitational potential of the system. More...
 
struct  serif::discretization::blocks::gravity::potential::residual
 The residual block is a block that contains the residual of the gravitational potential term. It is a scalar field that is associated with the gravitational potential of the system. More...
 

Namespaces

namespace  serif
 
namespace  serif::discretization
 
namespace  serif::discretization::blocks
 

Detailed Description

Define the fields and their associated terms for the discretization. This is a key file to understand if you are to understand SERiF's numerics. Each of these field types should contain all the information needed for the compiler to generate the correct.

Author
Emily M. Boudreaux
  • blocks
  • functional spaces
  • support domains
  • quantities
  • symbols
  • and any other information needed to generate the correct weak form for the field Broadly you can think of these as where we define the "physics" that we want to solve for or the unknowns of the system. If you find yourself adding any sort of unknown to the system and you are not adding it to this file you should step back and reconsider\ if that belongs here instead.