libMesh
Public Member Functions | Private Attributes | List of all members
libMesh::USoln Class Reference

#include <exact_soln.h>

Inheritance diagram for libMesh::USoln:
[legend]

Public Member Functions

 USoln (const Real nu_in, const bool cavity_in)
 
Real operator() (const Point &p) const override
 
Real forcing (const Point &p) const override
 

Private Attributes

const Real nu
 
const bool cavity
 

Detailed Description

Definition at line 45 of file exact_soln.h.

Constructor & Destructor Documentation

◆ USoln()

libMesh::USoln::USoln ( const Real  nu_in,
const bool  cavity_in 
)
inline

Definition at line 48 of file exact_soln.h.

48 : nu(nu_in), cavity(cavity_in) {}
const bool cavity
Definition: exact_soln.h:87
const Real nu
Definition: exact_soln.h:86

Member Function Documentation

◆ forcing()

Real libMesh::USoln::forcing ( const Point p) const
inlineoverridevirtual

Implements libMesh::ExactSoln.

Definition at line 60 of file exact_soln.h.

References cavity, nu, and libMesh::pi.

61  {
62  const auto x = p(0);
63  const auto y = p(1);
64  if (cavity)
65  {
66  return nu * sin(y) * cos((1. / 2) * x * pi) +
67  (1. / 4) * pi * pi * nu * sin(y) * cos((1. / 2) * x * pi) -
68  1. / 2 * pi * sin(x) * sin(y) * sin((1. / 2) * y * pi) * cos((1. / 2) * x * pi) +
69  sin(x) * cos(y) * cos((1. / 2) * x * pi) * cos((1. / 2) * y * pi) -
70  pi * sin(y) * sin(y) * sin((1. / 2) * x * pi) * cos((1. / 2) * x * pi) +
71  sin(y) * cos(x);
72  }
73  else
74  {
75  const auto quant1 = sin((1. / 2) * y * pi);
76  const auto quant2 = cos((1. / 2) * y * pi);
77  return (1. / 2) * pi * pi * nu * sin((1. / 2) * y * pi) * cos((1. / 2) * x * pi) -
78  1. / 2 * pi * sin((1. / 4) * x * pi) * quant1 * quant1 * cos((1. / 2) * x * pi) -
79  1. / 4 * pi * sin((1. / 4) * x * pi) * sin((3. / 2) * y * pi) +
80  (1. / 2) * pi * sin((1. / 4) * x * pi) * cos((1. / 2) * x * pi) * quant2 * quant2 -
81  pi * sin((1. / 2) * x * pi) * quant1 * quant1 * cos((1. / 2) * x * pi);
82  }
83  }
const bool cavity
Definition: exact_soln.h:87
const Real pi
.
Definition: libmesh.h:299
const Real nu
Definition: exact_soln.h:86

◆ operator()()

Real libMesh::USoln::operator() ( const Point p) const
inlineoverridevirtual

Implements libMesh::ExactSoln.

Definition at line 50 of file exact_soln.h.

References cavity, and libMesh::pi.

51  {
52  const auto x = p(0);
53  const auto y = p(1);
54  if (cavity)
55  return sin(y) * cos((1. / 2) * x * pi);
56  else
57  return sin(1. / 2 * y * pi) * cos(1. / 2 * x * pi);
58  }
const bool cavity
Definition: exact_soln.h:87
const Real pi
.
Definition: libmesh.h:299

Member Data Documentation

◆ cavity

const bool libMesh::USoln::cavity
private

Definition at line 87 of file exact_soln.h.

Referenced by forcing(), and operator()().

◆ nu

const Real libMesh::USoln::nu
private

Definition at line 86 of file exact_soln.h.

Referenced by forcing().


The documentation for this class was generated from the following file: